配置 Eureka Server 集群
简介
为了使 Eureka Server 实现高可用,我们需要为它配置集群。这样当有一台 Eureka Server 有故障时,集群中的其他 Server 可以进行代替。Eureka 集群之中的 Node 通过 P2P 通信的方式共享注册表,以使得每个 Eureka Server 的注册表保持一致。本教程将在本地开启两台 Eureka Server 以测试集群的搭建。
项目源码
配置 Eureka Server
打开远程 git 仓库中的 eureka-server.yml 文件,添加如下配置:
---
spring:
profiles: peer1
server:
port: 8761
eureka:
instance:
hostname: peer1
client:
register-with-eureka: true
fetch-registry: true
serviceUrl:
defaultZone: http://peer2:8762/eureka
---
spring:
profiles: peer2
server:
port: 8762
eureka:
instance:
hostname: peer2
client:
register-with-eureka: true
fetch-registry: true
serviceUrl:
defaultZone: http://peer1:8761/eureka
三划线用于区分两个不同的 profile,使用 spring-boot 插件启动项目时可通过命令行参数指定 profile。这两个 profiles 分别指定了 profile 的名字,服务的端口号。ureka.instance.hostname 为主机名,必须要和 eureka.client.serviceUrl.defaultZone 中的 Peer 主机名保持一致。例如,在 peer1 的 profile 中,把 peer2 作为了集群中另一个镜像节点,那么这个 http://peer2:8762/eureka URL 中的 peer2 就要和 peer2 profile 中的 eureka.instance.hostname 保持一致。serviceUrl 是 eureka server 的注册地址,defaultZone 想对于 AWS 的 availability zone,在本地测试可以用 defaultZone 或者其他名称,以把 Eureka Server 部署在不同集群。register-with-eureka 和 fetch-registry 之前设置为了 false, 因为只有一台 Eureka Server,并不需要自己注册自己,而现在有了集群,可在集群的其他节点中注册本服务。
修改 hosts
修改 hosts 文件,以使 peer1 和 peer2 映射到 localhost,因为 eureka server 的主机名必须不同才可互相注册,所以在本地需要模拟两个不同的主机名:
127.0.0.1 peer1
127.0.0.1 peer2
配置 productService
打开远程 git 仓库中的 product-service.yml 文件,添加如下配置:
server:
port: 8081
spring:
cloud:
config:
allow-override: true
override-system-properties: false
eureka:
client:
serviceUrl:
defaultZone: http://peer1:8761/eureka, http://peer2:8762/eureka
这里通过 eureka.client.serviceUrl.defaultZone 把 eureka 集群中的所有 url 都填写了进来,也可以只写一台,因为各个 eureka server 可以同步注册表。
测试
首先启动 configserver,然后分别运行如下两条命令启动 eureka server 集群:
mvn spring-boot:run -Dspring-boot.run.profiles=peer1
mvn spring-boot:run -Dspring-boot.run.profiles=peer2
最后启动 productService,访问任一 Eureka Server,如:
http://peer1:8761
我们可以看到 Eureka Server 集群和 Product-Service 均在注册表里。
| Application | AMIs | Availability Zones | Status |
|---|---|---|---|
| EUREKA-SERVER | n/a (2) | (2) | UP (2) - xuqians-imac:eureka-server:8761 , xuqians-imac:eureka-server:8762 |
| PRODUCT-SERVICE | n/a (1) | (1) | UP (1) - xuqians-imac:product-service:8081 |
欢迎访问我的博客:张旭乾的博客
配置 Eureka Server 集群的更多相关文章
- spring boot 2.0.3+spring cloud (Finchley)1、搭建服务注册和发现组件Eureka 以及构建高可用Eureka Server集群
一 .搭建Eureka 编写Eureka Server 由于有多个spring boot项目,采用maven多module的结构,项目结构如下: 新建一个maven主工程,在主maven的pom文件中 ...
- springcloud(四)-Eureka Server集群
Eureka Server的高可用 这一节我们接着上一节说. 有分布式应用开发经验的朋友应该发现,前文编写的单节点Eureka Server并不适合线上生产环境.Eureka Client会定时连接E ...
- SpringCloud升级之路2020.0.x版-20. 启动一个 Eureka Server 集群
本系列代码地址:https://github.com/HashZhang/spring-cloud-scaffold/tree/master/spring-cloud-iiford 我们的业务集群结构 ...
- Spring Cloud之微服务注册到Eureka Server集群
在Spring Cloud之服务注册中心搭建Eureka Server服务注册中⼼ - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)中已经搭建好了Eureka Server集群,本文就利用 ...
- (2-2)SpringCloud-服务注册到Eureka Server集群并消费
服务注册到Eureka Server集群 在(2-1)SpringCloue-Eureka实现高可用注册中心中我们搭建好了高可用的Eureka注册中心,下面我们要把服务注册到Eureka Server ...
- Spring Cloud Eureka Server集群Demo级搭建
将上篇随笔Spring Cloud Eureka服务Demo级搭建进行改造,改造成一个在本机的伪集群 1.修改hosts文件(windows10 hosts文件位置:C:\Windows\System ...
- 3、Spring Cloud - Eureka(高可用Eureka Server集群)
在实际的项目中,可能有几十个或者几百个的微服务实例,这时 Eureka Server 承担了非 常高的负载.由于 Eureka Server 在微服务架构中有着举足重轻的作用,所以需要对 Eureka ...
- Spring Cloud之微服务注册到Eureka Server集群后访问改造
上篇Spring Cloud之服务注册中心搭建Eureka Server服务注册中⼼ - 池塘里洗澡的鸭子 - 博客园 (cnblogs.com)已经已经成功将两个微服务注册到集群中,那么能正常能与注 ...
- Eureka Server 集群配置
注册中心: debug: true spring: application: name: eureka-server logging: level: com.netflix.eureka: 'off' ...
随机推荐
- C++语法小记---重载逗号操作符
重载逗号操作符 逗号操作符算法:从左到右依次计算每一个表达式的值,整个逗号表达式的值等于最右边表达式的值,前面n-1个表达式可以没有返回值 重载逗号操作符: 参数必须有一个class成员 重载函数返回 ...
- C++头文件居然可以这么打!!!! 长见识了!!!
返回主页 longdie 这人,生于天,立于地,为的就是顶天立地. 未来的答案早已被宇宙计算好了,人类自出现,答案就在那里,人类灭亡了,答案也在那里,,但是人活着,不就是为了看看未来发生了什么吗?如果 ...
- web自动化 -- 三种等待方式
一.强制等待 二.隐式等待 注:隐式等待的作用域是全局,所以一般设置在整局代码的头几行. 如: 三.显示等待 元素存在: 元素可见: 元素可点击: 看到上图源码中有一个 element.is_en ...
- 在Ubuntu 18.04中安装Wine QQ、微信、TIM
近日重新安装了Ubuntu 18.04,因此要重新安装一下Wine QQ.微信之类的,完整安装Wine系列软件一直是一个老大难的问题,网上搜集到的博客也比较零散,因此这里特此写篇博客记录一下 0. 这 ...
- vue学习(八) vue中样式 class 定义引用
//style<style> .red{ color:red; } .thin{//字体粗细 font-weight:200 } .italic{//字体倾斜 font-style:ita ...
- 像计算机科学家一样思考Python(第2版)|百度网盘免费下载|Python新手入门资料
像计算机科学家一样思考Python(第2版)|百度网盘免费下载 提取码:01ou 内容简介 · · · · · · 本书以培养读者以计算机科学家一样的思维方式来理解Python语言编程.贯穿全书的主 ...
- 华东师范大学数学分析课本p294,引理3的我的更正证明
书上的证明是一个特例,我的证明是,如果这个特例不成立,就继续做n-1,直到特例的情况出现,即可.
- 第十一章 容器类&新日期时间
11.1.Optional 容器类 11.1.1.概述 Optional 类是一个容器类,代表一个值存在或不存在, 原来用 null 表示一个值不存在,现在 Optional类 可以更好的表达这个概念 ...
- MacOS英语学习
总结于B站Mac云课堂:https://www.bilibili.com/video/BV1vf4y1U7SZ 各个软件的链接: Edge:https://www.microsoft.com/zh-c ...
- Python元组内置函数
Python元组内置函数: len(元组名): 返回元组长度 # len(元组名): # 返回元组长度 tuple_1 = (1,2,3,'a','b','c') print("tuple_ ...