在分布式微服务架构中,往往需要充分考虑发生故障的情况,因此在成产环境中必须对各个组件进行高可用部署,对于微服务如此,服务注册中心也是一样,我们需要构建高可用的服务注册中心从而提高系统的可用性。
Eureka Server服务注册中心的高可用实际上就是将自己作为服务注册中心注册自己,这样就可以形成一组相互注册的服务中心,以实现服务清单的互相同步,以此达到高可用的而效果。
第一步:创建EurekaServerApplication1.application.yml,作为EurekaServerApplication1服务中心的配置,将serviceUrl指向EurekaServerApplication2,配置如下:
eureka: client: service-url: defaultZone: http://localhost:8762/eureka/ register-with-eureka: false spring: application: name: eureka-server
第二步:创建EurekaServerApplication2.application.yml,,作为EurekaServerApplication2服务中心的配置,将serviceUrl指向EurekaServerApplication1,配置如下:
eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ register-with-eureka: false spring: application: name: eureka-server
分别启动EurekaServerApplication1、urekaServerApplication2,访问http:localhost:8761/ 、http:localhost:8762/,可以看到registered-replicas中已经有EurekaServerApplication2节点的eureka-server了,同样访问http:localhost:8762/,也可以看到registered-replicas中已经有urekaServerApplication2节点了。
在设置了多节点分服务注册中心之后,服务提供方还需要做一写简单的配置将服务注册到Eureka Server集群中,以Eureka-Client为例,创建主类EurekaClientApplication,通过@EnableDiscoveryClient注解让应用注册为Eureka客户端应用,一获得服务发现的能力,对该器配置文件:
eureka: client: service-url: defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/ spring: application: name: eureka-client
上面配置对eureka.client.service-url.defaultZone做了改动,将服务中心指向我们搭建的服务注册服务器EurekaServerApplication1、EurekaServerApplication2,启动EurekaClientApplication,方通过访问http://localhost:8761/eureka/,http://localhost:8762/eureka/,可以观察到eureka-client被注册到了EurekaServerApplication1、urekaServerApplication2,若断开EurekaServerApplication1,由于eureka-client同时也向EurekaServerApplication2注册,因此在urekaServerApplication2上的其他服务还是能访问到eureka-client,从而实现了服务注册的高可用。
来源:oschina
链接:https://my.oschina.net/jacklinnn/blog/4322521