eureka集群搭建

1. 分布式和集群有啥区别?

可能有很多人对分布式和集群这两个概念有点混淆。我先用通俗易懂的话给大家解释下:

分布式:一个业务分拆多个子业务,部署在不同的服务器上

集群:同一个业务,分别部署在不同的服务器上

所以分布式的每一个节点,完成的是不同的业务,一个节点挂了,那么这个业务功能就无法访问了,甚至可能会影响到其他业务。而集群是一个比较有组织的架构,正因为有组织性,一个服务节点挂了,其他服务节点可以顶上来,从而保证了服务的健壮性。

所以说,集群可以理解为:你中有我,我中有你,手拉手肩并肩,一起保证服务的健壮性

2. Eureka集群逻辑

在搭建 Eureka 集群之前,先来回顾一下前面搭建的单个 Eureka 服务,看下 yml 配置文件:

server:
 port: 7001

eureka:
 instance:
   #eureka服务端的实例名称
   hostname: eureka01
 client:
   # false表示不向注册中心注册自己
   register-with-eureka: false
   # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
   fetch-registry: false
   service-url:
     #设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址(单机)。
     defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/

这是一个 Eureka 服务,名称是 eureka7001, 注册中心是它自己的。那么我们如何去搭建一个 Eureka 集群呢?假设现在有三个 Eureka 服务:eureka7001、eureka7002 和 eureka7003。

为了体现出集群的你中有我,我中有你,不难想象,eureka7001 中应该挂上 eureka7002 和 eureka7003;eureka7002 中应该挂上 eureka7001 和 eureka7003;eureka7003 中应该挂上 eureka7001 和 eureka7002。如下图所示:

这样就搭建好了一个 Eureka 集群了,那么我们如何去实现呢?接下来就落实到具体实现方式。

3. Eureka7001的改造

由上面的分析可知,Eureka7001 需要挂上 Eureka7002 和 Eureka7003,所以在 Eureka7001 的配置文件中需要重新配置一下 defaultZone,如下:

server:
 port: 7001

eureka:
 instance:
   #eureka服务端的实例名称
   hostname: eureka01
 client:
   # false表示不向注册中心注册自己
   register-with-eureka: false
   # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
   fetch-registry: false
   service-url:
     defaultZone: http://eureka02.com:7002/eureka/,http://eureka03.com:7003/eureka/

OK,defaultZone 配置好了 eureka7002 和 eureka 7003。

4. 搭建Eureka7002

以同样的方式,拷贝一份 Eureka7001 的工程,修改其配置文件:

server:
 port: 7002

eureka:
 instance:
   #eureka服务端的实例名称
   hostname: eureka02
 client:
   # false表示不向注册中心注册自己
   register-with-eureka: false
   # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
   fetch-registry: false
   service-url: 
     defaultZone: http://eureka01.com:7001/eureka/,http://eureka03.com:7003/eureka/

可以看出,在 eureka7002 中,把 eureka7001 和 eureka7003 挂进来。

5. 搭建Eureka7003

以相同的方式,把 eureka7003 也搭建好。

server:
 port: 7003

eureka:
 instance:
   #eureka服务端的实例名称
   hostname: eureka03
 client:
   # false表示不向注册中心注册自己
   register-with-eureka: false
   # false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
   fetch-registry: false
   service-url: 
     defaultZone: http://eureka01.com:7001/eureka/,http://eureka02.com:7002/eureka/

ok,现在三个 eureka 注册中心都搭建好了,最后别忘了在本地 hosts 文件中将 eureka7001、eureka7002 和 eureka7003 映射到 127.0.0.1。

6修改订单服务

我们首先来回忆下,之前的订单服务提供方的配置文件是怎么写的:

# 客户端注册进eureka服务列表里
eureka:
 client:
   service-url:
     defaultZone: http://eureka01:7001/eureka/
 instance:
   instance-id: 书籍订单服务-8001  # 人性化显示出服务的信息
   prefer-ip-address: true    # 访问路径可显示ip地址

是将订单服务注册到 eureka7001 中,因为之前就这一个 eureka 注册中心,那么现在有三个了,我们需要修改下配置,将订单服务注册到三个 eureka 中。

# 客户端注册进eureka服务列表里
eureka:
 client:
   service-url:
     defaultZone: http://eureka01:7001/eureka/,http://eureka02:7002/eureka/,http://eureka03:7003/eureka/
 instance:
   instance-id: 书籍订单服务-8001  # 人性化显示出服务的信息
   prefer-ip-address: true    # 访问路径可显示ip地址

7. 测试效果

OK,所有搭建步骤都完成了,接下来分别启动一下 eureka7001、eureka7002 和 eureka7003,再启动下订单提供服务。然后我们可以分别访问下三个 eureka 注册中心,看一下结果。我以访问 eureka7001 为例,可以看到该服务中心挂着 eureka7002 和 eureka7003,而且订单服务也成功注册到该注册中心。

原文链接:http://blog.itpub.net/31558358/viewspace-2375380/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值