您的位置:首页 > 其它

搭建服务注册中心和注册服务提供者过程中遇到问题

2017-12-25 17:49 274 查看
遇到问题:

1、

项目包建在入口主类所在包的里面



2、Whitelabel Error Page

@springBootApplication在进行加载时,只会加载其入口的当前目录及其子目录下的服务,如果存放在其它目录下,应用扫描不到。如下正确方式



3、



springcloud服务已经关但是Eureka还是显示up

该状态持续很久,访问该服务也返回错误,但在注册中心界面,该服务却一直存在,且为UP状态,并且在大约十分钟后,出现一行红色大字:EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY’RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.

原因:自我保护机制。Eureka Server在运行期间,会统计心跳失败的比例在15分钟之内是否低于85%,如果出现低于的情况(在单机调试的时候很容易满足,实际在生产环境上通常是由于网络不稳定导致),Eureka Server会将当前的实例注册信息保护起来,同时提示这个警告。

我是在本地调试的:

这是由于本地调试很容易触发注册中心的保护机制,这会使得注册中心维护的服务实例不那么准确。所以,我们在本地进行开发的时候,可以使用eureka.server.enable-self-preservation=false参数来关闭保护机制,以确保注册中心将不可用的实例正确剔除

4、之前注册多个eureka互相注册,那么是否相应的服务需要添加多个注册中心地址

eureka.client.serviceUrl.defaultZone=http://peer:1111/eureka/,http://peer2:2222/eureka/


这样可以实现高可用的注册中心,

但是eureka之间的同步机制,简化一下这一配置,多个eureka实例需要两两注册,就可以实现高可用集群中心节点完全对等的效果,此时只需要服务注册中心注册到其中一个注册中心,就会同步到其他注册中心。

如果不是两两注册,例如A->B->C->D->A,就不行。

其次我们还需要开启自注册功能。

否则话,eurake-service不会互相注册下去
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: