(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分别设置为上面三个的映射名(别重复了):
三个节点的配置分别是:
如果eureka集群的节点都在不同的机器上(ip不同),那hostname直接使用那节点所在机器的ip就是了,这样一样不会重复。
(4)eureka集群的每个节点都要如下设置:
我百度了很多资料,里面都说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节点的地址,如图:
当前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节点。
如图,画圈的DS Replicas会显示另外两个节点的hostname,然后下面的registered-replicas和available-replicas会显示已注册的和可以使用的另个两个节点。
注意了,要仔细看unavailable-replicas是否有值,这个里面是显示不可用的节点,如果配置步骤不是按我说的来,那可能有些节点就不能用了。
到此为止,eureka服务端的集群搭建完毕,eureka客户端在下篇文章中介绍。