首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Spring微服务中使用Spring

如何在Spring微服务中使用Spring
EN

Stack Overflow用户
提问于 2016-08-26 14:29:27
回答 1查看 1.4K关注 0票数 0

我使用JHipster生成了几个基于Spring的微服务。目前正在考虑在其中一个服务中添加Spring支持,使用本教程:https://spring.io/guides/gs/messaging-rabbitmq/

当在服务中添加AMQP支持时,我发现服务总是在状态下降的注册表(Eureka)服务器上注册,如果我删除了下面的gradle依赖项,问题就会消失。

代码语言:javascript
运行
复制
    compile('org.springframework.amqp:spring-rabbit:1.5.3.RELEASE')

具有此依赖性的服务将首先在启动时使用状态启动向尤里卡服务器注册,然后立即重新注册状态下降。

尤里卡注册服务器

尤里卡服务器的日志:

2016-08-26 06:55:18.291 INFO 5875 -- io-8761-exec-11 c.n.e.registry.AbstractInstanceRegistry :注册实例销售/销售:4454c0adc6b9c9c70d799930ac3b7d374c,状态开始(replication=false) 2016-08-26 06:55:18.806 INFO 5875 -- io-8761-exec-10 c.n.e.registry.AbstractInstanceRegistry :注册实例销售/销售:4454c0adc6b9c70d730ac3b374c,状态开始(replication=true) 2016-08-26 06:55:21.260 INFO 5875 -io-8761-exec-10 c.n.e.registry.AbstractInstanceRegistry:注册实例销售/销售:445454 c0adc6b9c70d730ac3b7d374c,状态开始(replication=true)2016-08-26 06:55:21.260 INFO 5875--io-8761-exec-10 c.n.e.registry.AbstractInstanceRegistry:注册实例销售/销售:4454c0adc6b9c70d7930ac3b7d374c,状态开始(replication=true)2016-08-26 06:55:21.260 INFO 5875-io-8761-exec-10 c.n.e.registry.AbstractInstanceRegistry:注册实例销售/销售:4454c0adc6b9c70d730ac3b7d374c,状态开始(replication=true)2016-08-26 06:55:21.260 INFO 5875--io-8761-55-8 c.n.e.registry.AbstractInstanceRegistry :注册实例销售/销售:4454c0adc6b9c70d799930ac3b7d374c,状态开始(replication=false) 2016-08-26 06:55:21.763 INFO 5875 - nio-8761-exec-1 c.n.e.registry.AbstractInstanceRegistry :注册实例销售/销售:4454c0adc6b9c7070d799930ac3b7d374c,状态启动状态(replication=true) 2016-26 06:55:37.220 INFO 5875 - nio-8761-exec-3 c.n.e.registry.AbstractInstanceRegistry :注册实例销售/销售:4454c0adc6c70d70c70c709c70930930ac3b374c,状态开始(replication=true)2016-26 06:55:37.220 INFO 5875-nio-8761-exec-3 c.n.e.registry.AbstractInstanceRegistry:注册实例销售/销售:4454 c0adc9c70d799930ac330ac3b374c,状态开始(replication=true)2016-26 06:55:37.220 INFO 5875--nio-8761-exec-3 c.n.e.registry.AbstractInstanceRegistry:注册实例销售/销售:4454c0adc9c709c709c70999930ac3b7d374c,状态开始(replication=true)2016-26 06:55:37.220 INFO 5875--nio-8761-exec-3 c.n.e.registry.AbstractInstanceRegistry:注册实例销售/销售:445UP (replication=false) 2016-08-26 06:55:37.730 INFO 5875 -- nio-8761-exec-2 c.n.e.registry.AbstractInstanceRegistry :注册实例销售/销售:4454c0adc6b9c70d799930ac3b7d374c (replication=true) 2016-08-26 06:55:37.885 INFO 5875 -- io-8761-exec-11 c.n.e.registry.AbstractInstanceRegistry :注册实例销售/销售:4454c0adc6b9c70d799930ac3b7d374c (replication=false) 2016-08-26 06:55:38.399 5875 --nio-8761-exec-5 c.n.e.registry.AbstractInstanceRegistry :注册实例销售/销售:4454c0adc6b9c70d799930ac3b7d374c,状态下降(replication=true) 2016-08-26 06:55:43.699 INFO 5875 - compensationTime c.n.e.registry.AbstractInstanceRegistry :使用compensationTime 2ms运行驱逐任务2016-08-26 06:56:43.700 INFO 5875 -- a-EvictionTimer c.n.e.registry.AbstractInstanceRegistry :使用compensationTime 2ms运行驱逐任务。

另一方面,销售服务的日志没有任何错误。然而,与其他不依赖amqp的服务相比,日志中最显著的差异是

2016-08-26 06:55:37.881警告6440 - nfoReplicator-0 c.n.discovery.InstanceInfoReplicator :由于速率限制器而忽略onDemand更新

我确认,如果我删除spring amqp依赖项,问题将得到解决。

我是不是使用了错误的amqp依赖?在spring云微服务中是否有其他使用RabbitMQ的方法?

EN

回答 1

Stack Overflow用户

发布于 2016-09-08 16:17:32

  1. 在spring引导中,当您添加像starter这样的初学者依赖项时,框架将自动将相关属性配置为它们的默认值。
  2. 发现服务器(如Eureka )使用URL (http://{service-ip}:{service-port}/health)检查服务的健康状况(可用性),在部署服务期间向Eureka提供ip和端口,然后从服务调用服务器注册自己。
  3. 这里有一个窍门,如果您的兔子MQ服务器没有在配置好的IP或端口上启动和运行,则健康检查的响应将“下降”。

结论:确保兔子服务器在类路径(Redis、Couchbase等)中与其依赖的任何其他组件都已启动和运行,并使用URL (http://{service-ip}:{service-port}/health)检查您的服务健康状况,您应该得到如下内容:

{“描述”:"Spring领事Discovery“,"status":"UP”}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39168690

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档