目录

1.集群原理简介

2.EurekaServer集群环境构建

3.将微服务发布到Eureka集群配置中

4.微服务用户端配置eureka集群


 

1.集群原理简介

集群技术是一种通用的技术,其目的是为了解决单机运算能力的不足、IO能力的不足、提高服务的可靠性、获得规模可扩展能力,降低整体方案的运维成本(运行、升级、维护成本)。它是共享资源、分担费用、共用信道设备及服务的多用途、高效能的无线调度通信。

而:微服务RPC远程服务调用最核心的是高可用。所以需要搭建 Eureka注朋中心集群,实现负均衡+故障容错。

简而言之,就是整个项目所有微服务对外暴露是一个集体,外面就叫一个Eureka。内部由多台构成,相互之间互相注册,互相守望。

2.EurekaServer集群环境构建

1.建立eureka服务器7002,用于和eureka服务器7001进行集群。

2.相互映射:

分别修改eureka7001和eureka7002的yml文件,如下:

springcloud eureka 服务下线 springcloud eureka原理_集群环境

springcloud eureka 服务下线 springcloud eureka原理_微服务_02

使得两者相互注册。

再修改Windows下的hosts映射文件,如下:

springcloud eureka 服务下线 springcloud eureka原理_服务器_03

3.建立eureka7002的主启动类,注册服务器,如下:

springcloud eureka 服务下线 springcloud eureka原理_集群环境_04

4.进行测试,分别输入eureka7001.com:7002和eureka7002.com:7001,能够进入eureka页面,即集群环境配置成功。

3.将微服务发布到Eureka集群配置中

分别将微服务中的yml文件中的eureka配置修改为集群环境,如下:

springcloud eureka 服务下线 springcloud eureka原理_微服务_05

分别启动集群换进eureka后,启动微服务,进行测试,测试成功。

4.微服务用户端配置eureka集群

eureka服务器可以使用两个服务端进行集群,相互注册,同理,客户端Payment微服务也可以进行集群,相互配置,具体步骤如下:

1.创建微服务payment8002,代码内容同payment8001相同。

2.修改payment8002的yml文件,将8002的端口号都修改为8002。

至此,两个微服务相互集群完毕,但还需对用户端进行一定的修改,否则无法访问8002端口,如下:

springcloud eureka 服务下线 springcloud eureka原理_集群环境_06

并在ordercontroller添加如下代码:

public static final String PAYMENT_URL = "http://CLOUD-PAYMENT-SERVICE";

用户端对于服务端的访问地址不可再写死,否则无法访问第二服务端口。

然而,因8001与8002已相互注册,进行eureka集群,对外是一个整体,访问cloud-payment-service服务时,无法确定访问的具体端口号为8001还是8002,所以还需要进行负载均衡。

使用@LoadBalanced注解赋予RestTemplate负载均衡的能力,如下:

springcloud eureka 服务下线 springcloud eureka原理_集群环境_07

至此,payment微服务eureka集群配置完毕,测试:

结果:负载均衡效果达到,8001/8002端口交替出现

Ribbon和Eureka整合后Consumer可以直接调用服务而不用再关心地址和端口号,且该服务还有负载功能。