上一讲我们将两个服务注册到了 Eureka Server 中,但是!如果 Eureka Server 挂掉之后,虽然服务还可以继续调用一段时间(因为有缓存),但是,如果有新的服务现在要注册,是注册不了的,或者当注册中心扛不住高并发的时候,我们的服务也会出现问题,为了解决这个问题,我们引入了 Eureka 集群。
一、Eureka 集群搭建
Eureka 本身是支持集群化部署的,我们来模拟一下。
集群的话,我们一般都是推荐三个起步,但是因为是学习,所以我们这里就弄两个,主要是感受一下。到时候项目上线到生产,Eureka 集群是很好搭建的。
首先,我们再去弄一个 Eureka Server 的项目(实际开发并不需要再去创建项目,只需要搭建一个 Eureka,修改端口等配置项即可)。
项目名称:microservice-eureka-server-2001
pom、application.yml、启动类 这些自己去复制之前的 Eureka Server 项目中的。
接着我们再来修改 hosts 本机域名映射。
之前我们一个 Eureka Server 的时候,我们注册中心实例名称都是 localhost,现在变成集群后,不能都是 localhost。这里稍微复杂一点的办法是弄三个虚拟机,然后打包成 jar 扔到虚拟机中运行。当然,我们不会这么去做,太麻烦,我们是通过修改本机的 hosts,来实现本机域名映射解决。
找到 C:\Windows\System32\drivers\etc 打开 hosts 配置,在原有的基础上增加一些东西(这里注意一下,ip 与虚拟映射域名中间间隔一个 tab!!!)
127.0.0.1 eureka2000.lemon1234.com
127.0.0.1 eureka2001.lemon1234.com
保存后我们来修改 application.yml
打开其中一个 Eureka Server 的 application.yml 配置。
这个配置是我们之前不使用集群的配置,改成集群后,我们需要修改 eureka.instance.hostname 和 eureka.client.service-url.defaultZone。
我们将 hostname 改成对应的本地映射的域名;然后下面的 defaultZone 是要配置除自己之外,其他 Eureka Server 的地址。(自己按照样子去吧另外一个配置了)
因为我们这里的集群是两个,如果是多个,我们需要将 defaultZone 中其他 Eureka Server 地址用逗号隔开,一个一个写上去,举例:
defaultZone: http://eureka2001.lemon1234.com:2001/eureka/, http://eureka2002.lemon1234.com:2002/eureka/,
http://eureka2003.lemon1234.com:2003/eureka/
配置好之后,我们可以启动一下两个 Eureka!
访问地址:http://eureka2000.lemon1234.com:2000/
可以看到,我们的 Eureka Server 集群就部署好了。
二、Eureka Client 注册 Eureka Server 集群
Eureka Client 在单机模式注册是往一个地方注册,现在变成集群后,需要向所有的 Eureka Server 进行注册。
改好之后,另外一个服务自己去修改一下,启动他们。
可以看到,两个服务都上去了,再来请求一下之前写的接口。
同样也是 ok 的~~~
这一讲就讲到这里,有问题可以联系我:QQ 2100363119,欢迎大家访问我的个人网站:https://www.lemon1234.com
最近网站已经做好,并且已经上线,欢迎各位留言~~