Skip to content

Commit 67cd41c

Browse files
committed
feat: update doc (#466)
1 parent db37a4b commit 67cd41c

3 files changed

Lines changed: 15 additions & 2 deletions

File tree

camellia-redis-proxy/camellia-redis-proxy-core/src/main/java/com/netease/nim/camellia/redis/proxy/route/CamelliaDashboardRouteConfProvider.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import com.netease.nim.camellia.redis.proxy.auth.ClientIdentity;
99
import com.netease.nim.camellia.redis.proxy.conf.ProxyDynamicConf;
1010
import com.netease.nim.camellia.redis.proxy.conf.ServerConf;
11+
import com.netease.nim.camellia.redis.proxy.monitor.CommandMonitor;
12+
import com.netease.nim.camellia.redis.proxy.monitor.DashboardCommandMonitor;
1113
import com.netease.nim.camellia.tools.executor.CamelliaThreadFactory;
1214
import io.netty.util.internal.StringUtil;
1315
import org.slf4j.Logger;
@@ -37,6 +39,8 @@ public class CamelliaDashboardRouteConfProvider extends RouteConfProvider {
3739
private final long defaultBid;
3840
private final String defaultBgroup;
3941

42+
private CommandMonitor commandMonitor;
43+
4044
private final CamelliaApiResponse defaultResponse;
4145
private final ConcurrentHashMap<String, CamelliaApiResponse> map = new ConcurrentHashMap<>();
4246

@@ -49,6 +53,7 @@ public CamelliaDashboardRouteConfProvider() {
4953
int connectTimeoutMillis = ProxyDynamicConf.getInt("camellia.dashboard.connect.timeout.millis", 10000);
5054
int readTimeoutMillis = ProxyDynamicConf.getInt("camellia.dashboard.read.timeout.millis", 10000);
5155
String headers = ProxyDynamicConf.getString("camellia.dashboard.headers", null);
56+
5257
Map<String, String> headerMap = new HashMap<>();
5358
if (headers != null) {
5459
JSONObject jsonObject = JSONObject.parseObject(headers);
@@ -57,6 +62,9 @@ public CamelliaDashboardRouteConfProvider() {
5762
}
5863
}
5964
camelliaApi = CamelliaApiUtil.init(url, connectTimeoutMillis, readTimeoutMillis, headerMap);
65+
if (ProxyDynamicConf.getBoolean("camellia.dashboard.monitor.enable", false)) {
66+
commandMonitor = new DashboardCommandMonitor(camelliaApi);
67+
}
6068
if (defaultBid > 0 && !defaultBgroup.isEmpty()) {
6169
defaultResponse = camelliaApi.getResourceTable(defaultBid, defaultBgroup, null);
6270
if (defaultResponse.getCode() != 200) {
@@ -116,6 +124,11 @@ public boolean isMultiTenantsSupport() {
116124
return dynamic;
117125
}
118126

127+
@Override
128+
public CommandMonitor getCommandMonitor() {
129+
return commandMonitor;
130+
}
131+
119132
private void reload() {
120133
try {
121134
Set<String> set = new HashSet<>(map.keySet());

docs/camellia-redis-proxy/redis-proxy-zh.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ camellia-redis-proxy是一款高性能的redis代理,使用netty4开发,最
5858
具体可见:[代码结构](code/proxy-code.md)
5959

6060
## 配置
61-
* 配置是其他弄开的基础,camellia-redis-proxy默认读取本地配置文件,你也可以自定义配置的数据源,如etcd、nacos等
61+
* 配置是其他模块的基础,camellia-redis-proxy默认读取本地配置文件,你也可以自定义配置的数据源,如etcd、nacos等
6262
* 配置原理见:[配置说明](conf/dynamic-conf.md)
6363
* 核心配置见:[核心配置](conf/config_template.md)
6464

docs/camellia-redis-proxy/route/route.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ route.conf=redis-cluster://@127.0.0.1:6379,127.0.0.1:6378,127.0.0.1:6377
7676
* `auth``isPasswordRequired` 在建立连接时使用,会返回登录成功或者失败
7777
* `ClientIdentity` 内部包含了bid和bgroup两个字段,proxy会把相关信息绑定到建立好的客户端连接上
7878
* 当客户端连接建立好后,发起redis命令,如 `get``set`,proxy会取出连接上的bid和bgroup信息,去调用 `getRouteConfig` 方法,获取到路由配置,并做转发
79-
* `isMultiTenantsSupport` 用于告诉proxy,当bid和bgroup不同时,ResourceTable是不是会不一样,如果 `isMultiTenantsSupport=true`,则代表有多条路由
79+
* `isMultiTenantsSupport` 用于告诉proxy,是否有多组路由,如果 `isMultiTenantsSupport=true`,则代表有多条路由
8080
* `invokeUpdateResourceTable``invokeRemoveResourceTable` 是回调方法,当某个bid和bgroup对应的 `route.conf` 发生了变化,可以通过这三个回调来告诉proxy
8181
* 正是因为有这三个回调方法的存在,因此并不是每个 `get``set` 命令都会触发 `getRouteConfig` 方法的调用,proxy会缓存结果以便有更好的性能
8282

0 commit comments

Comments
 (0)