[学习微服务-第8天] ServiceComb内置负载均衡组件handler-loadbalance

在上两篇 [微服务]ServiceComb + SpringCloud Ribbon:使用篇 和 [微服务]ServiceComb + SpringCloud Ribbon:源码解读篇 中介绍了负载均衡的概念和ServiceComb结合SpringCloud Ribbon的使用, 本篇将介绍ServiceComb内置的负载均衡组件handler-loadbalance

 

本文参考于官方手册:

https://docs.servicecomb.io/java-chassis/zh_CN/references-handlers/loadbalance.html

简介

ServiceComb提供了非常强大的负载均衡能力。它的核心包括两部分,第一部分是DiscoveryTree,通过将微服务实例根据接口兼容性、数据中心、实例状态等分组,DiscoveryFilter是其主要组成部分;第二部分是基于Ribbon的负载均衡方案,支持随机、顺序、基于响应时间的权值等多种负载均衡路由策略IRule,以及可以支持Invocation状态的ServerListFilterExt。

代码示例

以下代码请参考官方示例:

https://github.com/apache/servicecomb-java-chassis/tree/master/samples/springmvc-sample

注意该示例中并未添加重试策略,读者可自行添加验证。

 

1. 启动负载均衡

在配置文件microservice.yaml中加入以下配置

7ebf26e57e252a53819668973fcd7444b26.jpg

 

注意Consumer是首字母大写

在项目的pom文件中加入以下依赖提供负载均衡支持

a857ad9d0a27919ce0ec71d448d46896948.jpg

 

2. 配置负载均衡策略

c2ddcae7e1111323f1cbe6a1a72f0cf77d7.jpg

开发者还可以针对不同的微服务配置不一样的策略,只需要给配置项增加服务名,例如:

e64ea622fe026a3dab434a194c155d890c4.jpg

其中myservice为微服务名

 

3. 设置重试策略

负载均衡模块还支持配置失败重试的策略。默认未启用重试。开启只需加如下配置↓↓↓

ca8062eb095bb22ed4c0edfeab50ef9c761.jpg

•retryOnNext : 表示失败以后,根据负载均衡策略,重新选择一个实例重试(可能选择到同一个实例)。

•retryOnSame : 表示仍然使用上次失败的实例进行重试。

 

4. 代码调用

支持Restful和Rpc调用

d302bdb7424e863049991c7286387088cee.jpg

209a4dacaf7057757470a231d968fe9408d.jpg

对于Restful调用的url形式如下:

cse://微服务名/资源路径?参数

自定义

ServiceComb的负载均衡模块提供了强大的扩展能力,包括DiscoveryFilter、ServerListFilterExt、ExtensionsFactory(扩展IRule,RetryHandler等)。loadbalance模块本身包含了每一个扩展的实现,这里不详细描述如何扩展。

开发者可参考官方手册:

https://docs.servicecomb.io/java-chassis/zh_CN/references-handlers/loadbalance.html

 

文末小结

本文向社区读者从使用角度阐述了ServiceComb的内置负载均衡模块。

我们也非常欢迎爱好者们向社区提问和贡献代码。

下章我们将介绍服务中心SeviceCenter的使用。

如果在阅读代码时有任何疑问想交流,欢迎扫码加入进微信群。

2cae7217fd41f278044cb7272b7e514196b.jpg

期待志同道合的朋友们加入

ServiceComb的大门为你们敞开~

用心做开源,不忘初衷

转载于:https://my.oschina.net/u/3823482/blog/3011516

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值