首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RabbitMQ -将具有公共属性的消息发送到同一使用者

RabbitMQ -将具有公共属性的消息发送到同一使用者
EN

Stack Overflow用户
提问于 2020-09-30 15:14:35
回答 1查看 15关注 0票数 0

背景

我有一个有很多机器的分布式系统。我有两种类型的应用程序-生产者和消费者。更具体地说--一个生产者和多个消费者。每台“消费者机器”都有多个消费者。

系统中的所有消息都将进入同一队列。消息看起来像这样:

代码语言:javascript
复制
{
    "Id": "Thisismyid",
    "CacheId": "CacheID"
    ...
}

我的使用者正在应用缓存策略,以便更快地处理队列消息。一旦消费者下载了邮件,就会检查之前是否已经缓存了CacheId。如果是-继续。如果没有-缓存它并继续。

同一台机器上的所有使用者共享相同的缓存存储库。

问题所在

当我有一个消费者时,这种结构是“最优的”。因为,同一台机器缓存这些项并多次使用它。

随着消费者数量的增加,缓存的效率也在下降。因为更有可能的是,项目将由没有准备好使用缓存的节点下载。

问题是

如何使用RabbitMQ将具有相同CacheId的消息“路由”到同一消费者\机器来处理,以提高效率?RabbitMQ资源的“成本”是多少?

EN

回答 1

Stack Overflow用户

发布于 2020-10-02 19:16:52

你可以通过一个主题交换来做到这一点:https://www.rabbitmq.com/tutorials/tutorial-five-dotnet.html

但是如果你有很多CacheId,这很快就会变得很复杂。

但我会使用集中式缓存。可能是Redis:https://redis.io/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64132633

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档