RabbitMQ:通常在分布式系统应用中使用,作为消息队列处理方案。(消息吞吐量相对较小,数据完整性高)
kafka:大数据架构,通常在大数据应用中使用,作为消息队列处理方案。(消息吞吐量大,数据完整性相对较低)
实际场景选择:
在实际生产应用中,通常会使用kafka作为消息传输的数据管道,rabbitmq作为交易数据的数据传输管道,主要的取舍因素则是是否存在丢数据的可能;rabbitmq在金融场景中经常使用,具有较高的严谨性,数据丢失的可能性更小,同时具备更高的实时性;而kafka优势主要体现在吞吐量上,虽然可以通过策略实现数据不丢失,但从严谨性角度来讲,大不如rabbitmq;而且由于kafka保证每条消息最少送达一次,有较小的概率会出现数据重复发送的情况;