3、Eureka服务发现与负载均衡

在前面两节内容中,我们已经完成了Eureka服务注册中心的搭建,和服务的注册,本节我们将对服务的发现以及负载均衡策略进行分析

在Eureka中,服务发现是基于服务名称来获取服务列表,然后通过负载均衡策略,选择列表中合适的一项来进行服务的调用。

首先启动两个userUsevice服务:

1、在已启动的userService服务中右键,选择 Copy Configuration

2、在虚拟机参数 VM options 中设置 -Dserver.port=8082(端口号要和前一个服务不同)
3、Eureka服务发现与负载均衡_第1张图片
3、启动我们设置好的第二个服务
3、Eureka服务发现与负载均衡_第2张图片
4、我们再启动orderService服务和Eureka服务中心
3、Eureka服务发现与负载均衡_第3张图片
3、Eureka服务发现与负载均衡_第4张图片
5、将RestTemplate注入到Spring容器中,并添加 @LoadBalanced 注解实现负载均衡策略。
3、Eureka服务发现与负载均衡_第5张图片
6、在orderService服务中,我们在业务层修改调用userService服务的的url,将ip端口的调用模式修改为userService的服务名称。
3、Eureka服务发现与负载均衡_第6张图片
7、我们查看Eureka服务中心,可以看到已注册的服务,其中userService服务是一个列表,包含了8081,8082两个端口的服务。
3、Eureka服务发现与负载均衡_第7张图片
8、我们通过requestMapping调用orderService的queryOrderByUserId方法。

9、我们查看userService服务其中一个端口的控制台,假设先看8081
3、Eureka服务发现与负载均衡_第8张图片
可以看到控制台并没有任何输出,我们再查看8082:
3、Eureka服务发现与负载均衡_第9张图片
可以看到该端口的服务执行了一条sql语句,很明显,orderService选择了8082端口的userService服务进行调用。

前面我们提到过,在Eureka中,服务发现是基于服务名称来获取服务列表,然后通过负载均衡策略,选择列表中合适的一项来进行服务的调用。因此在本案例中,orderService通过Eureka服务中心发现了需要调用的userService服务列表,然后通过负载均衡的方式选择了8082端口的userService服务进行服务调用。

你可能感兴趣的:(SpringCloud,eureka,服务发现,负载均衡)