Spring Cloud微学习(二)Eureka入门——集群

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

引言:上一节 Eureka初探中我们介绍了Eureka服务端以及客户端的基本搭建方法,那么考虑如果Eureka所在的服务器挂掉了,就相当于所以客户端的通讯连接断了。这一节将介绍如何降低出现这种问题的概率。
“在微服务架构这样的分布式环境中, 我们需要充分考虑发生故障的情况, 所以在生产环境中必须对各个组件进行高可用部署, 对于微服务如此, 对于服务注册中心也一样。 但是到本节为止,我们一直都在使用单节点的服务注册中心,这在生产环境中显然并不合适,我们需要构建高可用的服务注册中心以增强系统的可用性。”——《Spring Cloud微服务实战》1

看过上一节 Eureka初探的内容可以看到,在搭建Eureka服务端的时候加了配置registerWithEureka: falsefetchRegistry: false意思是不让服务中心注册自己。现在要解决单点故障风险,我们需要做一个Eureka注册中心集群,需要让服务中心集群相互注册。以两个节点为例,配置如下:

  • 新建application-peer1.yml
server:
  port: 11111
spring:
  application:
    name: eureka-server
eureka:
  instance:
    hostname: peer1
  client:
    serviceUrl:
      defaultZone: http://peer2:22222/eureka/
  • 新建application-peer2.yml
server:
  port: 22222
spring:
  application:
    name: eureka-server
eureka:
  instance:
    hostname: peer2
  client:
    serviceUrl:
      defaultZone: http://peer1:11111/eureka/
  • 配置IP与主机名映射模拟集群环境
    打开编辑C:\windows\system32\drivers\etc\hosts,加入如下内容保存
127.0.0.1 peer1
127.0.0.1 peer2
  • 打包运行

使用Maven Install生成eureka.jar文件,命令行分别执行java -jar eureka.jar --spring.profiles.active=peer1java -jar eureka.jar --spring.profiles.active=peer2

这里写图片描述

  • 查看运行状态

打开浏览器输入http://localhost:11111http://localhost:22222
这里写图片描述

  • 客户端配置

修改上一节 Eureka初探中提到的客户端配置application.yml,目的是把hello-service注册到两个服务注册中心中

server:
  port: 80
eureka:
  client:
    serviceUrl:
      defaultZone: http://peer1:11111/eureka/,http://peer2:22222/eureka/
spring:
  application:
    name: hello-service

打包运行客户端,再打开浏览器输入http://localhost:11111http://localhost:22222,发现hello-service已经同时注册到了两个服务中心中,这时如果其中一个服务中心故障,其它客户端可以从另一个服务中心获取到hello-service提供的服务
这里写图片描述

如我们不想使用主机名来定义注册中心的地址,也可以使用IP地址的形式, 但是需要在配置文件中增加配置参数eureka.instance.prefer江p-address= true, 该值默认为false ——《Spring Cloud微服务实战》


  1. 《Spring Cloud微服务实战》第3章 高可用注册中心中描述的内容

猜你喜欢

转载自blog.csdn.net/ErErFei/article/details/79073121