springcloud实现微服务服务注册、负载均衡

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

  

  

原文地址:https://www.cnblogs.com/qiuhx/p/10488108.html