Kafka是嚴格保證了消息隊列的順序,就是一個topic下面的一個分區內只能給一個消費者消費,對於一個分區來說,kafka是不支持並發,但是可以通過擴大分區實現並發
Rabbitmq 不承諾消息的順序性,因此可以並發多線程處理。在隊列中不必排隊。如果對處理的順序沒有要求,就可以用Rabbitmq教容易的實現並發。
在實際生產應用中,通常會使用kafka作為消息傳輸的數據管道,rabbitmq作為交易數據作為數據傳輸管道。
主要的取舍因素則是是否存在丟數據的可能;rabbitmq在金融場景中經常使用,具有較高的嚴謹性,數據丟失的可能性更小,同事具備更高的實時性;而kafka優勢主要體現在吞吐量上,雖然可以通過策略實現數據不丟失,但從嚴謹性角度來講,大不如rabbitmq;而且由於kafka保證每條消息最少送達一次,有較小的概率會出現數據重復發送的情況。
https://blog.csdn.net/myhes/article/details/83247108