Tag: rabbitmq

如何清除MassTransit队列?

我想在集成测试SetUp例程中删除队列中的所有消息,我该如何实现? google / intellisense-bruteforce没有运气。 如果重要 – 我正在使用RabbitMq作为传输。

RabbitMQ:erl.exe占用高CPU用量

我已经在我的应用程序中实现了rabbitmq并且它在Windows Server 2008服务器上运行,问题是erl.exe占用高CPU用量,有时它达到40-45%的CPU使用率,即使在理想情况下(当不处理任何队列时) CPU占用率至少需要4-15%。 什么可能是高CPU使用率的原因? 我需要做任何设置或任何其他事情。

SemaphoreSlim保护连接池免于耗尽

我在事件驱动架构中有一个微服务(Web API),它接收来自RabbitMQ的消息,它应该使用ADO.NET将它们保存到PostgreSQL数据库中。 不幸的是,我的连接池(目前设置为50)很快耗尽,给我这个错误信息: The connection pool has been exhausted, either raise MaxPoolSize 我的RabbitMQ Consumer设置如下(Singleton): public class Listener : RabbitMqConnection { public AsyncEventingBasicConsumer _asyncConsumer; private static readonly SemaphoreSlim AsyncLock = new SemaphoreSlim(1, 1); public Listener() { _asyncConsumer = new AsyncEventingBasicConsumer(_channel); _asyncConsumer.Received += ConsumerReceived; } public async Task ConsumerReceived(object sender, BasicDeliverEventArgs message) { await AsyncLock.WaitAsync(); try { […]

在RabbitMQ中混合Pub / Sub和工作队列

我正在评估使用RabbitMQ作为消息队列/消息总线,并一直在查看RabbitMQ页面上的示例教程 。 我正在寻找教程未涵盖的特定场景,我不确定是否以及如何通过RabbitMQ做到这一点。 设置 : 让我们假设我得到了一项服务,我们称之为“采购订单”,我还需要其他服务,称为“物流”和“会计”。 发送订单时,我想通过RabbitMQ将其作为消息发送。 有2个“帐户”和3个“后勤”服务 确保“帐户”和“后勤”仅处理消息一次的正确方法是什么? 如果我理解正确,使用pub / sub将导致消息被处理两次(帐户)或三次(物流)。 使用工作队列和prefetch = 1,它将确保只有一个获得它,但我有2个服务,并希望每种类型的服务获得一个。 有没有办法将两者结合起来并为每个服务设置工作队列,而不向两个不同的交换机发送2个单独的事件/消息?

在RabbitMQ中获取所有交换队列

使用RabbitMQ.Client,我想知道这些是如何可能的: 1-获取所有队列名称? 2-到队列的交换是什么? 3-如何获取所有绑定到交换的队列?

Rabbitmq消息到达时间戳

有没有办法从消费者那里获取消息放入队列时的时间戳。 不是在它发布时,而是在它真正进入队列时。

C#RabbitMQ客户端线程安全

ConnectionFactory factory = new ConnectionFactory {HostName = “localhost”}; using (IConnection connection = factory.CreateConnection()) using (IModel channel = connection.CreateModel()) { channel.QueueDeclare(“hello”, false, false, false, null); for (int i = 0; i < 100000; i++) { MemoryStream stream = new MemoryStream(); var user = new User { Id = i }; Serializer.Serialize(stream, user); channel.BasicPublish("", "hello", null, stream.ToArray()); […]

RabbitMQ + Windows + LDAP无需发送密码

我正在尝试在Windows 7上使用RabbitMQ 3.6.2进行LDAP身份validation/授权。我已经在应用程序发送用户名/密码的地方进行了基本身份validation,但是密码在代码中我需要弄清楚如何避免。 有没有人在配置RabbitMQ以通过LDAP进行身份validation而不提供密码方面取得了成功? 我一直在提到LDAP插件文档 ,但无济于事。 我的rabbitmq.config文件因此设置: [ {rabbit, {auth_backends, [{rabbit_auth_backend_ldap, rabbit_auth_backend_internal}, rabbit_auth_backend_internal]} }, {rabbitmq_auth_backend_ldap, [{servers, [“theserver.thedomain.com”]}, %% this works, but a password is still required {user_dn_pattern, “CN=${username},OU=theADgroup,OU=anothergroup,DC=thedomain,DC=dom”}, %% looks like this is required {other_bind, anon}, {use_ssl, false}, {port, 389}, {log, true} ]} ]. 谢谢, 安迪

基于multithreading的RabbitMQ消费者

我们有一个监听单个RabbitMQ队列的Windows服务并处理该消息。 我们希望扩展相同的Windows服务,以便它可以侦听RabbitMQ的多个队列并处理消息。 不确定是否可以通过使用multithreading来实现,因为每个线程都必须列出(阻塞)队列。 由于我对multithreading很陌生,需要关注以下几点的高级指南,这将有助于我开始构建原型。 是否可以通过使用线程在单个应用程序中侦听多个队列? 如何处理如果任何单个线程被播出的情况(由于exception等),如何在不重启整个Windows服务的情况下返回。 任何设计模式或开源实现可以帮助我处理这种情况。

如何使用EasyNetQ / RabbitMQ进行error handling

我正在使用带有EasyNetQ库的C#中的RabbitMQ。 我在这里使用了pub / sub模式。 我仍然有一些问题希望有人可以帮助我: 在消费消息时出现错误时,它会自动移至错误队列。 如何实现重试(以便将其放回原始队列,当它无法处理X次时,它会移动到死信队列)? 据我所知,总有1个错误队列用于转储来自所有其他队列的消息。 如何为每种类型设置1个错误队列,以便每个队列都有自己的关联错误队列? 如何轻松重试错误队列中的消息? 我试过Hosepipe,但它只是将消息重新发布到错误队列而不是原始队列。 我不喜欢这个选项,因为我不想在控制台中摆弄。 我最好只针对错误队列进行编程。 任何人?