4.Spring-Cloud-Eureka构建双节点服务注册中心集群
注册中心这么关键的服务,如果是单点话,遇到故障就是毁灭性的。在一个分布式系统中,服务注册中心是最重要的基础部分,理应随时处于可以提供服务的状态。为了维持其可用性,使用集群是很好的解决方案。
Eureka Server的设计一开始就考虑了高可用问题,在Eureka的服务治理设计中,所有的结点即是服务的提供方,也是消费方,服务注册中心也不列外之前设计的让注册中心不注册自己。如下配置
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
Eureka Server的高可用实际就是将自己作为服务向其他服务注册中心注册自己,这样就形成了一组互相注册的注册中心,以实现服务清单的相互同步
新建项目:
1.pom.xml
2.、创建application-testhost.properties,作为testhost服务中心的配置,并将serviceUrl指向testhost2
3.、创建application-testhost2.properties,作为testhost2服务中心的配置,并将serviceUrl指向testhost1
4.主机名的配置注释中已经写明了。
127.0.0.1 testhost
127.0.0.1 testhost2
5.启动类
6.打成jar包
1.先查看pom.xml中 <packaging>jar</packaging>是为jar
2.在eclipse中右键项目-->Run as --->Run configurations中main的tab栏中的goals填写package这样就打成jar包了如果失败,右键项目-->maven-->update project然后在重新打包.
7.运行
一次执行以下命令,如果执行中报错参考http://blog.csdn.net/niugang0920/article/details/79573134
java -jar spring-cloud-0.0.1-SNAPSHOT.jar --spring.profiles.active=testhost
没有启动第二条命令,效果如上图
java -jar spring-cloud-0.0.1-SNAPSHOT.jar --spring.profiles.active=testhost2
启动第二条命令,刷新浏览器结果为上图。
8.修改服务提供方配置文件,将注册中心改成配置的testhost,testhost2
启动服务提供方。
刷新:http://testhost:8000/ 可知服务提供方已经注册到testhost中了
刷新:http://testhost2:8001/ 可知服务提供方已经注册到testhost2中了
如果不想使用主机名来定义注册中心的地址,也可以使用ip地址的形式,需要配置文件中增加
eureka.instance.prefer-ip-address=true
微信公众号:
JAVA程序猿成长之路
分享资源,记录程序猿成长点滴。专注于Java,Spring,SpringBoot,SpringCloud,分布式,微服务。