博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配置 Eureka Server 集群
阅读量:6267 次
发布时间:2019-06-22

本文共 2274 字,大约阅读时间需要 7 分钟。

简介

为了使 Eureka Server 实现高可用,我们需要为它配置集群。这样当有一台 Eureka Server 有故障时,集群中的其他 Server 可以进行代替。Eureka 集群之中的 Node 通过 P2P 通信的方式共享注册表,以使得每个 Eureka Server 的注册表保持一致。本教程将在本地开启两台 Eureka Server 以测试集群的搭建。

项目源码

配置 Eureka Server

打开远程 git 仓库中的 eureka-server.yml 文件,添加如下配置:

---spring:  profiles: peer1server:  port: 8761eureka:   instance:    hostname: peer1  client:     register-with-eureka: true    fetch-registry: true    serviceUrl:      defaultZone: http://peer2:8762/eureka---spring:  profiles: peer2server:  port: 8762eureka:   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-eurekafetch-registry 之前设置为了 false, 因为只有一台 Eureka Server,并不需要自己注册自己,而现在有了集群,可在集群的其他节点中注册本服务。

修改 hosts

修改 hosts 文件,以使 peer1 和 peer2 映射到 localhost,因为 eureka server 的主机名必须不同才可互相注册,所以在本地需要模拟两个不同的主机名:

127.0.0.1 peer1127.0.0.1 peer2

配置 productService

打开远程 git 仓库中的 product-service.yml 文件,添加如下配置:

server:  port: 8081spring:  cloud:    config:      allow-override: true      override-system-properties: falseeureka:  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=peer1mvn 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

欢迎访问我的博客:

转载于:https://blog.51cto.com/13727459/2117402

你可能感兴趣的文章
为什么要评审代码?
查看>>
小程序开发前的准备工作之【深入封装Component】
查看>>
AFN3.0源码解析
查看>>
oracle的drop命令
查看>>
设计与梳理企业二级流程的路线方法
查看>>
Python正则表达式指南
查看>>
使用css3制作渐变分割线
查看>>
垃圾回收概念与算法
查看>>
TFS实现需求工作项自动级联保存
查看>>
springmvc 4.x 处理json 数据时中文乱码
查看>>
Python练习(day7)
查看>>
网络工程师笔试题总结
查看>>
C# DataTable的詳細用法
查看>>
关于CISCO asa5510防火墙端口映射配置
查看>>
monkey详细介绍之二
查看>>
Java 读取 .properties 配置文件
查看>>
取消文件默认打开方式
查看>>
echarts使用笔记四:双Y轴
查看>>
二分法查找
查看>>
不用加减乘除实现加法运算
查看>>