怎样搭建eureka集群(war包版)?

在之前的文章中,我们介绍了怎么样部署一个单机版本的eureka服务,但是从生产环境的角度来说,你最希望的是什么?

 

没错,就是一个具备高可用能力的eureka集群了。那好,在接下来的部分,我们就通过一个一个的步骤,来向你展示,搭建一个eureka集群,最关键的步骤和手段。

 

首先,我们先来看下搭建eureka集群的前置条件

 

1、前提条件

 

 

说明:可以根据自己的环境,选择对应的版本即可。但是,jdk必须要1.8版本以上的

2、主机规划

 

本次演示的是,部署3个节点的eureka集群,将使用如下的主机进行eureka集群的部署:

 

  • nccztsjb-node-23
  • nccztsjb-node-24
  • nccztsjb-node-25

 

在每个主机节点,都配置如下的hosts解析:

 

# 将IP-主机名的映射关系写入hosts文件中
cat <<EOF >> /etc/hosts
# hosts for eureka cluster
172.20.58.83 nccztsjb-node-23
172.20.58.65 nccztsjb-node-24
172.20.58.18 nccztsjb-node-25
EOF

# 确认主机名的解析已经正确的配置
cat /etc/hosts

 

3、修改eureka client配置

 

通过eureka服务中的client的配置,将eureka中注册的信息复制到不同的节点中。

 

每个节点的tomcat的webapps目录中,做如下的操作:

 

  • 解压eureka
cd apache-tomcat-9.0.63/webapps/ \
&&
wget -q -O eureka.war http://172.20.56.117/middleware/eureka/eureka-server-1.10.17.war \
&&
unzip -q eureka.war -d eureka

 

  • 修改eureka-client.properties配置文件

 

# 设置其他的eureka的地址

sed -i "/eureka.serviceUrl.default/ceureka.serviceUrl.default=http://nccztsjb-node-23:8080/eureka/v2/,http://nccztsjb-node-24:8080/eureka/v2/,http://nccztsjb-node-25:8080/eureka/v2/" eureka/WEB-INF/classes/eureka-client.properties

 

  • 修改eureka-server.properties配置文件
# 关闭eureka server的自我保存模式

cat <<EOF >> eureka/WEB-INF/classes/eureka-server.properties
eureka.enableSelfPreservation=false
EOF

 

 

注意!注意!注意!

 

这里必须要,配置为主机名,不能写IP地址。否则会出现如下的问题,在eureka启动后,集群的节点在不可用副本里:

 

 

OK,已经配置好了client配置之后,接下来就是最重要的一步了,启动eureka集群

 

4、运行eureka集群

 

启动eureka集群的方法,非常的简单。启动各个节点的tomcat即可

 

cd .. && bin/startup.sh

 

启动操作执行完成之后,可以登录eureka的web界面,查看eureka集群的状态(启动过程,eureka节点间相互查找,需要几分钟):

 

 

现在就可以看到,当前节点注册的实例信息,可用的副本信息了。

 

为了能够在本地PC端进行访问,也就是点击“DS Replicaton”中的节点时,自动可以连接上,可以在PC端的hosts中配置IP-主机名的解析

 

 

这样,就可以跳转到不同的eureka server端进行查看了。

 

 

 

 

OK,到这里,我们的eureka集群已经搭建完成了。

 

5、实例注册、信息复制的验证

 

那,我们看看,这个集群到底能不能注册?注册之后的实例信息是否可以被复制到其他的节点上。

 

为了达成这个效果,我们使用,eureka git中的eureka-examples这个示例来进行测试:

 

  • 获取eureka-examples代码
git clone https://github.com/Netflix/eureka.git
  • 修改eureka examples中的客户端配置
cd eureka/eureka-examples/conf/

# 修改sample-eureka-client.properties配置
# 修改为其中一个节点的配置即可

eureka.serviceUrl.default=http://172.20.58.83:8080/eureka/v2/

 

 

配置修改好后,接下来,就是见证奇迹的时刻。

 

  • 启动service服务

 

cd eureka/
./gradlew :eureka-examples:runExampleService

 

待看到:Service started and ready to process requests..

说明:服务已经启动完成,注册成功!

 

我们在回到web界面,可以看到,在每个节点都可以看到这个注册的示例服务的实例信息,并且,实例的状态是:up.

 

 

ok,通过以上的结果,我们就知道了,这是,一个已经实现了注册信息复制的eureka的集群。

 

6、eureka集群通信示意图

 

posted @ 2022-08-08 11:03  Zhai_David  阅读(558)  评论(0编辑  收藏  举报