spring cloud 搭建高可用注册中心(踩坑)

    先写一下整理过程, 之后总结一下踩的坑,(参考了翟永超的书籍,和一些相关博客)

  Eureka高可用的作用

之所以进行eureka集群的搭建,在于我们平时的生产环境中,很难保证单节点的eureka服务能提供百分百不间断的服务,如果eureka无响应了,整个项目应用都会出现问题,因此要保证eureka随时都能提供服务的情况下,最好的方式就是采用eureka的集群模式,也就是搭建eureka的高可用,在eureka的集群模式下,多个eureka server之间可以同步注册服务,因此,在一个eureka宕掉的情况下,仍然可以提供服务注册和服务发现的能力,从而达到注册中心的高可用。

创建 两个 注册中心, 节点为 peer1, peer2

创建appliaction-peer1.yml  

#本机端口
server:
  port: 1111
spring:
  application:
    name: eureka-server
eureka:
  instance:
    hostname: peer1
  client:
    fetch-registry: true
    register-with-eureka: true
    serviceUrl:
      defaultZone: http://peer2:1112/eureka/

创建 application-peer2.yml  

server:
  port: 1112
spring:
  application:
    name: eureka-server
eureka:
  instance:
    hostname: peer2
  client:
    fetch-registry: true
    register-with-eureka: true
    serviceUrl:
      defaultZone: http://peer1:1111/eureka/

修改配置文件hosts文件

127.0.0.1       peer1
127.0.0.1       peer2

本地分别启动两个注册中心

java -jar  springcloud-demo-0.0.1-SNAPSHOT.jar   --spring.profiles.active=peer1
java -jar  springcloud-demo-0.0.1-SNAPSHOT.jar   --spring.profiles.active=peer2

打开http://localhost:1112 查看peer2 节点 ,    registered-replicas  里面出现了 http://peer1:11111/eureka  , 

切换到 peer1 节点,可以看到peer 为备用节点,

这里面用 peer1,peer2 代表 ip地址,主要是方便区分, 没有特别的意义, 如果你想使用ip的字的话, 设置:

eureka.instance.prefer-ip-address=true

我没测试,需要测试的话, 可以自己去测试一下,

踩坑:这里面的话,需要手动设置

如果不手动设置,按道理默认是为true 的 但是如果不填的话, 不会将自己 注册到注册中心, 会导致,副本注册中心 不可用

不知道是不是spring cloud 依赖的版本问题导致的

发布了21 篇原创文章 · 获赞 15 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/yumingzhu1/article/details/103803410