问题标签 [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 投票
1 回答
1099 浏览

spring-cloud - 如何为 spring-cloud-starter-bus-kafka 1.2.0.RELEASE 提供 SSL 配置

我正在使用 Spring Boot 1.5.6.RELEASE、Spring Cloud Config 1.3.2.RELEASE 和 Spring Cloud Starter Bus (Kafka) 1.2.0.RELEASE,Kafka 版本是 0.10.1.1。我正在尝试将其配置为使用两个启用 ssl 的代理,但我最终会收到重复的警告消息序列(每个代理一个),如下所示:

在我的配置中,我有(仅包含此处的相关部分):

但是,当 ProducerConfig 和 ConsumerConfig 吐出它们的配置值时,它们都表示:

此外,我收到以下警告消息:

我将需要为信任库、密钥库以及它们的密码和存储类型添加配置,并且我还想知道如何在不将它们硬编码到 yaml 配置中的情况下提供这些配置。我的首选方法是使用 jvm 属性填充这些配置属性。

知道我做错了什么吗?

在尝试了各种事情之后,这是一个有趣的更新。如果我创建一个使用@EnableKafkaStreams 注释的@Configuration 类,我可以创建一个StreamsConfig,其中包含按指定配置的所有各种属性,但这会创建一个新的独立的生产者和消费者。spring cloud bus kafka 生产者和消费者仍然没有配置超出默认值。

0 投票
2 回答
2129 浏览

spring-boot - 为什么 Spring Boot Application 在添加 spring-cloud-bus 依赖项后记录它启动了两次

这是我的 Spring Boot 应用程序中的简单代码:

还有一个 ApplicationListener 类来监听 ApplicationEvent:

build.gradle 包含这些依赖项:

现在,当我运行这个 spring boot 应用程序时,我看到这个日志打印了两次:

通常,此日志只打印一次,但如果我添加这些依赖项,它会打印两次:

这是完整的日志:

如您所见,ApplicationReadyEvent 发生了两次。

为什么会这样?有没有办法避免这种情况?

0 投票
1 回答
255 浏览

rabbitmq - Spring Cloud Bus,以更易读的方式重命名MQ

我的 Cleint 有 2 个实例,我正在使用下面的代码段重命名队列,可以看到 testExchange.testQueue 已创建,我可以在其中看到 2 个消费者,即我的客户端实例,但是 /bus/refresh 我只能看到单个实例正在刷新而且我没有在 /bus/refresh 上获得 Cloud Bus 功能,即所有实例都应该刷新,如果我缺少任何配置以将队列重命名为可读格式,请告诉我。

0 投票
1 回答
768 浏览

spring-cloud - 带有 aws-kinesis 的 Spring Cloud Bus

Spring Cloud Bushttps://github.com/spring-cloud/spring-cloud-bus)的文档中提到它像

Bus starters 涵盖了RabbitKafka,因为这是最常见的两种实现,但是 Spring Cloud Stream 非常灵活,并且 binder 可以与 spring-cloud-bus 结合使用。

在我的项目中,我们无法为 Rabbit 或 Kafka 维护另一个基础架构,因此我想将spring-cloud-stream-binder-aws-kinesishttps://github.com/spring-cloud/spring-cloud-stream-binder-aws-kinesis)与spring-cloud-bus. 谁能指导我该怎么做?

0 投票
0 回答
1916 浏览

java - Spring Cloud Bus - 客户端没有收到更改

我认为我在使用 RabbitMQ 实现 Spring Cloud Bus 方面处于死胡同。

请记住,这是通过Spring Boot 2.0.0.M7 和 Spring Cloud Finchley.M5完成的,根据它们的发行说明,它们应该是兼容的

我试图让它工作:

  • 在配置服务器的 Git 存储库中编辑 .yml 文件
  • ConfigServer 应该通过 GitHub 的 webhook 接收通知(通过 ngrok 暴露 localhost 地址)
  • 连接到配置服务器的客户端应该通过/actuator/bus-refreshPOST 调用接收刷新请求

但是,我可以在服务器的日志中看到这一点:

(空数组是罪魁祸首吗?在这种情况下,我真的不知道该怎么办:()

客户端没有任何内容(除非我手动向总线刷新端点发送 POST 请求)......在这种情况下,日志中的输出如下:

当我查看 RabbitMQ(作为 Docker 容器运行)中的图表时,我看到三个连接的应用程序:客户端、Zuul(反向代理)和配置服务器。

你能帮我解决这个问题吗?非常感谢。以下是我对应用程序的配置。

配置服务器 POM.xml:

配置服务器 application.yml:


客户的 POM.xml:

客户端的 bootstrap.yml:

0 投票
2 回答
1500 浏览

spring-boot - 总线刷新端点在春季云 Finchley.M8 中不起作用

我使用带有 Spring boot 2.0.0.RELEASE 的 Spring cloud config Finchley.M8 版本。我注意到 /bus/refresh 已更改为 /bus-refresh。但是,每当我使用 post http 请求点击 url 时,它就无法正常工作。这是 application.properties 的片段:

此外,我扩展了 WebSecurityConfigurerAdapter 以添加以下代码片段:

这是我试图测试的网址:

然后我收到以下错误消息

此外,这里是 pom.xml 中依赖项的片段:

请问有什么帮助吗?

注意:我使用的是带有 spring 1.5.6 的旧版本的 spring cloud,它工作正常,当我使用最新的 spring cloud 版本迁移到 Spring boot 2 时遇到了这个问题。

0 投票
1 回答
1480 浏览

java - 从 amqp 客户端到 rabbitmq 服务器的 Java 8 SSL 握手失败

请阅读上一篇文章的上下文。那个问题就解决了。 重新创建队列并重新连接rabbitMQ

现在,我正在尝试在 rabbitmq 服务器和 rabbit 客户端之间设置启用 ssl 的连接。我正在使用带有弹簧云总线的弹簧靴。没有 SSL,一切都完美无缺。

  • 用它来运行 java rabbit 客户端。

> 版本

Java 1.8

spring-cloud-starter-bus-amqp => 1.3.1.RELEASE

Spring Boot 父级 => 1.5.9.RELEASE

sudo java -Djavax.net.debug=all -Dhttps.protocols=TLSv1 -jar target/rabbit-client-0.0.1-SNAPSHOT.jar

也试过 -Dhttps.cipherSuites=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384

  • 我使用了以下命令,它的结果为已验证 [ok]。这告诉我rabbitmq 服务器已正确配置证书。
  • 我可以从 chrome 浏览器访问 rabbitmq managemnet 门户,并且它信任证书,因为我在钥匙串中添加了它信任。
  • 我已将证书和 CA 证书添加到 java 密钥库并信任它。
  • Amqp 客户端无法建立连接并在启用 SSL 时失败。

链接以查看错误和调试日志

见下文失败。

这是我认为可能存在但不确定的问题。

TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 TLSv1.1 出现在不受支持的密码列表中,可能是 rabbitmq 服务器要求将其作为加密套件。

不支持 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 ????

0 投票
2 回答
788 浏览

spring-cloud-config - Spring Config Server 似乎没有通知 Bus

我正在使用 Spring 2.0.1.RELEASE 并使用 spring-cloud-bus 设置了所有项目(2 个服务和云配置服务器)

配置服务器也有 spring-cloud-config-monitor

我在我的 Git 存储库中编辑了一个文件(使用带有 Spring Cloud Config 的本机配置文件的本地文件)。检测到更改,我在 Cloud Config Server 中看到以下行:

但是,其他服务都不会收到有关更新密钥的通知。

另一方面,如果我手动调用bus-refresh任何其他服务的端点,我会看到所有模块都收到更新的密钥。配置服务器本身也收到通知,但它说没有更新密钥,这是有道理的,因为它已经检测到更改。

该文档没有提到要设置的任何特殊属性,除了 RabbitMQ 属性(由于bus-refresh端点按预期工作,这些属性似乎配置得很好。)

我看到已经有一些关于这个的帖子,甚至指向一个已标记为已解决的错误(https://github.com/spring-cloud/spring-cloud-bus/issues/101)但它似乎没有在我这边工作。

配置服务器启用任何属性以通知总线?关于如何调试的任何提示?

0 投票
1 回答
598 浏览

spring-boot - springcloud-stream 和 springcloud-bus 有什么区别?

它们之间有什么区别?

springcloud-stream的实例之一springcloud-bus吗?
据我所知,他们都关心 MQ。

0 投票
2 回答
933 浏览

java - 为 spring-cloud-bus 设置 zookeeper 主机和端口

我有一个带有 spring-cloud-starter-bus-kafka 的项目,我在里面设置了 kafka URL,application.yml如下所示:

这可以在本地部署 kafka 和 zookeeper 时找到,但是如果我将 kafka 和 zookeeper 移动到他们自己的服务器上,当 spring-boot 启动时会出现错误:

新配置

错误

我应该如何配置 kafka 和 zookeeper 以连接到他们的服务器?