使用eureka+ribbon实现客户端负载均衡

前面一篇文章我们讲了客户端负载均衡,今天就来实践一下。

在摆上示例代码之前,我们要先了几个知识点。

1.服务注册与发现
2.RestTemplate
3.Netflix Feign

我先在8001启动Eureka注册中心

使用eureka+ribbon实现客户端负载均衡

(配置中心服务不写了,这个用不到)

我们注册一个服务(spring.application.name相同),两个实例(端口号不同)

service1
使用eureka+ribbon实现客户端负载均衡
service2
使用eureka+ribbon实现客户端负载均衡

service1和service2 yml配置文件中 spring.application.name 都是 service1

启动service1和service2 看一**册中心

使用eureka+ribbon实现客户端负载均衡

可以看到同一个SERVICE1存在两个端口不同的实例
下来构建一个使用负载均衡的客户端调用服务 命名为service3 端口8083
初始化一个支持ribbon的RestTemplate,用来通过负载均衡调用服务

使用eureka+ribbon实现客户端负载均衡

@LoadBalanced这个注解就让restTemplate开启的负载均衡的功能。

我们写一个Controller 并注入开启负载均衡的resttemplate

使用eureka+ribbon实现客户端负载均衡

我们再查看一**册中心

使用eureka+ribbon实现客户端负载均衡

接下来我们调用服务

不断访问 http://localhost:8083/hello

service1 service2 开放/hello 接口 分别返回 Server1和Server2

使用eureka+ribbon实现客户端负载均衡
使用eureka+ribbon实现客户端负载均衡

交替出现,这就说明确实存在负载均衡,调用不同的服务实例