OpenFeign+Ribbon实现负载均衡
-
Ribbon是Netflix下的负载均衡项目,它主要实现中间层应用程序的负载均衡。为Ribbon配置服务提供者地址列表后,Ribbon就会基于某种负载均衡算法,自动帮助服务调用者去请求。Ribbon默认提供的负载均衡算法有多种,例如轮询、随即、加权轮训等,也可以为Ribbon实现自定义的负载均衡算法。
Ribbon有以下特性:负载均衡器,可支持插拔式的负载均衡规则;对多种协议提供支持,如HTTP、TCP、UDP;集成了负载均衡功能的客户端;Feign利用Ribbon实现负载均衡的过程:
通过在启动类加@EnableFeignCleints注解开启FeignCleint;根据Feign的规则实现接口,并加在接口定义处添加@FeignCleint注解;服务启动后,扫描带有@ FeignCleint的注解的类,并将这些信息注入到ioc容器中;当接口的方法被调用,通过jdk的代理,来生成具体的RequesTemplate;RequesTemplate再生成Request;Request交给Client去处理,其中Client可以是HttpUrlConnection、HttpClient也可以是Okhttp;最后Client被封装到LoadBalanceClient类,这个类结合类Ribbon做到了负载均衡。OpenFeign 中使用 Ribbon 进行负载均衡,所以 OpenFeign 直接内置了 Ribbon。在导入OpenFeign 依赖后,无需再专门导入 Ribbon 依赖。接下来,我们把gitegg-service-base作为服务的调用方,启动两个不同端口的gitegg-service-system作为服务的被调用方,测试Ribbon的负载均衡。
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏