Understanding When to use RabbitMQ or Apache Kafka https://content.pivotal.io/rabbitmq/understanding-when-to-use-rabbitmq-or-apache-kafka
Performance
Kafka shines here by design: 100k/sec performance is often a key driver for people choosing Apache Kafka.
Of course, message per second rates are tricky to state and quantify since they depend on so much including your environment and hardware, the nature of your workload, which delivery guarantees are used (e.g. persistent is costly, mirroring even more so), etc.
20K messages per second is easy to push through a single Rabbit queue, indeed rather more than that isn't hard, with not much demanded in the way of guarantees. The queue is backed by a single Erlang lightweight thread that gets cooperatively scheduled on a pool of native OS threads - so it becomes a natural choke point or bottleneck as a single queue is never going to do more work than it can get CPU cycles to work in.
Increasing the messages per second often comes down to properly exploiting the parallelism available in one's environment by doing such things as breaking traffic across multiple queues via clever routing (so that different queues can be running concurrently). When RabbitMQ achieved 1 million message per second , this use case basically came down entirely to doing that judiciously - but was achieved using lot of resources, around 30 RabbitMQ nodes. Most RabbitMQ users enjoy excellent performance with clusters made up of anywhere from three to seven RabbitMQ nodes.
消息系统-kafka之一 系统简介 - CSDN博客 https://blog.csdn.net/gongzhiyao3739124/article/details/79617822
消息系统kafka之二 kafka的HA(高可用) - CSDN博客 https://blog.csdn.net/gongzhiyao3739124/article/details/79688813