记一次eureka客户端注册失败的问题
最近老大给了一台新服务器,做测试用,从装软件开始,到把整个环境搭起来,因为之前没有完成搭过,所以费了几天时间,最后总算是成功跑起来了。昨天早上来更新下项目,在测试服务器上重新发布了一下,结果发现服务注册不上了。。。…(⊙_⊙;)…,主要报错信息是跟下图一样的:

自己整理了一下,主要报错信息包括下面这些:
There was a problem with the instance info replicator com.netflix.discovery.shared.transport.TransportException:Cannot execute request on any know server com.netflix.client.ClientException:Load balancer dose not have avaliable server for client DiscoveryClient_DYSERVICE/172.17.16.6:dyservice:2001-was unable to send heartbeat
好吧,既然错误来了,总得解决吧,按着报错信息一个一个翻牌吧一 一+ ,可能的原因如下:
1.eureka注册中心的配置
如下两项配置需要设置为false,这是因为在默认设置下,eureka服务注册中心也会将自己作为客户端来尝试注册它自己,所以我们需要禁用它的客户端注册行为;
eureka.client.register-with-eureka=false
eureka.client.fetch-registry=false
若是未禁用eureka服务注册中心的客户端注册行为,也行,但是需提供service-url注册中心地址,配置示例如下:
spring.application.name=stock-service
spring.jmx.default-domain=stock-service
server.port=8083
eureka.instance.hostname=localhost
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
然后,要注意eureka服务器的SpringBoot启动类标注 @EnableEurekaServer 注解
2.服务提供方的配置
SpringBoot启动类标注 @EnableEurekaClient 或者 @EnableDiscoveryClient 注解;
在配置文件中配置注册中心地址:
spring.application.name=service
spring.jmx.default-domain=service
server.port=3030
eureka.client.serviceUrl.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/
3.确定本机是否关闭防火墙
如果你的注册中心和服务提供方是跑在不同的电脑上需要注意这个;
4.是否导入eureka的jar包
这个就自己注意了;
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
我基本上是按照如上的步骤来的,可是依然报错,这个当时很困惑,后来我想到直接根据注册中心的端口号来访问注册中心,正常来说我们应该能打开一个eureka的页面的,可是我什么都打不开,到这里终于意识到问题在哪里了(前面的都没有问题,白白浪费了一堆时间),我猜测是注册中心自己的问题,要么是不可用,要么是不能访问,接着看端口,通过lsof命令发现提供服务的工程的端口是listen的,而eureka的端口是未被listen的,哦,原来是注册中心用的端口号小于1024,而我是在普通用户下启动的项目,而普通用户对1024以下的端口是没有权限的,问题终于找到了。
这是一次排查问题的经历,其实很多问题在我们百思不得其解的时候,可能是我们的方向没搞对(所谓当局者迷),及时转换思路也是一项能力。高手的问题排查能力强,我觉得在单位时间内高手试的次数比我们多也是一个原因。
参考文献:
SpringCloud问题解决:spring-cloud-eureka启动出错Cannot execute request on any known server
记一次eureka客户端注册失败的问题的更多相关文章
- Eureka客户端注册多网卡下IP选择问题
在使用Spring Cloud多人协作开发时有一个场景:我本机启动了Eureka注册中心,其他人机器需要将服务注册到我本机的Eureka.(服务端和客户端在不同机器上) 这时出现了一个问题:服务成功注 ...
- java框架之SpringCloud(3)-Eureka服务注册与发现
在上一章节完成了一个简单的微服务案例,下面就通过在这个案例的基础上集成 Eureka 来学习 Eureka. 介绍 概述 Eureka 是 Netflix 的一个子模块,也是核心模块之一.Eureka ...
- [SpringCloud教程]3. Eureka服务注册中心集成
新微服务项目多半采用Nacos作为服务注册与发现中心,但是旧项目可能使用Eureka.zookeeper.Consul.Nacos作为服务注册中心. 新项目建议使用Nacos作为服务注册中心 Spri ...
- spring cloud eureka注册原理-注册失败填坑
写在前面 我们知道Eureka分为两部分,Eureka Server和Eureka Client.Eureka Server充当注册中心的角色,Eureka Client相对于Eureka Serve ...
- SpringCloud Eureka服务注册及发现——服务端/客户端/消费者搭建
Eureka 是 Netflix 出品的用于实现服务注册和发现的工具. Spring Cloud 集成了 Eureka,并提供了开箱即用的支持.其中, Eureka 又可细分为 Eureka Serv ...
- SpringCloud02 Eureka知识点、Eureka服务端和客户端的创建、Eureka服务端集群、Eureka客户端向集群的Eureka服务端注册
1 Eureka知识点 按照功能划分: Eureka由Eureka服务端和Eureka客户端组成 按照角色划分: Eureka由Eureka Server.Service Provider.Servi ...
- 六、eureka客户端自动注册服务
所有文章 https://www.cnblogs.com/lay2017/p/11908715.html 正文 上一篇文章,我们稍微了解了一下eureka客户端是如何自动配置的,配置了哪些东西.在自动 ...
- Spring Cloud 中注册中心Eureka客户端配置
注册中心配置客户端(注册一个虚拟的商品服务) 一.新建项目: 1.创建一个SpirngBoot应用,增加服务注册和发现依赖 2.模拟商品信息,存储在内存中 3.开发商品列表接口 ...
- Eureka客户端无法连接服务注册中心
转载自:https://my.oschina.net/kousm/blog/2249003 服务端 application.yml配置 spring: application: name: eurek ...
随机推荐
- springBoot 使用拦截器 入坑
近期使用SpringBoot 其中用到了拦截器 结果我的静态资源被全部拦截了,让我导致了好久才搞好: 看下图项目结构: 问题描述:上图划红框的资源都被拦截器给拦截了,搞得项目中不能访问:解决问题就是在 ...
- JB的IDE可视化MongoDB、MySQL数据库信息
一.问题: 在使用JB的IDE的时候(pycharm.IDEA等)可视化mysql和mongodb的数据库信息,效果如下 MySQL: MongoDB: 可视化数据表关系: 二.方法: 1.MySQ ...
- Centos7 登录mysql 出现mysql.sock不存在
记一次纠错大战 本来今天开开心心地部署nginx和uwsgi到我的Django服务器,刚想给老师演示一遍我这项目如何酷炫时,一登陆就出现mysql连接不上了 (2003, "Can't co ...
- 【慕课网实战】四、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
文本文件进行统计分析:id, name, age, city1001,zhangsan,45,beijing1002,lisi,35,shanghai1003,wangwu,29,tianjin... ...
- MapGIS DataStore
http://www.mapgis.com/index.php/index-show-tid-206.html 异构数据同时加载 DCServer感觉已经集成到 IGServer中了. >> ...
- 从git远程仓库Checkout项目到本地
一.登录coding 并且项目已创建好 已经是项目的组员 二.打开idea 1.弹出如下页面 复制远程项目上的SSH(URL)到下框URL 并且Test测试 成功就Clone即可 2.Clone ...
- Activiti工作流数据库表详细介绍
Activiti的后台是有数据库的支持,所有的表都以ACT_开头. 第二部分是表示表的用途的两个字母标识. 用途也和服务的API对应. ACT_RE_*: 'RE'表示repository. 这个前缀 ...
- socket的阻塞与非阻塞,同步与非同步
网络编程中通常提到四种方式,同步/异步,阻塞/非阻塞.以下对它们的概念进行总结 1.同步/异步:主要针对C端 同步:所谓同步,就是在C端发出一个功能调用时,在没有得到结果之前,调用不返回,也就是必须一 ...
- jdk1.8.0环境变量设置
jdk1.8.0环境变量设置 1.jdk安装完毕 打开如下链接:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloa ...
- 黑群晖DS3617xs-DSM6.1.7up3/up2 开启ROOT用户,同时SATA改eSATA,挂载NTFS硬盘设置(二)
这两天闲来没事在某宝上搞了个黑群晖主机就j1900/4G小主机系统是DCM 6.1.7up3 15284版 网上修改的教程很多,走了好多弯路终于搞定我的黑群NAS,现分享给各位道友,有不足的地方请给位 ...