Dubbo-Router条件路由、脚本路由使用

上篇文章介绍了服务目录 Directory。服务目录在刷新 Invoker 列表的过程中,会通过 Router 进行服务路由,筛选出符合路由规则的服务提供者。服务路由包含一条路由规则,路由规则决定了服务消费者的调用目标,即规定了服务消费者可调用哪些服务提供者。Dubbo 目前提供了三种服务路由实现,分别为条件路由 ConditionRouter、脚本路由 ScriptRouter 和标签路由 TagRouter

在这里插入图片描述
如图所示,经过Router过滤后的Invoker列表实际是Directory中Invoker列表的子集,起到过滤的作用

本文目的不在于分析Router实现的原理,个人认为学会Router路由规则的使用对实际工作更加有效果。本文会结合Dubbo keeper和实际例子来说明Router路由规则中条件路由脚本路由的使用

插播我自己瞎想面试题

  1. 如何屏蔽掉部分提供者或者消费者?
  2. 如何在Dubbo中实现读写分离(读写接口调用不同机器)?

希望读者能有目的性的去看文章

条件路由ConditionRouter

什么是条件路由

条件路由即基于条件表达式的路由规则,如:host = 10.20.153.10 => host = 10.20.153.11

什么意思呢?

  • => 之前的为消费者匹配条件,所有参数和消费者的 URL 进行对比,当消费者满足匹配条件时,对该消费者执行后面的过滤规则。
  • => 之后为提供者地址列表的过滤条件,所有参数和提供者的 URL 进行对比,消费者最终只拿到过滤后的地址列表。
  • 如果匹配条件为空,表示对所有消费方应用,如:=> host != 10.20.153.11
  • 如果过滤条件为空,表示禁止访问,如:host = 10.20.153.10 =>

所以上面条件路由例子的意思就是:所有消费者ip为10.20.153.10的请求全部交由ip为10.20.153.11的提供者处理

更多的规则说明可以参考Dubbo官方文档之路由

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值