我正在構建一個系統,兩個不同的實體需要處理來自同一個源的消息(以不同的方式 - 例如,一個會記錄所有消息,而另一個實體可能需要聚合數據)。理想情況下,每個實體對於性能和彈性都是完全可擴展的,因此我們有多個發佈者,多個日誌訂閱者和多個聚合訂閱者,但每個發佈的每個消息仍然由一個日誌訂閱者和一個聚合訂閱者處理。NATS發佈者可以將單個消息發送到多個隊列嗎?
通過AMQP,我們可以通過發佈到扇出交換機來實現此目的,該交換機將消息分發到兩個隊列,其中每個隊列擁有多個訂閱者。我明白,通過簡單地讓所有訂閱者在相同的「主題」上使用兩個不同的「隊列組名」基於他們的角色來監聽,NATS可以實現相同的行爲。
在這種情況下,到主題的消息將從每個隊列組傳送到一個用戶,即每個消息將被準確傳送n次,n是不同隊列組的數量,而不是用戶數量。它是否正確?
你是說,如果一個用戶崩潰,我們會丟失數據? – Guss
如果訂戶脫機,那麼nats服務器會在某個超時後知道此事件,在此超時期間,我們的情況可能會丟失數據。 – ritesh4302