centos7环境搭建Eureka-Server注册中心集群

Posted justtear

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos7环境搭建Eureka-Server注册中心集群相关的知识,希望对你有一定的参考价值。

目的:测试和线上使用这套独立的Eureka-Server注册中心集群,目前3台虚拟机集群,后续可直接修改配置文件进行新增或减少集群机器。

 

系统环境:

Centos7x64

java8+(JDK1.8+)(java –version  确保java没问题。注意添加环境变量)

端口:8761

各peer节点分别为:

192.168.1.134  peer1

192.168.1.27   peer2

192.168.1.152  peer3

 

一 创建项目

技术分享图片

技术分享图片

 

技术分享图片

技术分享图片

注意!注意!注意 这里有个IDEA的坑

技术分享图片

 

开始引入相关的 eureka-server的包,如下图

打开项目下 src/main/java/com.jinti.eureka2/Eureka2Application   按照步骤来,其中1 2需要自己手动敲代码。

import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;

@EnableEurekaServer

引入后可能需要下载相关依赖包,这个IDEA会自动完成。如果网络好就很快,如果没下载好可能会导致代码提示错误。

其中3  pom.xml我这边没修改过,是IDEA根据项目自动生成,基本上够用。

技术分享图片

 

 

配置好src/main/java/resource里的项目,我们有3个peer,选一个application-peer1.properties为例:

#spring.application.name 所有节点要一致
spring.application.name=eureka-server
eureka.instance.hostname=192.168.1.134
spring.profiles.active=peer1
#如下一般不用修改
server.port=8761
eureka.client.fetch-registry=true
eureka.client.register-with-eureka=true
#instance-id使得状态status显示为ip
eureka.instance.instance-id=${eureka.instance.hostname}:${server.port}
#sdefaultZone里使用的是eureka.instance.hostname,因为hostname是IP,然后注册中心就使用IP注册,不会出现unavailable-replicas
eureka.client.serviceUrl.defaultZone=http://192.168.1.27:8761/eureka/,http://192.168.1.152:8761/eureka/

其中需要更改的地方:

eureka.client.serviceUrl.defaultZone  里设置的IP是除了本身外的其他2个peer的IP和端口

eureka.instance.hostname 这里改为本机的IP,后续显示状态的时候用到。

spring.profiles.active 为节点昵称,不知道为什么我用IP,后面启动带参的时候不行,用peer或者其他昵称也不错。

其他说明:

因为做了集群相互发现和注册,如下设置为true

eureka.client.fetch-registry=true
eureka.client.register-with-eureka=true

 依次分别设置好3个配置文件,分别启动3个节点在IDEA内测试,可参考:https://www.cnblogs.com/hfultrastrong/p/8549590.html

 如果测试没有错就开始打包部署了。

 

二 maven打包jar运行和部署

如下图所示:

技术分享图片

已编译: eureka2-0.0.1-SNAPSHOT.jar

已配置:eureka2-0.0.1-SNAPSHOT.jarBOOT-INFclasses下

application-peer1.properties、 application-peer2.properties、application-peer3.properties

打包后就是一个完整的jar包,如上图5所示。找到这个eureka2-0.0.1-SNAPSHOT.ja 就可以上传到peer机器上跑了。

各节点 分别 执行 对应的启动命令,因为properties里写固定了peer对应的机器

java -jar eureka2-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1 &

java -jar eureka2-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2 &

java -jar eureka2-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer3 &

比如peer1 对应机器 192.168.1.134,则在134这边执行,以此类推

java -jar eureka2-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1 &

如果端口正常起来,因为其他节点还没起来,可能会报一下同步错误,等其他节点都起来就没问题了。

关闭: kill pid

 

网页访问 http://peerIP:8761,各节点replicas 分片正常即可。

技术分享图片

技术分享图片

 

三 后续新增或减少eureka集群的机器

通过  修改eureka2-0.0.1-SNAPSHOT.jarBOOT-INFclasses里的application-peer*.properties配置文件并覆盖即可。

完整的jar下载:

链接: https://pan.baidu.com/s/1cb0XYt3-sb3SAOzee0Q0nQ

提取码: 6ww8

 

 Done!!

以上是关于centos7环境搭建Eureka-Server注册中心集群的主要内容,如果未能解决你的问题,请参考以下文章

在虚拟机环境(CentOS7系统)下将kubernetes中部署服务成功,但在虚拟机外部无法访问到服务

注册中心 Eureka 源码解析 —— 调试环境搭建(含源码)

开发人员学Linux:CentOS7编译安装Nginx并搭建Tomcat负载均衡环境

eureka-server入门搭建/集群搭建

Centos7 zabix3.4.7搭建

centos7下搭建django