簡體   English   中英

是否有必要使用盡可能少的隊列以及web消息傳遞的解決方案

[英]Is it necessary to use as few queues as possible And solutions for web messaging

我在論壇中讀到,在使用 AMQP 實現任何應用程序時,必須使用更少的隊列。 那么假設如果我克隆 twitter 我將為每個注冊用戶擁有一個獨特且持久的隊列,我會完全錯誤嗎? 這似乎是最自然的方法,如果不為每個用戶分配一個唯一的隊列,如何設計這樣的東西。

web 消息傳遞最常用的方法是什么。 我看到了 RabbitHUb 和 Rabbit WebHooks,但 Webhooks 似乎不是一個可擴展的解決方案。 我正在使用 Rails 和我的 AMQP 服務器作為守護進程運行。

在 RabbitMQ 中,隊列非常便宜。 它們實際上是輕量級的 Erlang 進程,您可以在單個商品機器(即我的筆記本電腦)上運行數萬到數十萬個隊列。 當然,每個都會消耗一點 RAM,但最近未使用的隊列將hibernate ,因此它們將消耗盡可能少的 memory 。 此外,如果 Rabbit 在 memory 上的消息不足,它會將舊消息分頁到磁盤。

以上僅適用於單機。 RabbitMQ 支持一種輕量級集群形式。 當您將多個 Rabbit 節點加入集群時,每個節點都可以看到其他節點上的隊列和交換,但每個節點都只運行自己的隊列。 因此,您將能夠擁有更多隊列,(以 Erlang 集群的限制,通常是幾百個節點)因此,集群 forms 是分布在多台機器上的邏輯代理; 客戶端連接到它並通過任何節點透明地使用它。

也就是說,為每個用戶設置一個持久隊列似乎有點奇怪:在 AMQP 中,當消息在隊列中時,您無法瀏覽它們; 您只能獲取/使用將它們從隊列中取出的消息,然后將它們添加到隊列末尾的發布。 因此,您可以將 AMQP 用作消息路由器,但不能將其用作某種消息數據庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM