kafka和mq的區别如下:
1、在架構模型方面,RabbitMQ遵循AMQP協議,RabbitMQ的broker由Exchange,Binding,queue組成,其中exchange和binding組成消息的路由鍵。客戶端Producer通過連接channel和server進行通信,Consumer從queue獲取消息進行消費。rabbitMQ以broker為中心。有消息的确認機制。
2、rabbitMQ在吞吐量方面稍遜于kafka,它們的出發點不一樣,rabbitMQ支持對消息的可靠的傳遞,支持事務,不支持批量的操作。基于存儲的可靠性的要求存儲可以采用内存或者硬盤。kafka具有高的吞吐量,内部采用消息的批量處理,zerocopy機制,數據的存儲和獲取是本地磁盤順序批量操作,具有O的複雜度,消息處理的效率很高。
3、在可用性方面,rabbitMQ支持miror的queue,主queue失效,miror queue接管。kafka的broker支持主備模式。