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

一般出现该问题均是由于配置文件没有写对:

1.检查各节点的spring.application.name配置是否一致

2.eureka.instance.hostname需要配置对应的主机名,eureka服务默认的注册方式是通过主机名进行注册的

3.是否开启了自注册与相互注册,即以下两项均要配置为true

eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true

4.eureka.client.service-url.defaultZone需要按照以下的格式进行配置

eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/

都配置完成后,进入控制台管理页面,发现replicas内容都是空的

查看各节点的日志发现报错:

com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server

通过多次尝试,对比分析,发现在eureka集群配置的过程中,如果是在同一主机上配置多个节点,则各节点的eureka.instance.hostname(实例的主机名)不能一样,否则在各节点相互注册的过程中会产生报错。(因为eureka是通过主机名进行服务注册与识别的,相同的主机名会引起冲突)

而我是直接通过hostname命令找到主机名,为所有节点配置了一样的主机名,所以集群搭建一直没有成功。

【解决办法】

配置的时候,eureka.instance.hostname=peer1(peer2,peer3,…),为各节点配置不同的hostname,然后修改主机的hosts文件,增加映射。

修改后的配置文件如下:

再次进入控制台管理页面,各服务节点均在available-replicas下,集群搭建成功

Eureka集群搭建,unavailable-replicas服务节点不可用解決方案相关推荐

  1. Eureka 集群搭建

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

  2. 疯狂Spring Cloud连载(5)Eureka集群搭建

    2019独角兽企业重金招聘Python工程师标准>>> 本文节选自<疯狂Spring Cloud微服务架构实战> 京东购买地址:https://item.jd.com/1 ...

  3. Eureka集群搭建

    Eureka集群搭建 配置映射 修改hosts对Eureka节点进行区分,因为我这里是单机模拟集群,实际情况这三个节点应该放在不同机器上. 127.0.0.1 eureka1.com 127.0.0. ...

  4. SpringCloud--Eureka服务注册与发现 Eureka 集群搭建 详细案例!!!

    SpringCloud组件--Eureka 完整笔记 一.Eureka基础知识 1.1.什么是服务治理 ? 1.2. 什么是服务注册与发现? 1.3.Eureka两组件:Eureka Server和E ...

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

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

  6. 《SpringCloud超级入门》使用Eureka集群搭建《十三》

    前面我们搭建的注册中心只适合本地开发使用,在生产环境中必须搭建一个集群来保证高可用.Eureka 的集群搭建方法很简单:每一台 Eureka 只需要在配置中指定另外多个 Eureka 的地址就可以实现 ...

  7. hbase集群搭建,hbase单个节点重启

    1.1 hbase集群结构 REGION:是HBASE中对表进行切割的单元 HMASTER: HBASE的主节点,负责整个集群的状态感知,负载分配.负责用户表的元数据管理 (可以配置多个用来实现HA) ...

  8. 8分钟学会Consul集群搭建及微服务概念

    Consul介绍: Consul 是由 HashiCorp 公司推出的开源软件,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,Consul 的方案更"一站式" ...

  9. spring eureka集群+spring boot 微服务,容器化部署示例

    一.docker安装 这里先采用在线安装,利用docker hup下载基础镜像 1.环境版本要求 内核版本3.10及其以上 操作系统位数为64位 CPU架构为x86_64或amd64(目前也有别的支持 ...

最新文章

  1. 受用一生的高效 PyCharm 使用技巧(六)
  2. ABP Zero示例项目问题总结
  3. 004_列表list操作
  4. Visual Studio 2005 Beta2 简体中文版发布
  5. 普211标准三维EE零基础转CS申
  6. 多个asp.net程序共用Session(sso程序的外设接口)
  7. 在DockerHub发布Dubbo Admin镜像
  8. 北京、深圳 | 百度视觉算法研发实习生 人脸活体方向
  9. c++读取文件夹下特定文件
  10. Django JWT认证实现
  11. Android 车联网天气
  12. javascript 笔记--变量
  13. 【HBZ】生产环境下如何解决CPU飙高 与排查CPU飙高问题 与如何解决内存泄漏
  14. 把握本质规律——《数学之美》作者吴军接受《程序员》采访
  15. 以图搜图(基于 Milvus 和 VGG 实现以图搜图)
  16. 计算机网络通信同步异步效率,同步传输和异步传输的区别及优缺点
  17. @RunWith的作用
  18. 【docker问题】Client.Timeout exceeded while awaiting header
  19. 邮箱发送附件 附件大小有限制
  20. 利用Web查询文件(.iqy)有效钓鱼

热门文章

  1. 钉钉、支付宝合种树,2-4天领证,限量9个名额
  2. R语言ggplot2可视化分组的重叠图实战:grouped overlay plot
  3. pandas使用query函数删除dataframe中两个数据列加和小于某一特定值的数据行(removing rows based on multiple dataframe column value
  4. pandas使用date_range函数按照指定的频率(freq)和指定的个数(periods)生成dataframe的时间格式数据列
  5. R语言关系操作符:>、<=、!=、>=、==、
  6. python计算时间差
  7. eclipse opengl java_OpenGL 之 Eclipse 开发环境搭建 | 学步园
  8. apollo热布署mysql_docker部署apollo详细教程
  9. 第三代测序之Pacific Biosciences
  10. 多媒体计算机系统是能进行获取,第六章 7 多媒体计算机系统.pdf