activemq 相关问题

Apache ActiveMQ是一个开源(Apache 2.0许可)消息代理,它完全实现了Java Message Service 1.1(JMS)。它提供了“企业功能”,如群集,多个消息存储,以及将任何数据库用作除VM,缓存和日志持久性之外的JMS持久性提供程序的能力。

消息代理与 Java 阻塞队列与休息

我必须创建两个服务,让我们调用服务A和服务B。A需要向B发送消息并且不期望得到响应。考虑到消息数量并不大,假设每秒 5 条......

回答 1 投票 0

如何使用php-amqplib连接到activemq docker镜像

我正在尝试创建一个cutome命令,该命令应该使用来自activemq队列的消息。 我正在使用 php-amqplib,并且创建了自定义连接器和 ActiveMQServiceProvider。 我收到此错误

回答 1 投票 0

如何使用 php-amqplib 连接到 rmohr/activemq docker 镜像

我正在尝试创建一个cutome命令,该命令应该使用来自activemq队列的消息。 我正在使用 php-amqplib,并且创建了自定义连接器和 ActiveMQServiceProvider。 我收到此错误

回答 1 投票 0

RabbitMQ 将有效负载铲入 ActiveMQ Classic 的消息格式问题

我有一个设置,其中 RabbitMQ 中的队列通过 AMQP (1.0) 将数据铲到 ActiveMQ Clasic 6.0.1 中的队列。 从 RabbitMQ 发布以下数据(JSON)时 {“你好”:“世界&q...

回答 1 投票 0

启动activemq时端口绑定异常

我正在尝试使用命令启动 activeMq activemq.bat启动 但是,使用此命令会停止活动 MQ;看起来原因是端口不可用。这是错误片段: 在...

回答 2 投票 0

ActiveMQ StatisticsPlugin 不适用于通配符目标

我正在使用 ActiveMQ“经典”StatisticsPlugin 来收集目的地的统计信息。我已经使用 ActiveMQ.Statistics.Destination.* 以及replyTo 标头来收集所有信息...

回答 2 投票 0

Flaky Consumer 无法在 Camel 和 Spring 中消费消息(~ 1%)

我正在使用 ProducerTemplate 和 ConsumerTemplate 来处理简单路由测试中的消息发送和接收。我还使用带有 activeMQ 图像的 testcontainer 。下面有一个设置: @

回答 1 投票 0

带有 Java 8 JMS 客户端的 Apache ActiveMQ Classic 5.18

Apache ActiveMQ Classic 5.18 产品要求 Java 11 在 JMS 客户端和代理上运行。 我们有一些客户端还无法从 Java 8 升级到 Java 11,但我们希望

回答 1 投票 0

在Python中无法连接到stomp(activemq)推送数据服务器,而在Java中却成功

在 Java 中,我可以连接到数据推送服务并订阅它。我相信这是一个 stomp 或 OpenWire 协议。重点是,这段 java 代码运行良好(它是其中的一部分): 导入 javax.jms.Conn...

回答 3 投票 0

Docker 上的 ActiveMQ Classic 6 - 使用默认凭据登录管理控制台时,出现 401 未经授权的错误

我通过 Docker Desktop 使用最新的官方 ActiveMQ Classic 6 Docker 映像。但是,授权不适用于默认凭据(即 admin/admin)。我收到 401 未经授权的错误...

回答 1 投票 0

Apache ActiveMQ Artemis 客户端可以连接到现有的 ActiveMQ Classic 5.15.x 代理吗?

ActiveMQ Classic 5.15.3 不支持 JMS 2.0 API。大多数开发人员建议项目如果需要 JMS 2.0 客户端支持,则使用 ActiveMQ Artemis。 ActiveMQ Artemis 客户端可以连接到 Act...

回答 2 投票 0

ActiveMQ Artemis 与 ActiveMQ Classic 连接

aplication.yaml 之间的 ActiveMQ Artemis 连接配置有什么区别: spring.artemis.mode=native spring.artemis.host=192.168.1.210 spring.artemis.port=9876 与 春天。

回答 1 投票 0

如何在 MacOS 上使用 Homebrew 安装旧版本的 ActiveMQ Classic? [已关闭]

Homebrew 命令brew install activemq 安装最新稳定版本的ActiveMQ Classic,该版本与Java 11 及更高版本兼容。 如何安装旧版本的 ActiveMQ

回答 1 投票 0

如何在 macos 上使用 Homebrew 安装旧版本的 active mq

自制命令 -brew install activemq 安装最新稳定版本的 activemq,它与 java 11 及更高版本兼容。 我如何安装兼容的旧版本的 activemq...

回答 1 投票 0

ActiveMQ Classic 和 Apache ActiveMQ-CPP 的兼容性矩阵

我目前正在开发一个项目,其中 C++ 应用程序嵌入 Apache activemq-cpp 版本 3.9.3.p1,以解决 ActiveMQ Classic 5.x 我想知道这个版本的ac...

回答 1 投票 0

使用 Spring 和 ActiveMQ 的监听器方法反复抛出“属性名称不能为空”警告

我尝试在两个地方使用Spring来实现ActiveMQ。两种实现都存在这个问题。使用邮递员发送 HTTP 请求或直接在 ActiveMQ 中输入消息

回答 1 投票 0

ActiveMQ Classic是否支持“检测客户端故障”

我们使用 ActiveMQ Classic 5.10 作为 JMS 代理。但我们发现连接会不断累积,有时会达到极限。我们在代码中没有发现任何连接泄漏问题。 通过使用 G...

回答 1 投票 0

从 ActiveMQ Classic Scheduled 选项卡获取所有延迟消息

我正在执行测试,需要提取所有延迟消息(ActiveMQ Classic gui 中安排的选项卡)。这在 ActiveMQ Classic 中可能吗?我用 Java 编写测试。 我希望消耗掉每一个

回答 1 投票 0

从 ActiveMQ Scheduled 选项卡获取所有延迟消息

我正在执行测试,需要提取所有延迟消息(在 activeMQ gui 中安排的选项卡)。在 ActiveMQ 中这可能吗?我用 Java 编写测试。 我希望消耗掉每条延迟的消息......

回答 1 投票 0

遇到MassTransit异常:System.Threading.Channels.ChannelClosedException:通道已关闭

我们有一个面向 .NET 3.1 的 ASP.NET Core 应用程序。 我们使用 MassTransit 发送和使用消息,并使用 ActiveMQ 作为消息代理。 我们正在使用这些 MassTransit 套餐 我们有一个面向 .NET 3.1 的 ASP.NET Core 应用程序。 我们使用 MassTransit 发送和使用消息,并使用 ActiveMQ 作为消息代理。 我们正在使用这些 MassTransit 套餐 <PackageReference Include="MassTransit" Version="7.2.2" /> <PackageReference Include="MassTransit.ActiveMQ" Version="7.2.2" /> <PackageReference Include="MassTransit.AspNetCore" Version="7.2.2" /> <PackageReference Include="MassTransit.Extensions.DependencyInjection" Version="7.2.2" /> 我们有很多消费者,这样声明: services.AddMassTransit(busConfigurator => { busConfigurator.AddConsumer<CreateLeadConsumer>(); busConfigurator.AddConsumer<CreateOrderConsumer>(); busConfigurator.AddConsumer<InvoiceCreatedConsumer>(); busConfigurator.AddConsumer<PhoenixContractCreatedConsumer>(); busConfigurator.AddConsumer<PhoenixDocumentCreatedConsumer>(); ConfigureBus(busConfigurator, activeMqOptions); }); 我们定义了这些ActiveMqOptions var activeMqOptions = Configuration.GetSection(SodexoActiveMQOptions.SectionName).Get<SodexoActiveMQOptions>(); EndpointConvention.Map<InvoiceCreatedMessage>(new Uri(QueueFormatter.FormatToAllowConcurrency(activeMqOptions.LocalQueues.InvoiceCreatedQueue))); EndpointConvention.Map<CompanyOrderDto>(new Uri(QueueFormatter.FormatToAllowConcurrency(activeMqOptions.GlobalQueues.CreateOrUpdateClientQueue))); EndpointConvention.Map<BeneficiaryWithProductDto>(new Uri(QueueFormatter.FormatToTopic(activeMqOptions.GlobalQueues.CreateOrUpdateBeneficiaryQueue))); EndpointConvention.Map<CreatePhoenixOrderMessage>(new Uri(QueueFormatter.FormatToAllowConcurrency(activeMqOptions.GlobalQueues.CreateOrderQueue))); EndpointConvention.Map<PhoenixOrderCreationMessage>(new Uri(QueueFormatter.FormatToAllowConcurrency(activeMqOptions.GlobalQueues.PhoenixCreateOrderQueue))); EndpointConvention.Map<CancelOrderMessage>(new Uri(QueueFormatter.FormatToAllowConcurrency(activeMqOptions.GlobalQueues.CancelOrderQueue))); EndpointConvention.Map<CancelOrderMessage>(new Uri(QueueFormatter.FormatToAllowConcurrency(activeMqOptions.GlobalQueues.CancelOrderQueue))); EndpointConvention.Map<DocumentCreatedMessage>(new Uri(QueueFormatter.FormatToAllowConcurrency(activeMqOptions.LocalQueues.DocumentCreatedQueue))); 我们的消费者大部分时间都工作正常,有效负载消耗良好。 但有时会抛出异常: [MassTransit.ReceiveTransport] R-FAULT "activemq://localhost:61616/{name of the queue}" System.Threading.Channels.ChannelClosedException: The channel has been closed. at MassTransit.Util.ChannelExecutor.Run[T](Func`1 method, CancellationToken cancellationToken) at MassTransit.ActiveMqTransport.Transport.ActiveMqSendTransport.SendPipe`1.Send(SessionContext sessionContext) at GreenPipes.Agents.PipeContextSupervisor`1.GreenPipes.IPipeContextSource<TContext>.Send(IPipe`1 pipe, CancellationToken cancellationToken) at GreenPipes.Agents.PipeContextSupervisor`1.GreenPipes.IPipeContextSource<TContext>.Send(IPipe`1 pipe, CancellationToken cancellationToken) at GreenPipes.Agents.PipeContextSupervisor`1.GreenPipes.IPipeContextSource<TContext>.Send(IPipe`1 pipe, CancellationToken cancellationToken) at GreenPipes.Internals.Extensions.TaskExtensions.<>c__DisplayClass4_0.<<OrCanceled>g__WaitAsync|0>d.MoveNext() --- End of stack trace from previous location where exception was thrown --- at MassTransit.Util.PendingTaskCollection.Completed(CancellationToken cancellationToken) at MassTransit.Pipeline.Filters.DeserializeFilter.Send(ReceiveContext context, IPipe`1 next) at GreenPipes.Filters.RescueFilter`2.GreenPipes.IFilter<TContext>.Send(TContext context, IPipe`1 next) 由于我们收到此异常,消息将进入错误队列。 为了避免此异常,我在应用程序上添加了重试行为。当遇到异常时,消息将在队列中重新发送。在其他例外情况下它工作正常,但在这个例外情况下则不然。 一旦抛出 System.Threading.Channels.ChannelClosedException,消息就会重试并被消耗。但在消息被消费后,消息仍然会进入错误队列。 这是更清晰的日志视图,您将看到有一个模式: As you will see, the first time, the application try to publish the message to a queue, but a ChannelClosedException is thrown. The second time, the message is correctly published, because we can see final logs, and also because I checked with the targeted consumers. [22:39:13.647 INF] [] [ECommerce.Messaging.Consumers.CreateOrderConsumer] Receiving order message --> First time we get the message [22:39:13.924 INF] [] [ECommerce.Messaging.Consumers.CreateOrderConsumer] Sending phoenix reorder creation message for enterprise number 754887949 [22:39:13.927 WRN] [] [MassTransit.ReceiveTransport] R-RETRY "activemq://localhost:61616/create-order" "8ee80000-56b0-0050-5f50-08da74c70f82" MassTransit.Context.RetryConsumeContext<MassTransitMessaging.CreateOrderMessage> System.Threading.Channels.ChannelClosedException: The channel has been closed. at MassTransit.Util.ChannelExecutor.Run[T](Func`1 method, CancellationToken cancellationToken) at MassTransit.ActiveMqTransport.Transport.ActiveMqSendTransport.SendPipe`1.Send(SessionContext sessionContext) at GreenPipes.Agents.PipeContextSupervisor`1.GreenPipes.IPipeContextSource<TContext>.Send(IPipe`1 pipe, CancellationToken cancellationToken) at GreenPipes.Agents.PipeContextSupervisor`1.GreenPipes.IPipeContextSource<TContext>.Send(IPipe`1 pipe, CancellationToken cancellationToken) at GreenPipes.Agents.PipeContextSupervisor`1.GreenPipes.IPipeContextSource<TContext>.Send(IPipe`1 pipe, CancellationToken cancellationToken) at MassTransit.EndpointConventionExtensions.Send[T](ISendEndpointProvider provider, T message, CancellationToken cancellationToken) at ECommerce.Messaging.Consumers.MessageNotifier.NotifyAsync[T](T message, CancellationToken cancellationToken) in /home/vsts/work/1/s/ECommerce.Messaging/Consumers/MessageNotifier.cs:line 18 at ECommerce.Messaging.Consumers.CreateOrderConsumer.Consume(ConsumeContext`1 context) in /home/vsts/work/1/s/ECommerce.Messaging/Consumers/CreateOrderConsumer.cs:line 96 at MassTransit.Scoping.ScopeConsumerFactory`1.Send[TMessage](ConsumeContext`1 context, IPipe`1 next) at MassTransit.Scoping.ScopeConsumerFactory`1.Send[TMessage](ConsumeContext`1 context, IPipe`1 next) at MassTransit.Pipeline.Filters.ConsumerMessageFilter`2.GreenPipes.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next) at MassTransit.Pipeline.Filters.ConsumerMessageFilter`2.GreenPipes.IFilter<MassTransit.ConsumeContext<TMessage>>.Send(ConsumeContext`1 context, IPipe`1 next) at GreenPipes.Filters.RetryFilter`1.GreenPipes.IFilter<TContext>.Send(TContext context, IPipe`1 next) [22:39:14.031 INF] [] [ECommerce.Messaging.Consumers.CreateOrderConsumer] Receiving order message --> Second time we get the message [22:39:14.255 INF] [] [ECommerce.Messaging.Consumers.CreateOrderConsumer] Sending phoenix reorder creation message Phoenix reorder creation message is sent for enterprise number 754887949 [22:39:14.281 INF] [] [ECommerce.Messaging.Consumers.CreateOrderConsumer] Phoenix reorder creation message is sent for enterprise number 754887949 [22:39:14.281 INF] [] [ECommerce.Messaging.Consumers.CreateOrderConsumer] Reorder was created for company 754887949 --> Success, it means that the message has been correctly sent [22:39:14.291 ERR] [] [MassTransit.ReceiveTransport] R-FAULT "activemq://localhost:61616/create-order" ID:CEBESVC-BA5AP08-54759-637950758237778584-1:0:1:1:1 "00:00:00.6544301" System.Threading.Channels.ChannelClosedException: The channel has been closed. at MassTransit.Util.ChannelExecutor.Run[T](Func`1 method, CancellationToken cancellationToken) at MassTransit.ActiveMqTransport.Transport.ActiveMqSendTransport.SendPipe`1.Send(SessionContext sessionContext) at GreenPipes.Agents.PipeContextSupervisor`1.GreenPipes.IPipeContextSource<TContext>.Send(IPipe`1 pipe, CancellationToken cancellationToken) at GreenPipes.Agents.PipeContextSupervisor`1.GreenPipes.IPipeContextSource<TContext>.Send(IPipe`1 pipe, CancellationToken cancellationToken) at GreenPipes.Agents.PipeContextSupervisor`1.GreenPipes.IPipeContextSource<TContext>.Send(IPipe`1 pipe, CancellationToken cancellationToken) at GreenPipes.Internals.Extensions.TaskExtensions.<>c_DisplayClass4_0.<<OrCanceled>g_WaitAsync|0>d.MoveNext() — End of stack trace from previous location where exception was thrown — at MassTransit.Util.PendingTaskCollection.Completed(CancellationToken cancellationToken) at MassTransit.Pipeline.Filters.DeserializeFilter.Send(ReceiveContext context, IPipe`1 next) at GreenPipes.Filters.RescueFilter`2.GreenPipes.IFilter<TContext>.Send(TContext context, IPipe`1 next) --> The message has been sent BUT we get this error ! 这很烦人,因为我们必须检查错误队列中的每条消息是否是真正的错误。 不幸的是,我无法在本地环境中重现此行为。 您遇到的异常已在 MassTransit 版本 8.1.0 中修复,其中 ActiveMQ 库已更新到官方版本。更新到此版本或更新版本应该有助于解决此问题。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.