Spring Cloud微服务连载(二):搭建高可用Eureka服务注册中心集群

 

10万+IT人都在关注,史上最全面的企业级微服务快速开发学习教程:5分钟快速搭建一个高可用服务注册中心集群

前言:springcloud项目是基于springboot框架,我们演示的都创建springboot工程

上篇博客【Spring Cloud微服务连载(一):搭建服务注册中心以及注册服务提供者】中我们介绍了如何使用Spring Cloud搭建一个服务注册中心以及注册服务,但是搭建好的服务注册中心是一个单节点的服务注册中心,这样一旦这个注册中心发生了故障,那么整个服务就会瘫痪,所以我们需要一个高可用的服务注册中心,那么在Eureka中,我们通过搭建注册中心集群来解决这个问题。Eureka Server的高可用实际上就是将自己作为服务向其他服务注册中心注册自己,这样就会形成一组互相注册的服务注册中心,进而实现服务清单的互相同步,达到高可用的效果。OK,废话不多说,直接上干货,我们就来看看如何搭建高可用注册中心。

增加配置文件

在上篇博客中,我们创建了一个名叫chenyun-cloud-eureka的服务注册中心,在本文中,我将向这个工程中添加两个配置文件application-peer1.yml和application-peer2.yml,进而将其分别启动。如下:

两个配置文件的内容分别如下:
application-peer1.yml:

spring:
  application:
    name: eureka-center
server:
  port: 1111
eureka:
  instance:
    hostname: peer1
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://peer2:1112/eureka/

application-peer2.yml:

spring:
  application:
    name: eureka-center
server:
  port: 1112
eureka:
  instance:
    hostname: peer2
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://peer1:1111/eureka/

关于这两个配置文件作以下几点说明:

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

打包生成jar文件

OK,现在我们把这个注册中心打包为jar文件,eclipse里打包方式如下:

生成结果在项目的target目录下面,如下:

启动项目

生成jar文件之后,我们在命令行通过java命令来启动项目,在启动的时候我们设置采用不同的配置文件来启动项目,命令如下:

java -jar chenyun-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer1  
java -jar chenyun-cloud-eureka-0.0.1-SNAPSHOT.jar --spring.profiles.active=peer2

这两行命令表示我们分别采用application-peer1.yml和application-peer2.yml两个配置文件来启动应用,执行完这两个命令之后,我们的服务注册中心就启动了两个了,效果图如下:

我们可以看到,在peer1的节点的DS replicas我们已经看到peer2节点了,在peer2的DS replicas中我们也看到peer1节点了。

OK,现在我们的服务注册中心集群就搭建好了,然后我们可以做一个简单的测试

修改上篇博客中提到的chenyun-cloud-hello-service项目的配置文件,如下:

spring:
  application:
    name: hello-service
server:
  port: 8881
eureka:
  instance:
    instance-id: ${spring.application.name}:${server.port}
    prefer-ip-address: true 
  client:
    service-url:
      defaultZone: http://peer1:1111/eureka/,http://peer2:1112/eureka/

我们在service-url中添加了两个注册中心地址,两个地址中间用,隔开,OK,修改一下这里就可以了,接下来我们来启动这个项目,启动成功之后我们再去刷新http://localhost:1111和http://localhost:1112 两个页面,我们会发现我的服务提供者在这两个服务注册中心都注册了,如下:

 至此,一个高可用的服务注册中心集群我们就搭建成功了。

更多JavaEE资料请关注下面公众号,欢迎广大开发者朋友一起交流。笔者电话(微信):18629374628

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章