Message Queues 概覽
常見的 Message Queue 系統:
- RabbitMQ
- Kafka
- NATS / JetStream
佇列類型

Simple FIFO Queue
First In First Out(先進先出)。
一個新元素會被插入到隊列的尾部,並從隊列的頭部移除元素。如果我們希望在接收到付款回應時發送電子郵件通知用戶,可以使用 FIFO 隊列。電子郵件將按照付款回應的順序依次發送。
Circular Queue
也稱為 Circular Buffer 或 Ring Buffer。
範例:Java - Log4j
它的最後一個元素連接到第一個元素。插入操作發生在隊列的前端,而刪除操作則在隊列的末端。一個著名的實現是 LMAX 的低延遲環形緩衝區。交易組件通過環形緩衝區進行通信,這是內存中的實現,速度非常快。
Priority Queue
元素具有預定義的優先級。
我們從隊列中取出最高(或最低)優先級的元素。在底層實現中,通常使用最大堆或最小堆,其中具有最高或最低優先級的元素位於堆(Heap)的根部。
Deque
也稱為 Double-ended Queue(雙端佇列)。
插入和刪除操作可以同時在隊列的頭部和尾部進行,同時支持 FIFO 和 LIFO(後進先出)。