在Spring-cloud做微服务架构时,会碰到各种坑。下面总结一下Eureka的常见问题。

一、Eureka的自我保护模式

  如果在Eureka Server的首页看到以下这段提示,则说明Eureka已经进入了保护模式:

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.

一般出现此模式时,服务返回错误。即如果真实的服务已经Down掉,但在注册中心界面服务却一直存在,且显示为UP状态。

产生原因:Eureka Server在运行期间,会统计心跳失败的比例在15分钟之内是否低于85%,如果出现低于的情况(在单机调试的时候很容易满足,实际在生产环境上通常是由于网络不稳定导致),Eureka Server会将当前的实例注册信息保护起来,同时提示这个警告。保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保护。一旦进入保护模式,Eureka Server将会尝试保护其服务注册表中的信息,不再删除服务注册表中的数据(也就是不会注销任何微服务)。

详见:https://github.com/Netflix/eureka/wiki/Understanding-Eureka-Peer-to-Peer-Communication

解决方法:设置enableSelfPreservation:false

配置心跳检测时长,下线leaseRenewalIntervalInSeconds: 2

如何处理服务挂掉后或者手动关闭服务后,Ribbon负载均衡还是一直调用这个服务,然后调用@HystrixCommand断路器注解的方法:利用Hystrix,在error callback方法中可以shutdown指定的server

ZoneAwareLoadBalancer<Server> lb = (ZoneAwareLoadBalancer<Server>) springClientFactory.getLoadBalancer("CLOUD-SERVICE");
Server server = lb.chooseServer();
System.out.println("error->" + server.getHostPort());
lb.markServerDown(server);

另外在Camden.SR3中可以配置Ribbon请求重试,可以参考DD大神的新作:http://blog.didispace.com/spring-cloud-ribbon-failed-retry/

二、指定Eureka的Environment

eureka.environment: 指定环境

参考文档:https://github.com/Netflix/eureka/wiki/Configuring-Eureka

三、指定Eureka的DataCenter

eureka.datacenter: 指定数据中心

参考文档:https://github.com/Netflix/eureka/wiki/Configuring-Eureka

文中指出,配置-Deureka.datacenter=cloud,这样eureka将会知道是在AWS云上

参见:http://www.itmuch.com/spring-cloud-sum-eureka/http://blog.csdn.net/jdhanhua/article/details/55002191

四、Whitelabel Error Page

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

最新文章

  1. [Selenium]中使用css选择器进行元素定位
  2. hdu 4455 动态规划
  3. Find发帖水王哥
  4. last期末作业
  5. 最近遇到的两个IE下的问题(IE兼容问题)
  6. HeapSpray初窥(2014.12)
  7. CentOS7(64) yum安装、配置PostgreSQL 11
  8. Gradle 打多渠道包
  9. rails应用的部署
  10. Codeblocks 遇到的问题 Cannot open output file, permission denied
  11. python之读取和写入csv文件
  12. SpringSecurity-UsernamePasswordAuthenticationFilter的作用
  13. [NEWS]Microsoft expands partnerships with AOL and AppNexus, Bing to power search for AOL properties
  14. 网络对抗技术 2017-2018-2 20152515 Exp1 PC平台逆向破解(5)M
  15. GO语言基础之method
  16. TCP/UDP client/server library for Java, 最好的java语言tcp udp 服务器客户端实现库
  17. python 文件分割
  18. BZOJ1106[POI2007]立方体大作战tet - 树状数组
  19. linux下C获取系统时间的方法
  20. MVC MVP MVVM 图解

热门文章

  1. MyBatis两张表字段名相同产生的问题
  2. 实用的表格内省略号和换行(兼容IE6)
  3. (step4.1.2)hdu 1969(Pie——二分查找)
  4. cognos report上钻下钻报表处理方法(2)
  5. IOS遇到的问题总结
  6. Android运行机制
  7. Oracle Data Guard 重要配置参数
  8. UITableViewCell 取消选中的蓝色背景
  9. Showing a tooltip
  10. 设定StatusBar的文字成不同的颜色