Eureka集群的搭建

上次说过了在SpringCloud应用中使用Eureka注册中心,用来对服务提供者进行服务注册与发现,但同时,它也是一个“微服务”,单个应用使用空间有限,因此和zookeeper一样,它也需要搭建集群(Cluster)。

搭建Eureka集群的原理就是创建多个eureka应用(端口不同),然后将所有的注册中心的地址联合到一起。下边就以创建三个集群为例

一、将之前的创建的eureka项目复制三份

复制三份是为了不破坏原来的项目,让小伙伴们更好地学习

  • 先创建三个子Module,然后复制pom.xml中信依赖,复制application.yml,然后各自创建启动类
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka-server</artifactId>
</dependency>

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

二、修改application.yml

这是最主要的也是最关键的一步,就是修改其中的eureka.client.service-url.defaultZone这一项目。之前是这样的

http://${eureka.instance.hostname}:${server.port}/eureka/

之前使用的是变量,就是当前文件中定义过的eureka.instance.hostname和server.port 这一个地址,现在有了集群后,就要直接写死了。修改原则如下:

  • 在任意一个eureka项目中,将上边这个地址修改为其他两个eureka项目的地址,中间用逗号隔开
  • 但是呢,这三个eureka项目的hostname还不能一样,不能全都是localhost,所以开发的时候,要在本地设置虚拟域名
  • 在windows下的C:WindowsSystem32driversetcHOSTS文件最后添加如下
127.0.0.1 eureka1
127.0.0.1 eureka2
127.0.0.1 eureka3

这样,就可以将eureka项目中的hostname改为上边三个中的一个了

比如,eureka-cluster-7001这个项目修改后的application.yml如下:

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

  • 然后依次修改其他的两个eureka项目,最后再用浏览器打开任意一个eureka项目的地址,可以看到如下界面
  • 在随意访问三个地址,可以在任意一个项目中看到其他两个集集群

三、修改服务提供者来注册到集群

  • 之前是单个eureka项目,所以服务提供者就只有一个注册地址。现在是集群,所以要修改服务提供者的中的eureka注册地址了

我改的是demo2-providereureka8001中的配置文件,修改如下:

eureka:client: #客户端注册进eureka服务列表内service-url:
#    这个地址是在eureka的application.yml中定义过的
#     单个eureka项目的的注册地址
#      defaultZone: http://localhost:7001/eureka
#       eureka集群的注册地址defaultZone: http://eureka1:7001/eureka,http://eureka2:7002/eureka,http://eureka3:7003/eureka

改完之后,然后启动这个提供者项目 ,就可以在eureka集群的任意一个项目中看到这个服务了

关注微信公众号“小鱼与Java”获取本项目代码和更多SpringCloud知识

eureka原理_SpringCloud学习之—Eureka集群搭建相关推荐

  1. kafka入门:简介、使用场景、设计原理、主要配置及集群搭建

    为什么80%的码农都做不了架构师?>>>    kafka入门:简介.使用场景.设计原理.主要配置及集群搭建(转) 问题导读: 1.zookeeper在kafka的作用是什么? 2. ...

  2. Spark学习之spark集群搭建

    (推广一下自己的个人主页 zicesun.com) 本文讲介绍如何搭建spark集群. 搭建spark集群需要进行一下几件事情: 集群配置ssh无秘登录 java jdk1.8 scala-2.11. ...

  3. kafka入门:简介、使用场景、设计原理、主要配置及集群搭建--转载

    问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的原因是什么? 3.kafka集群consumer和producer状 ...

  4. kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)

    问题导读: 1.zookeeper在kafka的作用是什么? 2.kafka中几乎不允许对消息进行"随机读写"的原因是什么? 3.kafka集群consumer和producer状 ...

  5. kafka入门:简介、使用场景、设计原理、主要配置及集群搭

    李克华 云计算高级群: 292870151 195907286 交流:Hadoop.NoSQL.分布式.lucene.solr.nutch  kafka入门:简介.使用场景.设计原理.主要配置及集群搭 ...

  6. EureKa服务注册与发现(集群部署Eureka与支付模块集群部署、订单模块访问负载均衡调用支付服务实现)

    上一遍文章完成了,聚合父工程.消费模块.支付模块.公共模块的搭建.RestTemplate调用支付模块 该篇项目创建gitv2.0的管理分子完成学习 1.Eureka基础知识 1.1. 什么是服务治理 ...

  7. Spring Cloud(一)Eureka Server-单体及集群搭建

    一.Enreka介绍 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringCl ...

  8. SpringCloud(三)Eureka之集群搭建以及将服务注册到多个EurekaServer

    概述:为了保证EurekaServer的高可用,可以采用服务集群方式.当有一台挂掉时,其他节点仍可以继续提供服务.在EurekaServer的集群配置中,他们为分别配置对方为自己的注册中心,并将自己节 ...

  9. Eureka 集群搭建

    一.Eureka 高可用集群 在实际的生产环境中,eureka 常常是以集群的方式提供服务的,目的就是要保证高可用性,同时它还保证了分区容错性.这也满足了一个健壮的分布式系统所要求的 CAP 理论原则 ...

  10. Eureka集群搭建,unavailable-replicas服务节点不可用解決方案

    最近由于项目需要搭建了eureka集群,集群搭建完成后,发现服务节点均在unavailable-replicas下,即说明集群搭建失败,各节点之间不能互相通信,网上查找了各种资料,终于解决,现将问题处 ...

最新文章

  1. [JAVA EE] JPA技术基础:完成数据列表的删除
  2. 【二分图最大匹配】【HDU2063】过山车
  3. UML模型中的图-实现图【组件图、配置图】
  4. 计算机教学难点重点,浅述如何解决小学信息技术教学中的重点、难点
  5. WPF 最简方法使用自己定制的 WPF 框架
  6. 学习笔记4--惯性导航及总结
  7. ANSYS 闪退问题解决办法
  8. itunes显示无法更新服务器失败怎么办啊,更新iTunes出现错误 iTunes更新失败解决方案...
  9. 【笔记】c++ - 正则表达式: GNU Regex Library、PCRE, PCRE++、Boost.Regex
  10. 华为机试 第二题-速战速决
  11. c++用贪心算法解决汽车加油问题
  12. 软件工程毕业论文mysql英文翻译_软件工程专业毕业设计外文文献翻译
  13. 【阿贝云】免费的云服务器,真香
  14. 解决docker启动错误 error creating overlay mount to /var/lib/docker/overlay2
  15. php文件上传代码dsn,数据源名称无效-使用php、PDO和DSN连接到MySQL
  16. 最适合初学者编写的完整指纹锁代码
  17. 人类感知决策的神经生理学
  18. 二代测序linux软件,二代测序数据分析软件包大全
  19. 精益生产现场管理与现场改善的方法和工具
  20. 自动称重管理软件功能如何助力企业实现信息化(一)

热门文章

  1. 小猪cms之怎样查询绑定的微网站模板
  2. iOS 不规则的ImageView
  3. 策略模式【设计模式学习-02】
  4. Alpha通道的概念与功能
  5. RMAN Crosscheck 和 Delete 命令的2个实例
  6. QQ2006 界面编程
  7. IDEA maven库里 添加自定义jar包
  8. Oracle数据库批量插入的问题
  9. ZooKeeper解读
  10. Luogu P2617 Dynamic Rankings