Spring Cloud 2.0 实战——Eureka(二.实现高可用注册中心)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/java_yes/article/details/80706168

根据《SpringCloud微服务实战》第三章,使用SpringBoot 2.0.1.RELEASE版本,对应的SpringCloud版本为Finchley.M7

高可用注册中心

在微服务架构这样的分布式环境中,我们不可能使用单节点的服务注册中心,如果down掉了,那整个项目都会崩溃。所以我们需要构建高可用的服务注册中心以增强系统的可用性。
在Eureka的服务治理设计中,所有节点即是服务提供方,也是服务消费方,服务注册中心也不例外。在上篇文章中我们说到配置以下两个属性,不让服务端自己注册自己。

eureka.client.register-with-eureka: false
eureka.client.fetch-registry: false

Eureka Server的高可用实际上就是将自己作为服务向其他服务注册中心注册自己,这样就可以形成一组互相注册的服务注册中心。我们在上篇文章的服务注册中心基础上,进行更改。

配置文件application.yaml

首先再创建三个yaml文件。application-server1.yaml,application-server2.yaml,application-server3.yaml
server的目录结构为:
结构

application.yaml

spring:
  application:
    name: eureka-server-cluster
  profiles:
    active: server1

application-server1.yaml

server:
  port: 8100
eureka:
  instance:
    hostname: server1
    instance-id: ${spring.application.name}:${server.port}
  client:
    serviceUrl:
        defaultZone: http://server2:8200/eureka,http://server3:8300/eureka

application-server2.yaml

server:
  port: 8200
eureka:
  instance:
    hostname: server2
    instance-id: ${spring.application.name}:${server.port}
  client:
    serviceUrl:
        defaultZone: http://server1:8100/eureka,http://server3:8300/eureka

application-server3.yaml

server:
  port: 8300
eureka:
  instance:
    hostname: server3
    instance-id: ${spring.application.name}:${server.port}
  client:
    service-url:
      defaultZone: http://server1:8100/eureka,http://server2:8200/eureka

更改hosts文件

127.0.0.1       localhost server1 server2 server3

就这样,我们就完成了一个高可用的注册中心。三个注册中心互相注册,比两个更可靠。
我们通过jar包对配置中心进行启动。
控制台进入到相应的target文件夹后,输入

java -jar eureka-server-1.0-SNAPSHOT.jar --spring.profiles.active=server1

java -jar eureka-server-1.0-SNAPSHOT.jar --spring.profiles.active=server2

java -jar eureka-server-1.0-SNAPSHOT.jar --spring.profiles.active=server3

这样三个服务中心分别启动。在浏览器依次打开:localhost:8100、localhost:8200、localhost:8300。此时能看到注册信息,每个服务注册中心被其他两个成功注册。

注册界面

server1监控界面

server1

server2监控界面

server2

server3监控界面

server3

ok,此时我们完成了一个简单的高可用注册中心。

此时如果我们关闭server3,那可以看到server3变为unavailable-replicas(不可用分片),而其他的一个还是available-replicas(可用分片)。

扫描二维码关注公众号,回复: 5538187 查看本文章

关闭servre3

server1监控界面

3close_1

server2监控界面

3close_2

猜你喜欢

转载自blog.csdn.net/java_yes/article/details/80706168