思路:创建多个注册中心,在他们的配置文件中配置相互之间的注册

1 在eureka-server项目的resources目录下创建两个配置文件application-peer1.yml和application-peer2.yml

#application-peer1.yml
server: 
 port: 8761
eureka: 
 instance: 
  hostname: peer1
 client: 
  serviceUrl: 
   defaultZone: http://peer2:8769/eureka/  #向peer2进行注册
spring:
 profiles: peer1 
 application: 
  name: eureka-server  #注册中心
info: #/info请求的显示信息
 app: 
  name: ${spring.application.name}
  version: 1.0.0
 build: 
  artifactId: @project.artifactId@
  version: @project.version@  
#application-peer2.yml
server: 
 port: 8769
eureka: 
 instance: 
  hostname: peer2
 client: 
  serviceUrl: 
   defaultZone: http://peer1:8761/eureka/  #向peer1进行注册
spring:
 application: 
  name: eureka-server  #注册中心
info: #/info请求的显示信息
 app: 
  name: ${spring.application.name}
  version: 1.0.0
 build: 
  artifactId: @project.artifactId@
  version: @project.version@  

2 修改本地的hosts文件(C:\windows\System32\drivers\etc\HOST)

  

3 分别使用application-peer1.yml和application-peer2.yml配置文件启动项目

 第一种方式使用 mvn spring-boot:run -Dspring.profiles.active=peer1

         mvn spring-boot:run -Dspring.profiles.active=peer2

 第二种方式使用java -jar eureka-server-0.0.1-SNAPSHOT.jar - -spring.profiles.active=peer1

        java -jar eureka-server-0.0.1-SNAPSHOT.jar - -spring.profiles.active=peer2

  

4 在客户端指定任意一台注册中心即可

eureka: 
 client: 
  serviceUrl: 
   defaultZone: http://peer1:8761/eureka/ #注册服务器地址

5 这样启动客户端在两个注册中心都可以看到

  

  

  此时就是peer1宕机,引用service-hi服务的程序仍然能够继续访问

  效果演示:

    1 将cloud-consumer-ribbon项目的注册中心配置到peer2上eureka.client.serviceUrl.defaultZone= http://peer2:8769/eureka/

    2 启动cloud-consumer-ribbon

      

    3 将peer1停掉,仍然可以访问

    4 将peer1启动,将peer2停掉,仍然如2中的效果一样

 

posted on 2018-05-15 17:50  YL10000  阅读(681)  评论(0编辑  收藏  举报