1)通过eureka技术实现服务注册、服务发现
本案例的项目结构
1.引入eureka起步依赖(父pom默认起步依赖版本1.5.3.RELEASE,由于在maven私库中没有对应依赖,我们这里采用1.4.4.RELEASE)
2.application.yml中分别加入客户端、服务端配置
客户端配置
服务端配置
3.在对应的启动类上加上对应服务端、客户端注解
4.启动服务,登录服务端地址,可以看到对应客户端已经注册到服务端了
以上是服务注册的部分
由于在实际环境中可能出现很多服务,所以要对服务端做集群处理,以下是集群配置
首先配置两个服务端配置yml文件
比如客户端client向peer1进行注册,同时在peer2中也能看到相关服务,简单的集群配置
2)通过ribbon技术实现负载均衡
按照惯例,引入起步依赖
1.新建一个RibbonConfig配置文件,引入RestTemplate Bean,并且在Bean上加上负载均衡注解
2.通过RestTemplate的getForObject方法平衡消费生产者客户端接口
这里的url是在客户端中配置的客户端名称(eureka-client)+对应接口名(/erueka/init)
生产者接口具体实现
访问效果:
第一次访问:
第二次访问:
可以看到消费者循环消费两个生产者客户端接口
以上就是服务注册和负载均衡的小demo
总结一下
1.微服务中的服务需要进行服务注册,统一管理
2.由于可能存在很多个微服务,所以需要对服务端做集群配置
3.客户端中同一个接口可能会被多次消费,所以需要做负载均衡(ribbon)
4.ribbon中的负载均衡是通过LoadBanlancerClient来调控的,服务注册的时候会从Eureka Client的服务注册列表中获取服务的信息,类似stores.ribbon.listOfServers:server1,server2,如果在服务中配置ribbon.eureka.enabled=false
则无法从Eureka Client的服务注册列表中获取服务信息。
end