服务路由
分布式服务框架上线都是集群组网,这意味着集群中存在某个服务的多实例部署,消费者如何从服务到列表中选择合适的服务提供者进行调用,这就涉及到服务路由。
6.1 透明化路由
6.1.1 基于服务注册中心的订阅发布
服务消费者和服务提供者通过注册中心提供的SDK与注册中心建立的链路,服务提供者将需要发布的服务地址信息和属性列表写入注册中心。服务消费者根据本地引用的接口名等信息,从服务注册中心获取服务提供者列表,缓存到本地。
6.2 负载均衡
- 随机
轮询
按公约的权重设置轮询比率,到达边界之后,继续绕接。
服务调用延时
根据消息的延迟时间差动态调整权重,以确保延迟大的服务接受更少的消息,防止消息推积。
一致性哈希
相同参数的请求总是发动同一个服务提供者,当某台服务器宕机时,会重新计算hash值。
6.4 路由规则
- 条件路由规则
- 脚本路由规则