在我们已经有了服务注册中心和服务提供者(这里为了节省时间,此项目即是服务提供者,也是服务消费者),下面就尝试创建服务消费者,它主要完成两个目标,发现服务和消费服务。其中发现服务由 Eureak 的客户端完成,而服务消费的任务由 Ribbon 完成。Ribbon 是一个基于 HTTP 和 TCP 的客户端负载均衡器,它可以通过在客户端中配置的 ribbonServerList 重写,扩展成从 Eureka 注册中心中获取服务端列表。同时它也会用 NIWSDiscoveryPing 来取代 IPing, 它将职责委托给 Eureka 来确定服务端是否已经启动。
在实现项目之前,我们需要启动服务注册中心 (单节点和高可用都行)。
使用Spring Initializr创建工程 加入Ribbon的依赖。
在启动类添加@EnableDiscoveryClient注解将自己注册到服务注册中心。
配置application.yml文件
在启动类创建 RestTemplate的实例,并且使用LoadBalanced注解开启客户端负载均衡。
在Controller中直接实现 通过RestTemplate转发请求。
通过浏览器访问 localhost:8888/rest?name=zs 将请求转发到 /hello中 输出结果。
到这里就实现了客户端的负载均衡。