Dubbo之参数配置(六)

目录

令牌验证

路由规则

条件路由规则

 脚本路由规则


 

令牌验证

验证步骤
  • 使用场景
  • 防止消费者绕过注册中心访问提供者
  • 在注册中心控制权限,以决定要不要下发令牌给消费者
  • 注册中心可灵活改变授权方式,而不需要修改或升级提供者

(1)全局设置开启令牌验证

<!--随机token令牌,使用UUID生成-->
<dubbo:provider interface="com.foo.BarService" token="true" />

<!--固定token令牌,相当于密码-->
<dubbo:provider interface="com.foo.BarService" token="123456" />

(2)服务级别设置

<dubbo:service interface="com.foo.BarService" token="true" />

<dubbo:service interface="com.foo.BarService" token="123456" />

(3)协议级别设置

<dubbo:protocol name="dubbo" token="true" />

<dubbo:protocol name="dubbo" token="123456" />

路由规则

  • 2.20以上版本支持

(1)向注册中心写入路由规则:(通常由监控中心或治理中心的页面完成)

RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();
Registry registry = registryFactory.getRegistry(URL.valueOf("zookeeper://1.1.1.1:111"));
registry.register(URL.valueOf("condition://0.0.0.0/com.foo.BarService?catagory=routers&dynamic=false&rule=" + URL.encode("host = 1.1.1.10 => host = 1.1.1.11") + "));

 

条件路由规则

  • 示例
#排除预发布机
=> host != 172.22.3.91

#白名单(一个服务只能有一条白名单规则,否则两条规则交叉,就都被筛选掉了)
host != 172.22.3.91,172.22.3.92 =>

#黑名单
hsot = 172.22.3.91,172.22.3.92 =>

#服务寄宿在应用上,只暴露一部分的机器,防止整个集群挂掉
=> host = 172.22.3,1*,172.22.3.2*

#为重要应用提供额外的机器
application != kylin => host != 172.22.3.91,172.22.3.92

#读写分离
method = find*,list*,get*,is* => host = 172.22.3.91,172.22.3.92
method != find*,list*,get*,is* => host = 172.22.3.93,172.22.3.94

#前后台分离
application = bops => host = 172.22.3.91,172.22.3.92
application != bops => host = 172.22.3.93,172.22.3.94

#隔离不同机房网段
host != 172.22.3.* => host != 172.22.3.*

#提供者与消费者部署在同集群内,本机只访问本机的服务
=> host = $host

 脚本路由规则

支持JDK脚本引擎的所有脚本,比如:javascript,jruby,groovy等,通过type=javascript参数设置脚本类型,缺省为javascript。脚本没有沙箱约束,可执行任意代码,存在后门风险。

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值