问题标签 [spring-cloud-bus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1012 浏览

java - Spring boot 应用启动挂在“started bean '_org.springframework.integration.errorLogger'”线上

我决定了spring cloud config+ spring cloud bus。所以我首先实现了配置服务器:可以在这里找到完整的代码库:

https://github.com/gredwhite/config-server-demo

但是当我尝试在本地启动它时无法启动应用程序。它在 strtup 期间挂起:

线程转储看起来像这样:

在此处输入图像描述

我错了什么?

附言

经过很长时间的等待,我能够看到以下内容:

0 投票
1 回答
971 浏览

java - Spring cloud config客户端在启动后关闭

我已经实现了简单的应用程序来了解客户端的 spring 云配置。

它只包含 2 个类:

主要的:

控制器

application.properies文件:

构建.gradle

但是当我运行时,我看到以下内容:

应用程序在启动后关闭。配置服务器运行良好,因为http://35.202.199.184/example.message/default(此 URL 是公开的)响应正确。

如何解决?

0 投票
2 回答
1269 浏览

spring-boot - 在 Spring Cloud Bus 中 POST /actuator/bus-refresh 时出现“方法不允许”错误

我正在使用 Spring Cloud Bus 和 RabbitMQ 向某些微服务广播配置更改,但是当我向http://localhost:8888/actuator/bus-refresh发出 POST 请求时,我收到一个错误“方法不允许”,如以下:

这是我的 application.yml 文件

但是,当我更改曝光属性以允许所有端点时,我得到了成功响应,并且更改成功地广播到了我的微服务。

并且响应成功。

我的 pom.xml 很简单

而且只有一个java文件

0 投票
1 回答
446 浏览

spring-boot - 在 Spring Cloud 配置更新中重新加载 CamelContext 或路由

我正在使用带有 spring boot 2.2.6 的骆驼 3.1.0。我有外部化配置,弹簧云总线被用来从 Git 读取配置数据。

当我启动应用程序时,它通过 spring cloud bus 从 git 获取配置(属性),但是当我在 git 上更新配置并调用执行器/总线刷新端点时,spring boot 应用程序中的骆驼路由未选择更改,虽然我在日志中看到应用程序接收到属性的更新值。

我需要添加什么作为属性来让 Spring Boot 刷新 Spring Cloud Bus 事件中的 Camel 上下文吗?

0 投票
1 回答
651 浏览

spring-cloud - 使用 Spring Cloud Bus Kafka 的多个实例

我的问题是如何使用 Spring Cloud Stream Kafka 管理多实例。

让我解释一下,在 Spring Cloud Stream 微服务上下文(eureka、configserver、kafka)中,我希望拥有相同微服务的 2 个实例。当我更改 GIT 存储库中的配置时,配置服务器(通过 webhook)会将消息推送到 Kafka 主题中。

如果我在我的微服务中使用相同的 group-id,则只有两个实例中的一个会收到通知,并重新加载他的 spring 上下文。但我需要刷新所有实例......

所以,为此,我配置了一个唯一的 group-id :${spring.application.name}.bus.${hostname} 它运行良好,但问题是,每次我启动我的服务的新实例时,它都会在 kafka 中创建一个新的消费者组。现在我有很多未使用的消费者群体。

[![微服务的消费者][1]][1] [1]:https://i.stack.imgur.com/6jIzx.png

这是我的服务的 Spring Cloud Stream 配置:

如何避免大量的消费者创造?我应该删除 kafka 中的旧消费者组吗?我认为我的解决方案不是最好的方法,所以如果你有更好的选择,我很感兴趣;)

谢谢

0 投票
1 回答
503 浏览

spring-boot - 禁用 Spring Cloud Bus 仍然会启动 RabbitMQ

我正在使用 Spring Boot 2.2.9.RELEASE 和 Spring Cloud Hoxton.SR7。我正在使用 Spring Cloud Bus 向 docker swarm 堆栈中的所有容器发出信号,并且当使用正在运行的 RabbitMQ 集群部署在生产环境中时,一切正常!

我正在通过spring-cloud-starter-bus-amqp Spring Boot 启动器使用 RabbitMQ 实现。我们偶尔会在不需要总线的情况下运行测试。为此有一个弹簧启动标志:

spring.cloud.bus.enabled=false

这会禁用总线,但rabbitMQ 仍然启动,并吐出连接拒绝错误。我还必须补充:

rabbitmq.autoStarting=false

我尝试过禁用 RabbitMQ 的自动配置,但似乎有一个RabbitAutoConfiguration类暗示它是一个 SB 自动配置类,但实际上它是一个普通的 SB 配置类。

是否有更清洁的方法来禁用云总线,同时阻止 RabbitMQ 启动?

0 投票
0 回答
117 浏览

spring-cloud-stream - Spring cloud bus/kafka:应用程序关闭时的 org.springframework.beans.factory.BeanCreationNotAllowedException

我们打算使用带有 kafka 的 spring-cloud-bus 作为绑定器,以便在配置更改后通知服务。一切正常,但在服务关闭期间我们有以下异常:

关闭最终在 30 秒后发生(spring.lifecycle.timeoutPerShutdownPhase 的默认值)

我可以减少超时值,但我认为这不是正确的做法。

我在 spring-cloud-netflix 项目上提出了一个类似的问题https://github.com/spring-cloud/spring-cloud-netflix/issues/1064并且仍然打开。

有什么办法可以逃避这个异常吗?

我们使用 spring boot 2.3.4 和 spring cloud Hoxton.SR8。

提前感谢您的帮助和反馈。

0 投票
1 回答
373 浏览

java - spring cloud 合同验证器测试失败,spring cloud bus

我使用 spring-cloud-contract 来测试 2 个应用程序之间的 rabbitmq 消息。这里创建了一个简单的应用程序。https://github.com/winster/contract-test-sample (免费龙目岛)

但是,如果我添加spring-cloud-starter-bus-amqp到生产者依赖项(无论是否替换spring-boot-starter-amqp),生产者端的自动生成ContractVerifierTest将失败并出现以下跟踪。

有人可以指导我如何解决这个问题吗?

0 投票
1 回答
279 浏览

spring-cloud-config-server - Spring Cloud Config Server/Bus 自动刷新扩展性

据我所知,当 Spring Cloud Config Server 配置更改时,可以通过 Spring Cloud Bus 在微服务之间传播刷新事件。然后,这会触发通知的微服务从 Spring Cloud Config Server 拉取最新配置。

这种方法是否可以很好地扩展?我的意思是我们可以拥有 1000 个微服务实例,如果某些全局配置发生更改,那么所有这 1000 个微服务将同时尝试从配置服务器获取配置。这不是潜在地意味着超载和崩溃吗?

0 投票
1 回答
922 浏览

spring-cloud - Spring Cloud Bus 不再支持对 /actuator/bus-refresh 的 POST 请求

我发现 Spring Cloud Bus 不支持对version的 /actuator/bus-refresh的 POST 请求。当我尝试发送它时,我收到 405“方法不允许”。有没有办法在不使用/monitor和 git webhooks 或降级 Spring Cloud 版本的情况下自动刷新所有客户端服务的配置?Spring Cloud2020.0.0

我已经包含spring-cloud-starter-bus-amqpspring-boot-starter-actuator依赖项,bus-refresh端点已暴露。RabbitMQ 已启动并运行,springCloudBus 主题已创建并在我的服务启动时添加队列。当我向/actuator/bus-refresh发出 GET 请求时,它会将属性源提取到我的配置服务器,但我的客户端服务属性文件没有刷新,消息也没有添加到队列中。