將 Wolverine 接上 RabbitMQ - 使用 WolverineFx.RabbitMQ

  • 56
  • 0
  • C#
  • 2024-10-21

前一篇「使用 Wolverine 實作生產者-消費者模式(Producer-Consumer Pattern)」介紹了將原本使用 Channels + BackgroundService 的生產者-消費者模式改用 Wolverine  來實作。

就以現實的問題來看,如果服務是相當頻繁地被使用時,如果 MessageCreatedEventHandler 消費者的處理速度有所延遲,那麼 Channels 裡就會堆積大量的 MessageCreatedEvent 事件,一旦服務出現問題而重新啟動或是有版本更新而需要重新部署,那麼佇列在 Channels 裡的事件就會消失不見了,這可是不得了的事情。所以這篇就來用 WolverineFx.RabbitMQ,生產者將事件發送到 RabbitMQ 裡,然後消費者再去接收存放在 RabbitMQ 裡的訊息,如此的改變就是為了避免因為服務重新啟動而讓佇列在 Channels 裡的事件消失不見。

...繼續閱讀 »

使用 Wolverine 實作生產者-消費者模式(Producer-Consumer Pattern)

  • 70
  • 0
  • C#
  • 2024-10-21

之前寫了一篇「使用 Channels 與 BackgroundService 實作生產者-消費者模式(Producer-Consumer Pattern)」是使用 Channels 與 BackgroundService 來實作,而這一次就來改用 Wolverine 這個套件來試試看。

有關 Wolverine 這個套件我也看了好久,一直想拿來試試看,會想要用這個套件,主要是它是一個輕量化的工具,適合用於整合訊息佇列、事件驅動設計和後台任務處理。

而且也因為適合用於整合訊息佇列、事件驅動設計,所以支援了許多第三方服務,例如:RabbitMQ, Kafaka, MQTT, AzureServiceBux, AmazonSqs 等,所以打算之後也繼續玩玩 Wolverine。

...繼續閱讀 »