spring cloud 搭建注册中心Eureka(集群模式)

Posted 懒到饿死的猫

tags:

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

集群

注册中心这么关键的服务,如果是单点话,遇到故障就是毁灭性的。在一个分布式系统中,服务注册中心是最重要的基础部分,理应随时处于可以提供服务的状态。为了维持其可用性,使用集群是很好的解决方案。Eureka通过互相注册的方式来实现高可用的部署,所以我们只需要将Eureke Server配置其他可用的serviceUrl就能实现高可用部署。

新建3个配置文件

application-peer1.yml

spring:
  application:
   name: Service     #应用名称,也是服务注册的名称

server:
  port: 8000         #开启端口

eureka:
  instance:
    hostname: peer1     #主机名
  client:
    serviceUrl:
      defaultZone: http://peer2:8001/eureka/,http://peer3:8002/eureka/    #与Eureka Server交互的地址,查询服务和服务注册都需要依赖这个地址
     #默认为http://localhost:8761/eureka,  多个地址用","分割
    fetch-registry: false                           #是否将自己注册到Eureka Server 默认为true
    register-with-eureka: true                     #是否从Eureka Server查询注册信息
  server:
    enable-self-preservation: false             #关闭自我保护模式
    eviction-interval-timer-in-ms: 4000         #清理服务间隔4s,默认60*10000

 

application-peer2.yml

spring:
  application:
    name: Service     #应用名称,也是服务注册的名称

server:
  port: 8001         #开启端口

eureka:
  instance:
    hostname: peer2     #主机名
  client:
    serviceUrl:
      defaultZone: http://peer1:8000/eureka/,http://peer3:8002/eureka/   #与Eureka Server交互的地址,查询服务和服务注册都需要依赖这个地址
      #默认为http://localhost:8761/eureka,  多个地址用","分割
    fetch-registry: false                           #是否将自己注册到Eureka Server 默认为true
    register-with-eureka: true                     #是否从Eureka Server查询注册信息
  server:
    enable-self-preservation: false             #关闭自我保护模式
    eviction-interval-timer-in-ms: 4000         #清理服务间隔4s,默认60*10000

application-peer3.yml

spring:
  application:
    name: Service     #应用名称,也是服务注册的名称

server:
  port: 8002         #开启端口

eureka:
  instance:
    hostname: peer3     #主机名
  client:
    serviceUrl:
      defaultZone: http://peer1:8000/eureka/,http://peer2:8001/eureka/    #与Eureka Server交互的地址,查询服务和服务注册都需要依赖这个地址
      #默认为http://localhost:8761/eureka,  多个地址用","分割
    fetch-registry: false                           #是否将自己注册到Eureka Server 默认为true
    register-with-eureka: true                     #是否从Eureka Server查询注册信息
  server:
    enable-self-preservation: false             #关闭自我保护模式
    eviction-interval-timer-in-ms: 4000         #清理服务间隔4s,默认60*10000

注意:

1.register-with-eureka 需要设置为true,或者不设置,默认为true

2.hostname和defaultZone的域名不要设置为localhost,应设置为别名,并在操作系统的host文件中添加映射,

127.0.0.1        peer1
127.0.0.1        peer2
127.0.0.1        peer3

   否则后台会出现registered-replicas为空的情况

3.enable-self-preservation 设置为false 关闭自我保护模式,否则一个节点挂掉之后,不会在unavailable-replicas中出现

在idea中设置3个启动方式,并分别设置启动时应用的配置文件名,springboot中约定 配置文件以application-{profiles}.xxx的方式命名

 

 

 

 

 

 3个同时启动,分别访问 localhost:8000, localhost:8001, localhost:8002 

 

 

 关闭节点peer1,一段时间后,peer1节点信息将出现在 unavailable-replicas 中,如果不关闭自我保护模式,则不会出现。

 再次启动peer1,又会恢复正常

 

 

 以jar包形式启动3个应用,

java -jar -Dspring.profiles.active=peer1 Service.jar
java -jar -Dspring.profiles.active=peer2 Service.jar
java -jar -Dspring.profiles.active=peer3 Service.jar

 

以上是关于spring cloud 搭建注册中心Eureka(集群模式)的主要内容,如果未能解决你的问题,请参考以下文章

Spring Cloud Eureka服务注册与发现

spring cloud 搭建注册中心Eureka(集群模式)

spring cloud Eureka注册中心集群搭建

Spring-Cloud之Eureka注册中心环境搭建(单节点)

Spring Cloud 入门 -- 搭建Eureka注册中心 实现服务者与消费者的服务调用

Spring Cloud 入门 -- 搭建Eureka注册中心 实现服务者与消费者的服务调用