Eureka高可用与负载均衡

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Eureka高可用与负载均衡相关的知识,希望对你有一定的参考价值。

参考技术A

简单来说, Eureka Server 的高可用,实际上就是将自己也作为服务向其他服务注册中心进行注册,这样就可以形成一组相互注册的服务注册中心,以实现服务清单的互相同步,达到高可用的效果。

另外,从官网文档中有提到 Zones 、 Regions , Region 和 Zone (或者Availability Zone)均是 AWS 的概念。在非AWS环境下,我们可以先简单地将region理解为Eureka集群,zone理解成机房。下图就可以理解为一个Eureka集群被部署在了zone1机房和zone2机房中。

对这些概念的其他相关知识,也深入了解,大家感兴趣,可自行搜索下吧。

示例前,先看看集群模式下,Eureka的架构图。

修改spring-cloud-eureka-server项目

1.由于是在同一台进行模拟,首先修改hosts文件,当浏览器请求一个地址时,首先会从此文件选择对应对应的IP地址,找不到时才请求CDS域名解析服务器进行解析
C:\\Windows\\System32\\drivers\\etc\\hosts文件:
127.0.0.1 eureka-server
127.0.0.1 eureka-server1

分别启动2个注册中心

Eureka客户端注册至集群上
客户端只需要通过修改配置文件的eureka.client.service-url.defaultZone值即可。

修改spring-cloud-eureka-client项目

修改配置文件application.properties

分别启动二个服务提供端,启动后,可以看见eureka-client注册到2个注册中心上去了。

高可用测试

为了验证高可用性是否成功,创建一个spring-cloud-eureka-server-ha-test项目,作为服务消费者使用RestTemplate+ribbon进行调用spring-cloud-eureka-client的服务。

创建spring-cloud-eureka-server-consumer-message项目

pom依赖:

1.配置文件,配置注册中心地址

2.启动类,配置RestTemplateBean类,同时加入@LoadBalanced注解实现服务调用。

3.编写一个控制类,简单调用EUREKA-CLIENT服务方法。

4.启动应用类,访问注册中心和 http://localhost:9600 。

PS:福利来了,上源码!福利来了,上源码!
福利来了,上源码!
https://github.com/TheWays/springCloud
记得点赞哈

以上是关于Eureka高可用与负载均衡的主要内容,如果未能解决你的问题,请参考以下文章

Keepalived负载均衡与高可用

ansible实现快速部署负载均衡与keepalived高可用

想实现高可用?先搞定负载均衡原理

Seata服务高可用+负载均衡搭建

haproxy+keepalived负载均衡与高可用

Spring Cloud Ribbon---微服务调用和客户端负载均衡