配置 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++语法小记---面向对象模型(实例的内存分布)
面向对象的模型(内存分布) 对于一个对象而言,成员变量和成员函数是分开存放的 成员函数位于代码段,所有的类对象共有 成员变量为每一个对象独有,位于内存中 类对象在内存中的分布和struct完全相同 对 ...
- Google公布编程语言排名,第一竟然是他?
没想到吧,Python 又拿第一了! 在 Google 公布的编程语言流行指数中,Python 依旧是全球范围内最受欢迎的技术语言! 01 为什么 Python 会这么火? 核心还是因为企业需 ...
- 推荐IT经理/产品经理,常用工具和网站
一. 常用必备工具 1)文档工具 石墨文档,在线协作文档工具 https://shimo.im/ 2) 表格工具 麦客,在线问卷调查工具 http://www.mikecrm.com/ 3)脑图工具 ...
- Kafka入门(2):消费与位移
摘要 在这篇文章中,我将从消息在Kafka中的物理存储方式讲起,介绍分区-日志段-日志的各个层次. 然后我将接着上一篇文章的内容,把消费者的内容展开讲一讲,区分消费者与消费者组,以及这么设计有什么用. ...
- feign.FeignException: status 404 reading xxService#xxmethod
做乐优商城授权中心出错 public interface UserApi { @GetMapping("query") public User queryUser( @Reques ...
- 第3章 探索性数据分析(单因子&对比)与可视化
1.理论铺垫 Dataframe和Series均适用 ~集中趋势:均值mean().中位数median().与分位数quantile(q=0.25).众数mode() ~离中趋势:标准差std().方 ...
- PHP 魔术常量介绍
PHP 魔术常量 PHP 向它运行的任何脚本提供了大量的预定义常量. 不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了. 有八个魔术常 ...
- PHP unset() 函数
unset() 函数用于销毁给定的变量.高佣联盟 www.cgewang.com PHP 版本要求: PHP 4, PHP 5, PHP 7 语法 void unset ( mixed $var [, ...
- PHP acosh() 函数
实例 返回不同数的反双曲余弦: <?phpecho(acosh(7) . "<br>");echo(acosh(56) . "<br>&qu ...
- 经验分享:一个 30 岁的人是如何转行做程序员,进入IT行业的?
大约一年以前,我成为了一名全职开发者,我想要总结一下这一年的经验,并且和所有人分享,一个 30 多岁的人是如何进入科技行业的: 改变职业是一件吓人的事情,有时候还会成为一件危险的事情.年龄越大,危险就 ...