message-queue相关内容

使用 EasyNetQ for RabbitMQ 时自定义错误队列名称?

与其让我未处理的异常进入 EasyNetQ_Default_Error_Queue,我想知道是否有一种方法可以明确说明应该用于给定应用程序的错误队列的名称,因此错误不会t 全部都在这个EasyNetQ_Default_Error_Queue? 我可以看到如何指定常规消息队列名称,但没有找到有关错误队列名称的任何信息. 解决方案 是的,您可以通过覆盖 IConventions 对象上的 ..
发布时间:2022-01-11 17:21:37 C#/.NET

如何有选择地从 AMQP(RabbitMQ)队列中删除消息?

我想有选择地从 AMQP 队列中删除消息,甚至不读取它们. 场景如下: 发送方希望基于 X 类型的新信息到达的事实使 X 类型的消息过期.因为订阅者很可能还没有消费 X 类型的最新消息,所以发布者应该删除以前的 X 类型消息并将最新的消息放入队列中.整个操作对订阅者应该是透明的——事实上他应该使用像 STOMP 这样简单的东西来获取消息. 如何使用 AMQP 做到这一点?或者也许 ..
发布时间:2022-01-11 17:11:56 其他开发

Rabbitmq Ack 或 Nack,将消息留在队列中

我一直在玩 RabbitMq.net 和消息确认.如果消费者能够处理消息,您可以以 的形式发回 ack channel.BasicAck(ea.DeliveryTag, false); 这会将它从队列中移除. 但是如果消息无法处理怎么办?可能是临时中断,您不希望将消息从队列中删除,然后将其放在后面并继续下一条消息? 我尝试过使用 channel.BasicNack(ea.Del ..
发布时间:2022-01-11 17:11:38 C#/.NET

ZeroMQ、RabbitMQ 和 Apache Qpid 之间的性能比较

我的应用程序需要高性能消息总线,因此我正在评估 ZeroMQ、RabbitMQ 和 Apache Qpid 的性能.为了测量性能,我正在运行一个测试程序,该程序使用其中一个消息队列实现发布 10,000 条消息,并在同一台机器上运行另一个进程来使用这 10,000 条消息.然后我记录发布的第一条消息和收到的最后一条消息之间的时间差. 以下是我用于比较的设置. RabbitMQ:我使用了 ..
发布时间:2022-01-11 17:08:18 其他开发

如何在确保每个实体 FIFO 的同时并行处理消息?

假设您的系统中有一个实体,例如“Person",并且您想要处理修改各种 Person 实体的事件.重要的是: 以先进先出的顺序处理同一个人的事件 多个 Person 事件流由不同的线程/进程并行处理 我们有一个使用共享数据库和锁来解决这个问题的实现.线程竞争获取一个 Person 的锁,然后在获取锁后按顺序处理事件.我们希望移动到消息队列以避免轮询和锁定,我们认为这会减少数据库的负载 ..
发布时间:2022-01-11 17:07:02 其他开发

微服务架构 - 当订单无关紧要时通过服务传递消息

Tl;dr:“我如何通过一堆异步、无序的微服务推送消息,并知道该消息何时通过每个微服务?" 我正在努力为特定的微服务架构寻找合适的消息传递系统/协议.这不是一个“哪个最好"的问题,而是一个关于我对设计模式/协议的选择是什么的问题. 我在开始队列中有一条消息.假设一个带有序列化 JSON 的 RabbitMQ 消息 我需要该消息通过任意数量的微服务 这些微服务中的每一个都是长期运行的 ..

获取 RabbitMQ 队列中的消息数

我们使用 amqplib 来发布/使用消息.我希望能够读取队列上的消息数量(理想情况下,既已确认又未确认).这将允许我向管理员用户显示一个漂亮的状态图,并检测某个组件是否跟不上负载. 我在 amqplib 文档中找不到任何关于读取队列状态的信息. 有人能指出正确的方向吗? 解决方案 使用鼠兔: 进口鼠兔pika_conn_params = pika.ConnectionPar ..
发布时间:2022-01-11 17:03:47 Python

您如何在确保每个实体的 FIFO 的同时并行处理消息?

假设您的系统中有一个实体,例如“Person",并且您想要处理修改各种 Person 实体的事件.重要的是: 按 FIFO 顺序处理同一个人的事件 多人事件流由不同的线程/进程并行处理 我们有一个使用共享数据库和锁来解决这个问题的实现.线程竞争获取Person 的锁,然后在获取锁后按顺序处理事件.我们想转移到消息队列以避免轮询和锁定,我们认为这会减少数据库的负载并简化消费者代码的实现 ..
发布时间:2021-12-28 23:12:04 其他开发

Heroku 上的 Node JS 消息队列

我需要将在 Heroku 上运行的 Node JS 服务器移动到消息队列架构.目前,服务器接收 HTTP 请求,进行一些处理,然后进行响应.问题是处理需要一些时间,特别是当有很多请求时.这种冗长的处理时间会导致服务器超时、过载和崩溃!我的阅读告诉我需要一个后台工作人员来进行处理. 我对消息队列和后台工作人员的经验为零,我正在寻找一个非常简单的示例来开始使用.任何人都可以建议一个简单易懂的模块 ..
发布时间:2021-12-16 23:19:02 其他开发

PHP 中的异步处理或消息队列 (CakePHP)

我正在用 CakePHP 构建一个网站,用于处理通过 XML-RPC API 和 Web 前端上传的文件.文件需要被 ClamAV 扫描,需要生成缩略图等等.所有需要一些时间的资源密集型工作,用户不应等待.所以,我正在研究使用 PHP 的异步处理,特别是 CakePHP. 我发现了 MultiTask 插件 对于看起来很有希望的 CakePHP.我还遇到了各种消息队列实现,例如 dropr ..
发布时间:2021-12-14 20:50:03 PHP

带有队列的长时间运行的 REST API

我们正在实施 REST API,它将启动多个长时间运行的后端任务.我一直在阅读 RESTful Web 服务手册,建议返回 HTTP 202/Accepted 并带有指向正在处理的任务的 Content-Location 标头.(例如 http://www.example.org/orders/tasks/1234),并让客户投票此 URI 用于更新长时间运行的任务. 这个想法是让 REST ..

什么是好的速率限制算法?

我可以使用一些伪代码,或者更好的 Python.我正在尝试为 Python IRC 机器人实现一个速率限制队列,它部分起作用,但是如果有人触发的消息少于限制(例如,速率限制是每 8 秒 5 条消息,而该人仅触发 4 条),并且下一次触发超过 8 秒(例如,16 秒后),bot 发送消息,但队列已满,bot 等待 8 秒,即使因为 8 秒时间段已经过去不需要它. 解决方案 这里是最简单的算法,如 ..
发布时间:2021-12-06 19:27:56 Python

互操作性 Azure 服务总线消息队列消息

我有一个 Java 应用程序和一个 NodeJS 应用程序,它们都使用单个 Azure 服务总线消息队列. 我在我的客户身上看到了一些奇怪的效果,如下所示. JAVA MESSAGE PRODUCER(根据 Azure JMS 教程使用 QPID 库): TextMessage message = sendSession.createTextMessage();message.se ..
发布时间:2021-12-06 18:55:12 Java开发

在 FIFO 队列系统中,实现优先消息传递的最佳方式是什么?

对于不始终支持优先级消息的面向消息的中间件(例如 AMQP),当队列只有 FIFO 语义时,实现优先级消费的最佳方法是什么?一般用例是这样一种系统,其中当队列中存在大量消息积压时,消费者会在收到较低优先级消息之前收到较高优先级的消息. 解决方案 鉴于给定的单个队列仅支持 FIFO,您当然必须引入多个队列、中介或具有更复杂的消费者.> 可以通过多种方式处理多个队列.生产者和消费者可以同意在 ..
发布时间:2021-11-27 11:48:48 其他开发

在 Web 应用程序中使用像 RabbitMQ 这样的消息传递?

我想了解像 RabbitMQ 这样的消息传递可以帮助消费者 Web 应用程序的场景/用例/是什么. 有什么具体的资源可以学习吗? 目前有哪些 Web 应用程序正在使用此类消息传递方案?如何使用? 解决方案 一般来说,消息总线(例如 RabbitMQ,但不限于)允许可靠的作业处理队列. 就网络应用程序而言,这对您来说意味着能够随着需求的增长扩展您的应用程序,并使您的 UI ..
发布时间:2021-11-27 11:48:04 其他开发

如何有选择地从 AMQP (RabbitMQ) 队列中删除消息?

我想有选择地从 AMQP 队列中删除消息,甚至不读取它们. 场景如下: 发送方希望基于 X 类型的新信息到达的事实使 X 类型的消息过期.因为订阅者很可能还没有消费最新的 X 类型消息,发布者应该删除以前的 X 类型消息并将最新的消息放入队列中.整个操作应该对订阅者透明——事实上他应该使用像 STOMP 这样简单的东西来获取消息. 如何使用 AMQP 做到这一点?或者也许在另一种 ..
发布时间:2021-11-27 11:46:04 其他开发

消息、队列和交换的限制是什么?

允许的消息类型有哪些(字符串、字节、整数等)? 消息的最大大小是多少? 队列和交换的最大数量是多少? 解决方案 理论上任何东西都可以作为消息存储/发送.您实际上不想在队列中存储任何内容.如果队列大部分时间都是空的,则系统的工作效率最高.您可以使用两个先决条件将任何您想要的内容发送到队列: 您发送的内容可以与字节串相互转换 消费者确切地知道它得到了什么以及如何将其转换为原始对 ..
发布时间:2021-11-27 11:44:19 其他开发