spring-cloud中eureka server的集群配置

(1)集群的各个节点的启动类都加上@EnableEurekaServer作为eureka服务端

  (2) 在hosts文件中配置映射,因为在本机测试,都是同一个127.0.0.1,如果eureka集群每个节点的hostname的值都是localhost,那么集群就不能成功了,会被识别为只有一个节点。所以,在hosts文件中配置多个hostname映射到127.0.0.1。我这里是配置了三个:

127.0.0.1 eureka7001

127.0.0.1 eureka7002

127.0.0.1 eureka7003

如果eureka集群的节点都在不同的机器上(ip不同),那hostname直接使用那节点所在机器的ip就是了,这样一样不会重复。

(3)eureka集群三个节点中每个节点的eureka.instance.hostname分别设置为上面三个的映射名(别重复了):

三个节点的配置分别是:

spring-cloud中eureka server的集群配置_第1张图片

如果eureka集群的节点都在不同的机器上(ip不同),那hostname直接使用那节点所在机器的ip就是了,这样一样不会重复。

  (4)eureka集群的每个节点都要如下设置:

spring-cloud中eureka server的集群配置_第2张图片

我百度了很多资料,里面都说register-with-eureka和fetch-registry的值都设为true(默认就是true),

但是根据我的测试,fetch-registry为false的时候还是能成功。所以,尽量fetch-registry设为false,如果不能成功,那再设为true,节省性能消耗嘛。(其实register-with-eureka和fetch-registry两个的默认值为true,所以不写的话就默认为true)

(5)eureka集群各节点的service-url.defaultZone的值都设置为其他eureka server节点的地址,如图:

spring-cloud中eureka server的集群配置_第3张图片

当前eureka节点的port是7003,hostname为eureka7003,

那么service-url.defaultZone的值就填另外几个个节点的ip地址(不包含本身,以逗号隔开):

 http://eureka7002:7002/eureka/,http://eureka7001:7001/eureka/

上面的地址就是指定另外两个eureka集群节点的地址,不用指定自身。eureka7002和eureka7001就是另外两个节点的hostname。因为在hosts中配置了映射,所以ip地址中可以使用eureka7002和eureka7001代替ip,不一定要使用这个,也可以用相应的ip。

这样三个eureka集群节点都配置完了,启动三个节点。然后在浏览器随便访问一个eureka节点。

spring-cloud中eureka server的集群配置_第4张图片

如图,画圈的DS Replicas会显示另外两个节点的hostname,然后下面的registered-replicas和available-replicas会显示已注册的和可以使用的另个两个节点。

注意了,要仔细看unavailable-replicas是否有值,这个里面是显示不可用的节点,如果配置步骤不是按我说的来,那可能有些节点就不能用了。

 

到此为止,eureka服务端的集群搭建完毕,eureka客户端在下篇文章中介绍。

你可能感兴趣的:(eureka,spring,cloud)