码迷,mamicode.com
首页 > 编程语言 > 详细

Spring Cloud Eureka 配置

时间:2018-06-08 16:00:41      阅读:267      评论:0      收藏:0      [点我收藏+]

标签:端口   状态   man   随机数   AC   eid   hello   服务   prope   

实例名配置

      在Netflix Eureka的原生实现中,实例名采用主机名作为默认值,这样的设置使得在同一主机上无法启动多个相同的实例,所以在Spring Cloud Eureka的配置中,针对同一主机启动多个实例的情况,采用如下规则:

eureka.instance.instanceId=${spring.application.name}:${random.int}

       利用应用名加随机数的方式来区分不同的实例,从而实现同一主机上,不指定端口就能轻松启动多个实例的效果。

端点配置

      在InstanceInfo中,我们可以看到一些URL的配置信息,比如homePageUrl、statusPageUrl、healthCheckUrl,他们分别代表了应用主页状态URL、状态也的URL、健康检查URL。其中状态页和健康检查的URL在Spring Cloud Eureka中默认使用了spring-boot-actuator 模块提供的/info 端点和/health 端点。

      大多数情况下,我们并不需要修改这几个URL的配置,但是如果设置了context-path,这时,所有的spring-boot-actuator模块的监控端点都会增加一个前缀。所以需要做如下修改:

management.context-path=/hello

eureka.instance.statusPageUrlPath=${management.context-path}/info
eureka.instance.healthCheckUrlPath=${management.context-path}/health

 

健康检查  

      默认情况下,Eureka中各个服务实例的健康检查并不是通过spring-boot-actuator模块的/health端点来实现的,而是依靠客户端心跳方式来保持服务实例的存活。除非心跳停止,服务中心才会将其剔除。

      默认的心跳实现方式可以有效检查客户端进程是否正常运作,但却无法保证客户端应用能够正常提供服务。由于大多数微服务应用都会有一些其他资源的依赖,比如数据库、缓存、消息代理等,如果应用无法联通这些资源的时候,实际已经不能正常提供服务了,但是心跳检查还在,还是会被消费者调用,这样无法达到实际的效果。

     在Spring Cloud Eureka中,我们可以通过简单的配置,把Eureka客户端的健康检查交给 spring-boot-actuator 模块的 /health 端点,以实现更加全面的健康状态维护。

     在pom.xml中引入spring-boot-actuator 模块依赖。

     在application.properties中增加参数配置 eureka.client.healthcheck.enabled=true;

     

Spring Cloud Eureka 配置

标签:端口   状态   man   随机数   AC   eid   hello   服务   prope   

原文地址:https://www.cnblogs.com/taiguyiba/p/9155566.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!