消息队列选型(RabbitMq、RocketMq、Kafaka)

文章目录

  • 前言
  • RabbitMq
    • 优点
    • 缺点
  • RocketMq
    • 优点
    • 缺点
  • Kafaka
    • 优点
    • 缺点
  • 总结

前言

当引入消息队列时,常见的选择包括ActiveMQ、Kafka、RabbitMQ和RocketMQ。然而,近年来,ActiveMQ的活跃度已经下降,很多公司已经不再使用这款消息队列中间件,因此在比较中不再涉及该产品。

RabbitMq

前些年使用最多的一定是RabbitMq了,直到现在被使用的频率还是很高的。
在这里插入图片描述

优点

1.可靠性高:提供强大的消息传递机制,支持消息确认、持久化等特性,确保消息可靠传递。

2.支持多种消息传递模式,如点对点、发布/订阅等,适应不同的场景需求。支持消息重试、死信队列等

3.提供了直观的管理界面,方便监控和管理队列、交换机、连接等信息。

缺点

1.吞吐量比较低,对于大型电商促销秒杀就无法胜任。

2.开发语言是erlang,懂得人不是很多,改造成本较高。

3.配置和使用相对复杂,需要理解其消息模型和特性,有一定学习曲线。

RocketMq

再说说RocketMq,近几年使用Mq中间件的香饽饽
在这里插入图片描述

优点

1、单机吞吐量十万级,可用性非常高,分布式架构;

2、经过参数优化配置,消息可以做到0丢失,RocketMQ 的所有消息都是持久化的,先写入系统 PAGECACHE,然后刷盘,可以保证内存与磁盘都有一份数据;

3、支持10亿级别的消息堆积,不会因为堆积导致性能下降;

4、源码是java,便于二次开发。

缺点

1、RocketMQ 的部署和配置相对复杂,需要理解其架构和各种配置参数,对于初学者有一定的学习曲线。

2、如果消息的消费速度远低于生产速度,可能会导致消息堆积,需要合理配置流量控制策略来避免系统故障。

Kafaka

kafka其实一般大数据相关的开发使用的比较多,很多时候kafka会用来做收集日志
在这里插入图片描述

优点

1.Kafka的最大优势是高吞吐量和低延迟,Kafka 能够处理大规模的消息并保持较低的延迟,适用于对消息处理速度有要求的场景。

2.Kafka 支持多种消息模型,包括发布/订阅、批量消费、流式处理等,适用于不同的业务场景。

  1. Kafka 提供了消息持久化机制,消息被写入磁盘并复制到多个节点,保证了消息的持久性和可靠性。

缺点

1.依赖ZooKeeper: Kafka 需要依赖 ZooKeeper 来进行节点管理和协调,增加了系统的复杂性和维护成本。

2.Kafka 的部署和配置相对复杂,需要理解其架构和各种配置参数,对于初学者有一定的学习曲线。

3.Kafka 保证了分区内消息的顺序性,但在分区间无法保证全局顺序,需要开发者自行处理消息的顺序性。

4.Kafka 将所有消息都持久化到磁盘上,可能会占用大量的硬盘资源,需要合理规划硬盘空间。

总结

其实如果一般来说你业务使用mq,对消息的安全性要求较高,选择RocketMq;

如果对于一些使用mq数据量比较大的场景,比如日志相关的,对消息的丢失要求不高的情况下,选择kafaka。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/1794.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wangEditor集成Word导入(富文本编辑器)

wangEditor集成Word导入(富文本编辑器),wangEditor – 支持word上传的富文本编辑器,WANGEDITOR实现WORD图片自动转存,JAVA中将WORD转换为HTML导入到WANGEDITOR编辑器中(解决图片问题,样式,非常完美&#xf…

视频怎么做成二维码分享?微信扫码播放视频的操作技巧

随着互联网的快速发展,现在大家喜欢通过扫描二维码的方式来获取信息,比如现在通过扫码看视频就是很常见的一种方式。生成二维码的方式可以实现内容传递的简单化,而且可以有效的降低制作者的成本,提升用户的体验效果。 现在使用比…

【matlab 代码的python复现】 Matlab实现的滤波器设计实现与Python 的库函数相同实现Scipy

实现一个IIR滤波器的设计 背景 Matlab 设计的滤波器通常封装过于完整,虽然在DSP中能够实现更多功能的滤波器设计但是很难实现Python端口的实现。 我们以一段原始的生物电信号EEG信号进行处理。 EEG信号 1.信号获取 EEG信号通常通过头皮电极,经过多通道采样芯片采样,将获…

解决: 0x803f7001 在运行Microsoft Windows 非核心版本的计算机上,运行“ slui.exe 0x2a 0x803f7001 “以显示错误文本,激活win10步骤流程。

一. 解决 0x803F7001在运行Microsoft Windows非核心版本的计算机错误 首先,按下winR打开"运行",输入 regedit 后回车,打开注册表。   然后再注册表下输入地址HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProt…

代码随想录算法训练营DAY28|C++回溯算法Part.4|93.复原IP地址、78.子集、90.子集II

文章目录 93.复原IP地址思路确定非法的范围树形结构 伪代码 78.子集思路伪代码实现CPP代码 90.子集II思路CPP代码用used去重的办法用set去重的版本不使用used数组、set的版本 93.复原IP地址 力扣题目链接 文章讲解:93.复原IP地址 视频讲解:回溯算法如何分…

docker容器技术篇:安装与配置flannel

Docker安装与配置flannel flannel是什么? Flannel是CoreOS团队针对Kubernetes设计的一个网络规划服务,简单来说,它的功能是让集群中的不同节点主机创建的Docker容器都具有全集群唯一的虚拟IP地址;通俗的将就是通过flannel接管dock…

粤嵌—2024/4/22—两数之和 || - 输入有序数组

代码实现: 双指针 /*** Note: The returned array must be malloced, assume caller calls free().*/ int* twoSum(int *numbers, int numbersSize, int target, int *returnSize) {int *res malloc(sizeof(int) * 2);*returnSize 2;int i 0, j numbersSize - 1…

C++学习进阶版(二):与文件相关的函数用法

目录 1、读取文件的指定行 (1)main函数中直接读 (2)封装成函数 ① 无返回值类型 ② 直接返回读取的内容 2、求文件的行数 3、文件内容读取成一个字符串 1、读取文件的指定行 (1)main函数中直接读 …

如何选择全链路监控系统?CAT、SkyWalking、Pinpoint哪个更适合?

如果服务器上没有应用还会造成硬件瓶颈吗?显然是不会的,呈现出来的硬件瓶颈绝大多数是表象问题,我们往往需要在系统应用上寻找问题的根因。而寻找系统问题的根因,对于系统链路监控也是必不可少的, 前面我们也写了几篇…

光伏无人机吊装技术的优势及应用前景

近年来随着政府对光伏业务的不断宣传和推进,不少区域因地制宜引进了光伏发电项目,但是部分区域由于交通不便利,给材料运输工作带来了巨大的考验。目前,无人机吊装技术运输材料解决这一问题。 今天带大家看下光伏无人机吊装技术有…

STM32G030F6P6TR ST意法

STM32G030F6P6TR是ST(意法半导体)一款基于高性能ArmCortex-M032位RISC内核,工作频率高达64MHz的32位MCU微控制器。代理销售ST(意法半导体)全系列IC电子元器件-中芯巨能为您提供STM32G030F6P6TR(ST 32位MCU)引脚图及中文参数介绍等内容。 STM32G030F6P6TR的中文参数 …

Linux进程和任务管理

目录 一.程序和进程的关系 程序 进程 线程 线程与进程的区别 二.查看进程信息ps 方法一 常用选项 方法二 三.TOP动态查看进程信息 进程信息区各列解释 top常用命令 系统查看命令总结 查看进程信息pgrep 查看进程树pstree 四.控制进程 进程的启动方式 进程的前…

Java面试八股之重写一个对象的equals方法,需要考虑哪些问题

重写一个对象的equals方法,需要考虑哪些问题 遵守equals()约定: 重写equals()方法应遵循Object类中定义的equals()方法约定,即实现自反性(x.equals(x)始终为true)、对称性(若x.equals(y)为true&#xff0…

【电控笔记5.5】psms规格参数

规格参数 转矩常数Kt与反电动势常数Ke Kt:没安培电流产生多少转矩量 Ke或Kb:每单位转速产生的反电动势电压 反电动势是梯形波,Kt=Ke;正弦波则不相等 q轴电流与反电动势都领先转子磁通链90

谷粒商城学习笔记

1.系统架构 2.环境准备 21.安装Linux 1.VirtualBox: https://download.virtualbox.org/virtualbox/6.0.10/VirtualBox-6.0.10-132072-Win.exe 2.安装 Vagrant 1).Vagrant 下载地址: https://releases.hashicorp.com/vagrant/2.2.5/vagrant_2.2.5_x86_64.msi https://www…

7.Prism框架之对话框服务

文章目录 一. 目标二. 技能介绍① 什么是Dialog?② Prism中Dialog的实现方式③ Dialog使用案例一 (修改器)④ Dialog使用案例2(异常显示窗口) 一. 目标 1. 什么是Dialog?2. 传统的Dialog如何实现?3. Prism中Dialog实现方式4. 使用Dialog实现一个异常信息弹出框 二. 技能介…

Proxyman Premium for Mac:网络调试利器,开发者首选!

Proxyman Premium for Mac是一款功能强大的网络调试和分析工具,专为开发者和测试人员打造。这款软件以其出色的性能和丰富的功能,帮助用户在网络开发和调试过程中更有效地分析和拦截网络请求,进行必要的修改和重发,从而进行更深度…

【Linux基础】Linux基础概念

目录 前言 浅谈什么是文件? Linux下目录结构的认识及路径 目录结构 路径 家目录 什么是递归式的删除 重定向 输出重定向: 追加重定向: 输入重定向: 命令行管道 shell外壳 为什么需要shell外壳? shell外壳…

使用FPGA实现超前进位加法器

介绍 前面已经向大家介绍过8位逐位进位加法器了,今天向大家介绍4位超前进位加法器。 对于逐位进位加法器来说,计算任意一位的加法运算时,必须等到低位的加法运算结束送来进位才能运行。这种加法器结构简单,但是运算慢。 对于超…

NFT卡牌质押分红模式开发技术讲解分析

近年来,随着加密货币市场的快速发展,NFT(Non-Fungible Token,非同质化代币)作为一种独特的数字资产形式备受关注。其中,NFT卡牌质押分红模式是一种创新的应用场景,为用户提供了一种参与和投资的…