当前位置: 首页 > 知识库问答 >
问题:

如何使用ActiveMQ设置Spring云总线?

宁欣怿
2023-03-14

我想在我的项目中使用Spring Cloud Bus来动态更新配置。我们的环境中已经有Apache ActiveMQ。有没有可能使用ActiveMQ而不是RabbitMQ作为代理?它们都是一种AMQP服务器。

我在pom.xml中设置依赖项如下:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency>

它看起来像一个标准的AMQP启动器,不限于RabbitMQ。但是,当配置服务器启动时,以下错误日志会提示:

org.springframework.amqp.AmqpIOException: java.io.IOException
    at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:65)
    at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:218)
    at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:476)
    at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils$1.createConnection(ConnectionFactoryUtils.java:80)
    at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.doGetTransactionalResourceHolder(ConnectionFactoryUtils.java:130)
    at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.getTransactionalResourceHolder(ConnectionFactoryUtils.java:67)
    at org.springframework.amqp.rabbit.listener.BlockingQueueConsumer.start(BlockingQueueConsumer.java:439)
    at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:1083)
    at java.lang.Thread.run(Thread.java:745)

Caused by: java.io.IOException: null
    at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106)
    at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102)
    at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:350)
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:648)
    at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:205)
    ... 7 common frames omitted
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error
    at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)
    at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:37)
    at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:367)
    at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:293)
    ... 9 common frames omitted
Caused by: com.rabbitmq.client.MalformedFrameException: AMQP protocol version mismatch; we are version 0-9-1, server sent signature 0,1,0,0
    at com.rabbitmq.client.impl.Frame.protocolVersionMismatch(Frame.java:174)
    at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:111)
    at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:139)
    at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:536)
    ... 1 common frames omitted

共有1个答案

池阳伯
2023-03-14

是否有可能使用ActiveMQ而不是RabbitMQ作为代理?

据我所知,ActiveMQ只提供AMQP 1.0,而Rabbit客户端是0.9.1,所以答案是“否”。如果您为AMQP 1.0或JMS或ActiveMQ中的其他协议之一提供了sping-cloud-stream绑定器,您可能可以这样使用它(在Spring Cloud的Brixton版本中)。不过,它们并不是开箱即用的,因此您必须自己编写该位。

 类似资料:
  • 我尝试制作示例代码来研究jms。我遇到了一些错误。所以,我搜索了一些解决错误的文章。我放弃了,因为我找不到如何使用spring4在ActiveMQ中设置代理。请给我一些建议或解决问题。 这是一个错误。 这是我的Spring配置文件。 而且,当我尝试设置使用ActiveMQConnectionFactory的CachingConnectionFactory时,它带来了错误。然而,在这个站点(http

  • 我有三个应用程序,一个是spring云配置服务器点,另一个是spring云配置客户endpoint。我在彼此中配置了spring云总线,以使客户endpoint自动刷新发生更改,但在我运行的应用程序中,出现了如下异常 这是我的spring云服务器配置 这是我的spring云配置服务器pom 这是我的spring云配置客户端配置 这是我的spring云配置客户端pom 此异常不会影响操作的应用程序,

  • 让我用一个例子来解释我的问题, 有一种叫做“通知服务”的微服务 它有2个实例在端口8080和8081中运行 我们的Spring云配置服务器也在运行,并包含“通知服务”的所有属性文件 当属性文件更改时,为了使其立即影响所有正在运行的实例,我们可以使用sping-Cloud-bus, 并使用邮递员工具一次刷新“通知服务”的所有实例。 例如,localhost:8080/bus/refresh 我想知道

  • 但是如果我让Spring Boot自动配置JOOQ,那么我应该把这个设置放在哪里呢? 基本的Spring Boot配置似乎只支持在中设置,如jooq-spring-boot-example所示。 我尝试将放入中,但这对SQL没有任何影响。 有没有办法自定义Spring boot JOOQ配置,而不必自己配置JOOQ? 我使用的是SpringBoot 2.1.7.Release和JOOQ 3.11.

  • 我在Spring JDBC中使用Spring Boot 1.5.4。 使用Spring JDBC的Spring Boot微服务在尝试执行HTTP PUT时(在一群用户尝试执行HTTP PUT后)会出现以下问题,该问题会逐渐进入Spring JDBC调用: pom.xml: 我猜我需要设置一个JDBC连接池... 在我的application.properties设置中,(我有两个不同的数据库——一

  • 使用指南 - 账户管理 - 站点管理 - 如何设置汇总网站 汇总网站的概念 您可以通过汇总网站的设置,将多个站点的数据合并,以便查看和分析这些站点的整体累加数据。 ##如何设置汇总网站 在“管理”->“网站列表”中可以添加汇总网站。 如果之前没有添加汇总网站,在如下图中的位置点击添加汇总网站。 如果已经设置过汇总网站,在如下图中的位置点击添加汇总网站。 数据查看 完成汇总网站的设置后,汇总网站会出