百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

继续比较Kafka和RabbitMQ的区别

bigegpt 2025-02-28 14:58 28 浏览

上次我们在文章《如何在Kafka和RabbitMQ之间做出选择》中对Kafka和RabbitMQ做了对比。今天我们继续他们之间的比较。


监控 Monitoring

你可以从Web浏览器监视和操纵RabbitMQ服务器。同时,还可以在浏览器中处理(创建,删除和查看)队列queue,连接connections,通道channels,交换exchanges,用户users和用户权限user permissions。还可以监视消息的速率,手动地发送/接收消息。

对于Kafka,有许多用于监视的开源工具,还有一些商业工具,它们提供管理和监视功能。

Burrow是Apache Kafka的监视工具,由Linkedin提供。它可以监视所有消费者consumer的offset。可以通过发送http请求获得集群的状态和信息。还可以发送电子邮件或调用HTTP请求向其他服务发送状态。

Kafdrop是用于监视Apache Kafka集群的UI。可以显示比如broker,主题topic,分区partition之类的信息,甚至可以查看消息message。它是一个轻量级的应用程序,可以在Spring Boot上运行,并且只需要很少的配置。

推送PUSH还是拉取PULL

RabbitMQ推送消息到消费者consumer。需要特别注意prefetch的限制limit的配置,以防止消费者consumer处理不过来(如果消息推送到消费者队列的速度比消费者处理它们的速度快,消费者就会处理不过来)。消费者也可以从RabbitMQ拉取消息,但不建议这样做。

Kafka使用拉取消息的PULL模型,消费者从给定偏移量offset中批量地拉取消息。可以自己控制拉取和处理的速度。

许可证 License 都是 免费的

RabbitMQ使用Mozilla Public License。Apache Kafka受Apache 2.0许可证的保护。这两个许可证都是免费的开源软件许可证。

复杂度 Complexity

相对来说Kafka的复杂度更高一些。处理Kafka中的故障要复杂一些。修复某些问题的过程通常比较耗时,而且更加复杂。Kafka 有一个生态系统 Ecosystem。比如Kafka Connect可以用来把其他系统与Kafka集成。使用Kafka Connect可以做很多事情,而且已经有很多现成的连接器Kafka Connect可用,因此上手起来很容易。

RabbitMQ的使用场景 Use Cases

通常,如果你想要一个简单的,传统的发布/订阅消息代理,并且不需要消息存储,和流式处理(streaming),可以选择RabbitMQ。

长期运行的任务 Long run tasks

比如你的网页Web应用程序允许用户将信息传到网站。网站后台服务器处理此信息,生成PDF,然后将其通过电子邮件发送给用户。这里生成PDF,发送邮件都可以通过一个专门的系统,异步地处理。不用等这些都完成才给用户同步的返回。你可以在网站的后台程序发送消息到PDF处理程序,之后就返回给用户:“收到您信息了,稍后发出确认邮件”。这里网站的后台服务器和文件处理服务器都是长期运行的程序。

微服务架构中的中间人

RabbitMQ还被用于微服务体系结构。各个微服务可以利用RabbitMQ进行通信。同步变异步。

Kafka的使用场景 Use Cases

通常,如果你想要支持存储,重新读取和流数据分析的框架,可以使用Apache Kafka。

数据分析Data Analysis:跟踪tracking,日志logging,安全security

在所有这些情况下,都需要收集,存储和处理大量数据。Kafka刚开始设计出来就是LinkedIn用来做用户行为分析的,包括用户的页面浏览,搜索,上传或其他操作。这需要极高的吞吐量。Kafka的集群的吞吐量可以达到百万级别,甚至更高。

Kafka可用于将大量信息流式传输到存储系统,硬盘空间目前来说比较便宜。

实时处理 realtime processing

Kafka支持实时处理,并且有超高吞吐量。比如金融IT系统监视股票数据,可以有很多消息生产者producer。

我分享了一些了的动画演示视频,解释Kafka的工作原理。欢迎观看。




本人,@小马过河Vizit,专注于分布式系统原理和实践分享。希望利用动画生动而又准确地演示抽象的原理。

关于我的名字。小马过河Vizit,意为凡事像小马过河一样,需要自己亲自尝试、探索才能获得乐趣和新知。Vizit是指Visualize it的缩写。一图胜千言,希望可以利用动画来可视化抽象的原理。

欢迎关注,点赞! 谢谢支持。

相关推荐

Linux 系统启动完整流程

一、启动系统流程简介如上图,简述系统启动的大概流程:1:硬件引导UEFi或BIOS初始化,运行POST开机自检2:grub2引导阶段系统固件会从MBR中读取启动加载器,然后将控制权交给启动加载器GRU...

超专业解析!10分钟带你搞懂Linux中直接I/O原理

我们先看一张图:这张图大体上描述了Linux系统上,应用程序对磁盘上的文件进行读写时,从上到下经历了哪些事情。这篇文章就以这张图为基础,介绍Linux在I/O上做了哪些事情。文件系统什么是...

linux入门系列12--磁盘管理之分区、格式化与挂载

前面系列文章讲解了VI编辑器、常用命令、防火墙及网络服务管理,本篇将讲解磁盘管理相关知识。本文将会介绍大量的Linux命令,其中有一部分在“linux入门系列5--新手必会的linux命令”一文中已经...

Linux环境下如何设置多个交叉编译工具链?

常见的Linux操作系统都可以通过包管理器安装交叉编译工具链,比如Ubuntu环境下使用如下命令安装gcc交叉编译器:sudoapt-getinstallgcc-arm-linux-gnueab...

可算是有文章,把Linux零拷贝技术讲透彻了

阅读本文大概需要6.0分钟。作者:卡巴拉的树链接:https://dwz.cn/BaQWWtmh本文探讨Linux中主要的几种零拷贝技术以及零拷贝技术适用的场景。为了迅速建立起零拷贝的概念...

linux软链接的创建、删除和更新

大家都知道,有的时候,我们为了省下空间,都会使用链接的方式来进行引用操作。同样的,在系统级别也有。在Windows系列中,我们称其为快捷方式,在Linux中我们称其为链接(基本上都差不多了,其中可能...

Linux 中最容易被黑客动手脚的关键目录

在Linux系统中,黑客攻击后常会针对关键目录和文件进行修改以实现持久化、提权或隐藏恶意活动。本文介绍下黑客最常修改的目录及其手法。一、/etc目录关键文件有:/etc/passwd和/et...

linux之间传文件命令之Rsync傻瓜式教程

1.前言linux之间传文件命令用什么命令?本文介绍一种最常用,也是功能强大的文件同步和传输工具Rsync,本文提供详细傻瓜式教程。在本教程中,我们将通过实际使用案例和最常见的rsync选项的详细说...

Linux下删除目录符号链接的方法

技术背景在Linux系统中,符号链接(symlink)是一种特殊的文件,它指向另一个文件或目录。有时候,我们可能需要删除符号链接,但保留其指向的目标目录。然而,在删除符号链接时可能会遇到一些问题,例如...

阿里云国际站注册教程:aa云服务器怎么远程链接?

在全球化的今天,互联网带给我们无以计数的便利,而云服务器则是其中的重要基础设施之一。这篇文章将围绕阿里云国际站注册、aa云服务器如何远程链接,以及服务器安全防护如Ddos防火墙、网站应用防护waf防火...

Linux 5.16 网络子系统大范围升级 多个新适配器驱动加入

Linux在数据中心中占主导地位,因此每个内核升级周期的网络子系统变化仍然相当活跃。Linux5.16也不例外,周一最新与网络相关的更新加入了大量的驱动和新规范的支持。一个较新硬件的驱动是Realt...

搭建局域网文件共享服务(Samba),手机电脑都能看喜欢的影视剧

作为一名影视爱好者,为了方便地观看自己喜欢的影视作品,在家里搞一个专门用来存放电影的服务器是有必要的。蚁哥选则用一台Ubuntu系统的电脑做为服务器,共享影音文件,其他同一个局域网内的电脑或手机可以...

分享一个实用脚本—centos7系统巡检

概述这周闲得慌,就根据需求写了差不多20个脚本(部分是之前分享过的做了一些改进),今天主要分享一个给平时运维人员用的centos7系统巡检的脚本,或者排查问题检查系统情况也可以用..实用脚本#!/bi...

Linux 中创建符号链接的方法

技术背景在Linux系统里,符号链接(SymbolicLink),也被叫做软链接(SoftLink),是一种特殊的文件,它指向另一个文件或者目录。符号链接为文件和目录的管理带来了极大的便利,比...

一文掌握 Linux 符号链接

符号链接(SymbolicLink),通常被称为“软链接”,是Linux文件系统中一种强大而灵活的工具。它允许用户创建指向文件或目录的“快捷方式”,不仅简化了文件管理,还在系统配置、软件开发和日...