标签: message-queue

RabbitMq是否从交换机到队列进行循环

我目前正在评估消息队列系统,RabbitMq似乎是一个很好的候选者,所以我正在深入研究它.

为了给出一些上下文,我希望有一个类似于一个交换负载的东西来平衡消息发布到多个队列.我不想复制邮件,因此不能选择扇出交换.

另外我之所以考虑拥有多个队列而不是一个队列来处理与消费者的循环,我不希望我们的单点故障处于队列级别.

听起来我可以在发布者端添加一些逻辑来通过编辑路由键并具有适当的绑定来模拟该行为.但这种被动方法不会考虑每个队列上的消息消耗速度,如果该队列的消费者应用程序已经死亡,可能会导致填满一个队列.

我正在寻找一种来自交换实体方面的更主动的方式,它将根据每个队列大小或某种性质决定在何处发送下一条消息.

我读到了Alice和可用的RESTful API,但这似乎是实现快速路由决策的重要解决方案.

任何人都知道如果在交换队列之间循环是否可行,那么RabbitMQ呢?谢谢.

messaging message-queue rabbitmq

10
推荐指数
1
解决办法
2596
查看次数

是否可以清空Gearman服务器上的作业队列

是否可以清空Gearman服务器上的作业队列?我正在使用Gearman的python驱动程序,文档中没有关于清空队列的任何信息.我认为这个功能可能存在,可能与Gearman服务器直接连接.

python message-queue gearman

10
推荐指数
3
解决办法
9366
查看次数

消息队列异常:队列不存在或您没有足够的权限来执行操作

在这行代码我得到了错误,如我所提到的

我将MSMQ_NAME声明为字符串,如下所示

  private const string MSMQ_NAME = ".\\private$\\ASPNETService";

    private void DoSomeMSMQStuff()
    {
        using (MessageQueue queue = new MessageQueue(MSMQ_NAME))
        {
            queue.Send(DateTime.Now); //Exception raises
            queue.Close();
        }
    }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

c# mysql asp.net message-queue

10
推荐指数
2
解决办法
2万
查看次数

处理消息队列中的重复

我一直在和我的程序员争论最好的解决方法.我们的数据以每秒约10000个对象的速度进入.这需要异步处理,但是松散排序就足够了,因此每个对象都循环插入到几个消息队列之一(还有几个生产者和消费者).每个对象约300个字节.它需要持久,因此MQ配置为持久存储到磁盘.

问题是这些对象经常是重复的(因为它们不可避免地复制到生产者的数据中).它们具有10字节的唯一ID.如果对象在队列中重复,则不是灾难性的,但是如果它们在从队列中取出后在处理中被复制,那就不是灾难性的.什么是确保尽可能接近线性可扩展性同时确保对象处理不重复的最佳方法?也许与此相关,是应该将整个对象存储在消息队列中,还是只将id与body存储在像cassandra这样的内容中?

谢谢!

编辑:确认重复发生的位置.此外,到目前为止,我已经为Redis提出了2条建议.我以前一直在考虑RabbitMQ.关于我的要求,每种方法的优缺点是什么?

php activemq-classic message-queue rabbitmq cassandra

10
推荐指数
1
解决办法
2609
查看次数

通过boost消息队列发送复杂的数据结构

我有以下数据结构:

typedef struct
{
    short id;
    string name;
    short age;
} person_struct;
Run Code Online (Sandbox Code Playgroud)

使用boost消息队列,我试图在另一个进程中将此数据结构发送到消息队列接收器.然而,收到后,我在访问上述结构中的'name'变量时出现了分段错误.

以下是我的发件人功能:

person_struct MyRec;
MyRec.id = 1;
MyRec.name = "ABC123";
MyRec.age = 20;   
message_queue mqSender(create_only, "MSG_Q", 100, sizeof(person_struct));
mqSender.send(&MyRec, sizeof(person_struct), MQ_PRIORITY);
Run Code Online (Sandbox Code Playgroud)

以下是我的接收功能:

message_queue myReceiver(open_only, "MSG_Q");
person_struct *recvMsg = new person_struct();
size_t msg_size;
unsigned int priority;
myReceiver.receive(recvMsg, sizeof(person_struct), msg_size, priority);
cout << "ID: " << (*recvMsg).id << endl;
cout << "Name: " << (*recvMsg).name << endl;
cout << "Age: " << (*recvMsg).age << endl;
Run Code Online (Sandbox Code Playgroud)

(*recvMsg).id的cout没问题,但cout为(*recvMsg).name发生了分段错误.阅读我需要为结构进行序列化的地方,但无法弄清楚如何去做.谁有人建议?

boost message-queue boost-interprocess

10
推荐指数
1
解决办法
8644
查看次数

如何在ZMQ中为(X)PUB /(X)SUB消息传递实现代理/代理?

所以我正在阅读这篇关于如何在ZMQ中为(X)PUB/(X)SUB消息传递创建代理/代理的文章.建筑物的外观很漂亮:

数据流:用户代码 - > PUB  - > XSUB  - >用户代码 - > XPUB  - > SUB  - >用户代码;  订阅流程:用户代码< -  PUB < -  XSUB < - 用户代码< -  XPUB < -  SUB < - 用户代码;

但是,当我查看XSUB套接字描述时,我不知道如何通过它转发所有订阅,因为它Outgoing routing strategy是 N/A

那么如何在ZeroMQ中实现(un)订阅转发,这种转发应用程序的最小用户代码是什么(可以插入简单的Publisher和Subscriber样本之间)?

c++ message-queue zeromq

10
推荐指数
1
解决办法
6987
查看次数

如何在JVM级别等待/通知工作?

等待和通知看起来像是在线程之间传递的消息,如果这是真的,则必须有用于缓冲这些消息的队列.如果是这样,那么必须有用于向队列添加消息和从队列中删除消息的原子操作,每个侦听这些消息的Java线程也必须有一个帮助线程吗?

很高兴听到你的想法.

java concurrency synchronization message-queue compare-and-swap

10
推荐指数
1
解决办法
1019
查看次数

如果在使用消息后出现任何错误,如何在JMS Message Queue中保留消息?

我的方案是 - 我将消息发送到队列,一旦消息被消耗,我将它发送到第三方中间件应用程序.如果该中间件应用程序已关闭,那么我发布的消息就会消失.如果中间件应用程序关闭而我希望它处于保持状态或在队列中等待,我不想丢失该消息.请建议,如何处理这种情况?

java middleware jms message-queue

10
推荐指数
3
解决办法
2万
查看次数

消息队列体系结构(客户端到Web服务器到工作者和后面)

我有一个在Heroku上运行的Node JS编写的Web服务器.服务器具有Web服务器进程和工作进程.Web服务器通过RabbitMQ队列成功向工作人员发送消息; worker成功将处理后的数据返回给Web服务器.我使用随机生成的Uuid来跟踪消息,并确保正确的消息与正确的原始消息配对.

在一个单独的项目中,我让客户端(网站)成功与Web服务器通信.现在,我需要把两者放在一起.

我怎么能这样做:

  1. 客户端发送HTTP POST.
  2. Web服务器接收请求并将请求传递到消息队列中.
  3. Worker处理请求并返回到Web服务器.
  4. Web服务器将正确的数据返回给客户端,以便客户端可以将响应与原始请求相关联.

第四步是我被困住的地方.我想我在某个地方读过客户端应该连续轮询(HTTP POSTs?)Web服务器,直到它的数据准备就绪.我想我需要在第1步之后回复客户端,因此请求不会超时.任何想法/建议表示赞赏!

框图: 在此输入图像描述

architecture message-queue httprequest backgroundworker rabbitmq

10
推荐指数
1
解决办法
4339
查看次数

与数据库和消息队列记录的最终一致性

我有一个应用程序,我需要将一些数据存储在数据库(例如mysql)中,然后在消息队列中发布一些数据.我的问题是:如果应用程序在数据库中存储后崩溃,我的数据将永远不会写入消息队列然后丢失(因此我的系统的最终一致性将无法保证).我怎么解决这个问题 ?

database domain-driven-design message-queue eventual-consistency microservices

10
推荐指数
2
解决办法
1226
查看次数