Spring Cloud学习(二)--搭建高可用服务注册中心

Spring Cloud学习(一)中,我们搭建了一个单节点的服务注册中心,但是一旦发生了故障整个服务就瘫痪了,所以在实际应用中,我们需要搭建高可用注册中心。在Eureka中,是通过集群来解决这个问题。Eureka Server的高可用实际上就是将自己作为服务向其他服务注册中心注册自己,这样就会形成一组互相注册的服务注册中心,进而实现服务清单的互相同步,达到高可用的效果。下面我们在第一篇博客的基础上来看看如何搭建高可用注册中心。

创建项目

在上篇博客中,创建了一个名叫eurekaserver的服务注册中心,在本文中,我们创建一个相同项目,命名为eurekaserver2


两个配置文件的内容分别如下:

eurekaserver:application.yml:

server:
  port: 1000

eureka:
  instance:
    hostname: localhost1
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://localhost2:1100/eureka/

eurekaserver2:application.yml:

server:
  port: 1100

eureka:
  instance:
    hostname: localhost2
  client:
    registerWithEureka: false
    fetchRegistry: false
    serviceUrl:
      defaultZone: http://localhost1:1000/eureka/

关于这两个配置文件:

1.在eurekaserver的配置文件中,让它的service-url指向eurekaserver2的localhost2,在eurekaserver2的配置文件中让它的service-url指向localhost1
2.为了让localhost1和localhost2能够被正确的访问到,我们需要在C:\Windows\System32\drivers\etc目录下的hosts文件总添加两行配置,如下:
127.0.0.1 localhost1
127.0.0.1 localhost2
3.由于localhost1和localhost2互相指向对方,实际上我们构建了一个双节点的服务注册中心集群

启动项目

现在我们可以直接启动这两个项目,我们的服务注册中心就启动了两个了,效果图如下:

 

我们可以看到,在localhost1的节点的DS replicas我们已经可以看到localhost2节点了,在localhost2的DS replicas中我们也可以看到localhost1节点了。这样我们的服务注册中心集群就搭建好了。

测试

修改上篇博客中提到的eurekaclient项目的配置文件,如下:

eureka:
  client:
    serviceUrl:
      defaultZone: http://localhost1:1000/eureka/,http://localhost2:1100/eureka/
server:
  port: 2000
spring:
  application:
    name: service-hi


需要注意的是,我们在service-url中添加了两个注册中心地址,两个地址中间用,隔开,然后我们来启动这个项目,启动成功之后我们再去刷新http://localhost:1000和http://localhost:1100两个页面,我们会发现我的服务提供者在这两个服务注册中心都注册了,如图:

 

 这样,一个高可用的服务注册中心我们就搭建成功了。

原创文章 61 获赞 84 访问量 1万+

猜你喜欢

转载自blog.csdn.net/MICHAELKING1/article/details/90245370