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: 7001 eureka:
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:\Windows\System32\drivers\etc\HOSTS文件最后添加如下
127.0.0.1 eureka1
127.0.0.1 eureka2
127.0.0.1 eureka3

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

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

server:
port: 7001 eureka:
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知识

SpringCloud学习之—Eureka集群搭建的更多相关文章

  1. SpringCloud学习之eureka集群配置

    一.集群方案及部署思路: 如果是单节点的注册中心,是无法保证系统稳定性的,当然现在项目部署架构不可能是单节点的. 集群节点的部署思路:通过运行多个实例并请求他们相互注册,来完成注册中心的高可用性(结伴 ...

  2. springcloud费话之Eureka集群

    目录: springcloud费话之Eureka基础 springcloud费话之Eureka集群 springcloud费话之Eureka服务访问(restTemplate) springcloud ...

  3. 微服务架构:Eureka集群搭建

    版权声明:本文为博主原创文章,转载请注明出处,欢迎交流学习! 服务注册.发现是微服务架构的关键原理之一,由于微服务架构是由一系列职责单一的细粒度服务构成的网状结构,服务之间通过轻量机制进行通信,这就必 ...

  4. Eureka集群搭建

    服务注册.发现是微服务架构的关键原理之一,由于微服务架构是由一系列职责单一的细粒度服务构成的网状结构,服务之间通过轻量机制进行通信,这就必然引入一个服务注册发现的问题,也就是说服务提供方要注册报告服务 ...

  5. kafka学习(三)-kafka集群搭建

    kafka集群搭建 下面简单的介绍一下kafka的集群搭建,单个kafka的安装更简单,下面以集群搭建为例子. 我们设置并部署有三个节点的 kafka 集合体,必须在每个节点上遵循下面的步骤来启动 k ...

  6. kafka学习(二)-zookeeper集群搭建

    zookeeper概念 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名 服务等.Zookeeper是h ...

  7. 【转载】MQTT的学习之Mosquitto集群搭建

    本文出自:http://www.cnblogs.com/yinyi521/p/6087215.html 文章钢要: 1.进行双服务器搭建 2.进行多服务器搭建 一.Mosquitto的分布式集群部署 ...

  8. Spring Cloud Eureka 集群搭建 - 以及发现一个 “直觉BUG”

    首先解释一下标题所说的“直觉BUG”,这个是我自己的定义.就是我们直觉上认为这是一个BUG,是一个错误,而实际并没有出错. 比如下图: 虽然出现报错信息,但是,整个程序并没有出错.至于原因,图片上的文 ...

  9. redis 学习笔记-cluster集群搭建

    一.下载最新版redis 编译 目前最新版是3.0.7,下载地址:http://www.redis.io/download 编译很简单,一个make命令即可,不清楚的同学,可参考我之前的笔记: red ...

随机推荐

  1. (树形DP)Strategic game POJ - 1463

    题意: 给你一棵树,树的每一个节点可以守护与其相连的所有边,问你最少用多少个节点可以守护这整棵树 思路: 仔细思考不难发现,要想守护一条边,边的两个端点必须有一个可以被选(两个都选也可以),然后这个问 ...

  2. 【python系统学习07】一张图看懂字典并学会操作

    点击跳转 - 原文地址 数据类型 - 字典(dict) 目录: 一张图get字典 字典是什么 js的对象 字典长啥样 语法伪代码 示例demo 语法成像 字典怎么用 字典长度获取--len函数 提取字 ...

  3. 基于 Lind.DDD 的 权限管理系统

    先起个头,在跟吧 表结构  12个表   ps: sxiaomais.blog.163.com/blog/static/31741203200811102630406/ 需要数据库 文件的 附件 权限 ...

  4. laravel5.5的服务容器分析

    简介 服务容器是Laravel的核心.见名知意,服务容器就是一个存放服务的地方,当我们需要某个服务的时候,我们就可以从这个容器中取出我们需要的服务.用更专业一点的术语来说,官网定义服务容器是这样的: ...

  5. layui数据表格及分页

    一.前端部分 html只需要放一个有id的div就行了,方便js获取渲染区域 <div id="data_grid" lay-filter="demo" ...

  6. SVM(1)模式识别课堂笔记

    引言:当两类样本线性可分时,针对我们之前学习的感知机而言,存在多个超平面能将数据分开,这里要讨论什么样的分类面最好的问题.为此,我们形式化的定义了最优分类超平面,他有两点特征:1.能将训练样本没有错误 ...

  7. Shrio | java.io.IOException: Resource [classpath:shiro.ini] could not be found

    案例 今天项目启动时一直报异常,看了错误日志发现是shrio文件找不到引起的,异常: java.io.IOException: Resource [classpath:shiro.ini] could ...

  8. spring实战第二章小记-装配bean

    时间:2020/02/06 一.思想 1.创建应用对象之间协作关系的行为通常称为装配,这也是依赖注入(DI)的本质. 对于上面这句话的个人理解:当我们在new一个对象时如果传入了别的对象作为参数(这个 ...

  9. 谈下程序设计算法的准备心得与体会-nCov隔离也许帮你提升能力

    最近武汉的n-Cov使得大家只能在家办公了. 在家里的感受是什么样的呢? 1.上班的时候一直在奔跑,现在总算可以有集中的时间来思考一些之前一直没能好好整理的内容 2.时间变得自己可以掌控,优先级有自己 ...

  10. list练习题—输入工人信息

    1) 创建一个List,在List 中增加三个工人,基本信息如下: 姓名 年龄 工资 zhang3 18 3000 li4 25 3500 wang5 22 3200 2) 在li4 之前插入一个工人 ...