内容html
因为前两节的内容咱们知道,开启了preferIpAddress后,Eureka的伪分布式部署会提示replica不可用。这一节咱们讲解如何在生产环境下部署彻底分布式的Eureka集群,确保开启了preferIpAddress后replica的可用性。java
版本git
IDE:IDEA 2017.2.2 x64github
JDK:1.8.0_171spring
manve:3.3.3安全
SpringBoot:1.5.9.RELEASE服务器
SpringCloud:Dalston.SR1app
适合人群分布式
Java开发人员post
节点信息:
节点A的IP为:172.26.125.118
节点B的IP为:172.26.125.114
节点C的IP为:172.26.125.115
说明
转载请说明出处:SpringCloud从入门到进阶(四)——生产环境下Eureka的彻底分布式部署
三台服务器都须要安装好JDK,能够参考:Linux入门实践笔记(一)——安装JDK与运行jar包
步骤
Eureka的彻底分布式部署与伪分布式部署大同小异,只是yaml配置文件和启动方式不一样。项目结构、pom.xml文件、主启动类的配置,以及项目打包、部署的操做都几乎同样,请参考SpringCloud从入门到进阶(二)——注册中心Eureka的伪分布式部署。
在单台主机进行伪分布式部署时,三个Eureka实例的端口号是不一样的。可是彻底分布式部署是在不一样的主机中运行不一样的Eureka实例,端口号保持一致便于管理。同时实例的名称要能体现主机的信息。此外,因为开启了preferIpAddress,在配置service-url的时候须要使用ip地址,而不是域名。
#将公共部分提取出来,好比端口号、实例名等配置 spring: application: name: application-eurekaserver server: port: 7001 eureka: instance: #要求Client经过ip的方式进行注册 prefer-ip-address: true client: register-with-eureka: true fetch-registry: true #actuator management: #配置了Actuator对外暴露REST API接口的端口号,若是不指定,端口为应用程序的启动端口,这样作的目的是将程序端口和程序的监控端口分开。 port: 7101 #Actuator 采起非安全验证方式,l.5x 版本默认开启了 Actuator 的安全验证。• security: enabled: false --- spring: profiles: peer1 eureka: instance: instance-id: springcloud-eurekaserver-A8-118 client: service-url: defaultZone: http://172.26.125.114:7001/eureka,http://172.26.125.115:7001/eureka --- spring: profiles: peer2 eureka: instance: instance-id: springcloud-eurekaserver-A6-114 client: service-url: defaultZone: http://172.26.125.118:7001/eureka,http://172.26.125.115:7001/eureka --- spring: profiles: peer3 eureka: instance: instance-id: springcloud-eurekaserver-A2-115 client: service-url: defaultZone: http://172.26.125.118:7001/eureka,http://172.26.125.114:7001/eureka
在启动时,经过JVM参数-Dspring.profiles.active选择项目启动的profiles。此处还设定了虚拟机堆空间的最小值为512mb,堆空间的最大值为1024mb。
#请根据你的机器配置设置合适的堆空间参数。 #在节点A上运行 [ServerA@172.26.125.118 jars]$ java -Xms512m -Xmx1024m -Dspring.profiles.active=peer1 -jar eurekaserver-1.0-SNAPSHOT.jar & #在节点B上运行 [ServerB@172.26.125.114 jars]$ java -Xms512m -Xmx1024m -Dspring.profiles.active=peer2 -jar eureka-server-7001-7002-1.0-SNAPSHOT.jar #在节点C上运行 [ServerC@172.26.125.115 jars]$ java -Xms512m -Xmx1024m -Dspring.profiles.active=peer3 -jar eureka-server-7001-7002-1.0-SNAPSHOT.jar
确保本地能访问到这三台eureka服务器,访问http://172.26.125.118:7001/
可见,全部replica的状态都可用。