dubbo路由机制分析2(路由设置存储)

接上次https://my.oschina.net/u/146130/blog/1581069

目前dubbo支持的路由类型分三种conditon,script,file
这次说conditon路由规则的设置方法和存储方式
向注册中心写路由规则,dubbo目前提供两种方式,
1,通过api代码写路由规则
如下:以zookeeper为注册中心为例
RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.c
lass).getAdaptiveExtension();
Registry registry = registryFactory.getRegistry(URL.valueOf("zookeeper://10.20.153.10:
2181"));
registry.register(URL.valueOf("condition://0.0.0.0/com.foo.BarService?category=routers
&dynamic=false&rule=" + URL.encode("host = 10.20.153.10 => host = 10.20.153.11") + "));
这种方式灵活,三种类型的路由规则都可以写
2,通过dubbo-admin项目(管理控制台为阿里内部裁剪版本)里的页面写路由规则,但目前只能写condtion类型路由规则
下面具体看看通过管理页面写路由规则的方法以及路由规则的存储方式
dubbo-admin是dubbo开源项目的一个子模块,用webx框架写的。
把dubbo-admin打包后放在tomcat容器里(要配置好注册中心),http://localhost:8008/就能访问(root/root)
打开如下页面

可以看到已存在的路由规则,通过单击,新增按钮,打开新增页面如下

这里可以新路由的名称,路由作用的服务名称(接口全名),还能指定作用于某个特定方法
然后是设置,
消费端,哪些(ip,应用,集群)可以访问服务(匹配),哪些不能访问服务(不匹配)
服务端,哪些(ip,集群,协议,端口)可以提供此服务(匹配),哪些不能提供此服务(不匹配)
比如我们配置了,如下一个例子,

保存后,其实会把数据保存到zookeeper(注册中心),
/dubbo/demo.dubbo.api.DemoService/routers,路径中。路径中dubbo,和routers是固定的,中间是服务名。
具体是这样的,

是urlencode后的字串。
图中可以看到,我们设置的路由名称和condition类型。
deconde后是这样的
route://0.0.0.0/demo.dubbo.api.DemoService?category=routers&dynamic=false&enabled=true&force=false&name=test_rt&priority=0&router=condition&rule=consumer.host = 10.nn.nn.40 & consumer.host != 10.nn.16.41 => provider.host = 10.nn.16.* & provider.host != 10.nn.15.*&runtime=false

还可以在管理列表中设置禁用/启用一条规则,就是设置enabled=false/true

除了路由规则页面,还可以在,服务治理->访问控制 页面设置一种特殊的路由规则:黑/白名单,如下图中,单击新增按钮后

可以对指定服务名,设置能访问他们的白名单和禁止访问他们的黑名。
我们简单配置了如下例子

保存后可以看到zk routers节点中的结果,有这么一条路由规则记录

也是condition类型的。deconde后是这样的
route://0.0.0.0/demo.dubbo.api.DemoService?category=routers&dynamic=false&enabled=false&force=true&name=demo.dubbo.api.DemoService blackwhitelist&priority=0&router=condition&rule=consumer.host != 192.168.64.128 => false&runtime=false,
通过上面提到的api写到路由的规则,decode后时这样的
condition://0.0.0.0/demo.dubbo.api.DemoService?category=routers&dynamic=false&name=test&rule=host = 10.20.153.10 => host = 10.20.153.11

转载于:https://my.oschina.net/u/146130/blog/1585537

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值