springcloud(六)--搭建Eureka Server集群

本篇是关于spring cloud中Eureka Server的番外篇,主要介绍下Eureka Server的集群搭建,以及springcloud 客户端如何连接到Eureka Server集群。 

为了简便起见,我就不搞3台虚拟机了,直接修改下本机hosts文件来模拟3台机器即可。 

本机hosts文件

#springcloud eureka 服务集群
127.0.0.1  eureka1.tingcream.com
127.0.0.1  eureka2.tingcream.com
127.0.0.1  eureka3.tingcream.com

Eureka Server 集群application.yml 和单机环境下的application.yml配置不同。

集群环境中:

 spring.application.name设置为相同值,eureka.client.register-with-eureka 需设置为默认的true,eureka.client.retch-registry需设置为默认的true,eureka.client.service-url.defaultZone 设置为所有其他的eureka server的地址。

sim-eureka-8001 中application.yml

server:
  port: 8001 


spring:
  application:
    name: sim-eureka 
      
eureka: 
  instance:
    # 单机 hostname: localhost #eureka注册中心实例名称
    hostname: eureka1.tingcream.com # 集群
  client: 
    register-with-eureka: true    
    fetch-registry: true    
    service-url: 
      defaultZone: http://eureka2.tingcream.com:8002/eureka/,http://eureka3.tingcream.com:8003/eureka/ 
      

sim-eureka-8002 中application.yml 


server:
  port: 8002 

spring:
  application:
    name: sim-eureka 

eureka: 
  instance:
    hostname: eureka2.tingcream.com # 集群
  client: 
    register-with-eureka: true     
    fetch-registry: true     
    service-url: 
      defaultZone: http://eureka1.tingcream.com:8001/eureka/,http://eureka3.tingcream.com:8003/eureka/ #集群

sim-eureka-8003 中application.yml


server:
  port: 8003 
  
spring:
  application:
    name: sim-eureka 

eureka: 
  instance:
    hostname: eureka3.tingcream.com # 集群
  client: 
    register-with-eureka: true  
    fetch-registry: true 
    service-url: 
      defaultZone: http://eureka2.tingcream.com:8002/eureka/,http://eureka1.tingcream.com:8001/eureka/ 
      

你可以复制3份sim-eureka 工程,让后分别修改其application.yml文件,或者,不用复制工程只需要在运行程序时指定程序参数即可,如:

在 eclipse 的工具栏, Run  --》 Run Configurations ,在程序参数分别中填入,

--server.port=8001 --spring.application.name=sim-eureka  --eureka.client.register-with-eureka=true --eureka.client.fetch-registry=true --eureka.instance.hostname=eureka1.tingcream.com --eureka.client.service-url.defaultZone=http://eureka2.tingcream.com:8002/eureka/,http://eureka3.tingcream.com:8003/eureka/ 

--server.port=8002 --spring.application.name=sim-eureka --eureka.client.register-with-eureka=true --eureka.client.fetch-registry=true --eureka.instance.hostname=eureka2.tingcream.com --eureka.client.service-url.defaultZone=http://eureka1.tingcream.com:8001/eureka/,http://eureka3.tingcream.com:8003/eureka/ 

--server.port=8003 --spring.application.name=sim-eureka --eureka.client.register-with-eureka=true --eureka.client.fetch-registry=true --eureka.instance.hostname=eureka3.tingcream.com --eureka.client.service-url.defaultZone=http://eureka1.tingcream.com:8001/eureka/,http://eureka2.tingcream.com:8002/eureka/ 
 

完了后,分别启动SimEurekaServer-8001、SimEurekaServer-8002 、SimEurekaServer-8003 ,分别访问

http://eureka1.tingcream.com:8001/  http://eureka2.tingcream.com:8002/  http://eureka3.tingcream.com:8003/ 

可以看到 DS Replicas 中有2条记录 。

springcloud客户端应用如何连接到Eureka Server集群呢? 

以sim-provider 工程为例,修改application.yml 中eureka.client.default-url.defaultZone值即可。

#eureka客户端
eureka: 
  instance: 
    hostname: localhost  #eureka客户端主机实例名称
    prefer-ip-address: true
  client: 
    service-url:
      defaultZone: http://eureka1.tingcream.com:8001/eureka/,http://eureka2.tingcream.com:8002/eureka/,http://eureka3.tingcream.com:8003/eureka/ # 集群

猜你喜欢

转载自blog.csdn.net/jasnet_u/article/details/81809278