SpringCloud从入门到进阶(四)——生产环境下Eureka的完全分布式部署

内容

  由于前两节的内容我们知道,开启了preferIpAddress后,Eureka的伪分布式部署会提示replica不可用。这一节我们讲解如何在生产环境下部署完全分布式的Eureka集群,确保开启了preferIpAddress后replica的可用性。

版本

  IDE:IDEA 2017.2.2 x64

  JDK:1.8.0_171

  manve:3.3.3

  SpringBoot:1.5.9.RELEASE

  SpringCloud:Dalston.SR1

适合人群

  Java开发人员

节点信息:

  节点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的伪分布式部署

yaml

  在单台主机进行伪分布式部署时,三个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

  在github上查看配置文件

启动与测试

  在启动时,通过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/

1541844454878

  访问http://172.26.125.114:7001/

1541845335259

  访问http://172.26.125.115:7001/

1541845356430

  可见,所有replica的状态均可用。

posted @ 2018-11-11 11:48  比脚更长的路  阅读(5305)  评论(1编辑  收藏  举报