您现在的位置是:主页 > 数据库技术 > 数据库技术
Spring Cloud如何使用Ribbon
IDCBT2021-12-25【服务器技术】人已围观
简介这篇文章主要介绍了Spring Cloud如何使用Ribbon,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 8 Spring Cloud与
这篇文章主要介绍了Spring Cloud如何使用Ribbon,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
8 Spring Cloud与RibbonRibbon8.1 准备工作为了本小节的测试做准备,按顺序进行以下工作:
新建Eureka服务器端项目,命名为“cloud-server”,端口8761,
代码目录codes\04\4.4\cloud-server。
新建Eureka服务提供者项目,命名为“cloud-provider”,
代码目录codes\04\4.4\cloud-provider,该项目主要进行以下工作:
1. 在控制器里面,发布一个REST服务,地址为“/person/{personId}”,
请求后返回Person实例,其中Person的message为HTTP请求的URL。
2. 服务提供者需要启动两次,因此在控制台中需要输入启动端口。
新建Eureka服务调用者项目,命名为“cloud-invoker”,对外端口为9000,
代码目录codes\04\4.4\cloud-invoker。本例的负载均衡配置主要针对服务调用者。
以上项目准备完成并启动后,结构如图4-2所示。
图4-2 准备的项目结构图
注意:Eureka相关项目的建立,可参见前面章节。
8.2 使用代码配置Ribbon在前面章节讲述了负载规则以及Ping,在Spring Cloud中,可将自定义的负载规则以及Ping类,放到服务调用者中,查看效果。新建自定义的IRule与IPing,两个实现类请见代码清单4-11。
代码清单4-11:
codes\04\4.4\cloud-invoker\src\main\java\org\crazyit\cloud\MyRule.java
codes\04\4.4\cloud-invoker\src\main\java\org\crazyit\cloud\MyPing.java
package org.crazyit.cloud; import java.util.List; import com.netflix.loadbalancer.ILoadBalancer; import com.netflix.loadbalancer.IRule; import com.netflix.loadbalancer.Server; public class MyRule implements IRule { private ILoadBalancer lb; public Server choose(Object key) { List<Server> servers = lb.getAllServers(); System.out.println("这是自定义服务器定规则类,输出服务器信息:"); for(Server s : servers) { System.out.println(" " + s.getHostPort()); } return servers.get(0); } public void setLoadBalancer(ILoadBalancer lb) { this.lb = lb; } public ILoadBalancer getLoadBalancer() { return this.lb; } }标签:很赞哦! ()