Publish/subscribe is a distributed interaction paradigm well adapted to the deployment of scalable and loosely coupled systems. Apache Kafka and RabbitMQ are two popular open-source and commercially-supported pub/sub systems that have been around for almost a decade and have seen wide adoption. Given the popularity of these two systems and the fact that both are branded as pub/sub systems, two frequently asked questions in the relevant online forums are: how do they compare against each other and which one to use? In this paper, we frame the arguments in a holistic approach by establishing a common comparison framework based on the core functionalities of pub/sub systems. Using this framework, we then venture into a qualitative and quantitative (i.e. empirical) comparison of the common features of the two systems. Additionally, we also highlight the distinct features that each of these systems has. After enumerating a set of use cases that are best suited for RabbitMQ or Kafka, we try to guide the reader through a determination table to choose the best architecture given his/her particular set of requirements.
翻译:Apache Kafka和RabitMQ是两个受欢迎的开放源码和商业上支持的酒吧/子系统,这些系统已经存在近十年,并被广泛采用。鉴于这两个系统的流行性以及这两个系统都被称为酒吧/子系统这一事实,在相关在线论坛上经常问到的两个问题是:它们如何相互比较,哪些可以使用?在本文件中,我们以整体方式界定这些论点,根据酒吧/子系统的核心功能建立一个共同的比较框架。然后,我们利用这个框架,对两种系统的共同特征进行定性和定量(即经验)比较。此外,我们还强调这些系统各自的不同特点。在列举最适合RabitMQ或Kafka的一组使用案例后,我们试图通过确定表来指导读者选择符合其具体要求的最佳结构。