Producer發送的message包含兩個部分
TCP conection的建立跟關閉會花費蠻多的資源,RabbitMQ採用channel的概念,在同一條TCP connection中設立許多的channel,不同的執行緒可以藉由使用不同的channel做出訊息隔離,同時又可以共用同一條TCP connection
在RabbitMQ裡面,consumer接到message後仍需進行確認,通知queue該message已經被處理,queue才會移除該message。 此外還有一個特性,若RabbitMQ已發送訊息給consumer,該consumer沒有進行確認,則RabbitMQ不會再發訊息給該consumer直到進行確認。就使用上來說處理時間較長或需要較多資源的request,應該等到處理完畢再進行確認,避免consumer負載過高。
一般會使用到的exhange應該是direct、fanout、topic