rocketMQ介绍

作用

  • 流量削峰
  • 系统解耦

功能

  • 普通消息
    • 同步消息
    • 异步消息
  • 事务消息
  • 顺序消息
  • 延迟消息
  • 订阅与发布
  • 消息过滤
  • 消息消费重试
  • 死信队列
  • ......

架构设计

  • 1个broker是1台实例
  • 每个broker都有从节点,便于做故障转移
  • 每个broker对应一个文件,存储数据?还是会根据topic分开放置?
  • 每个broker都有topic对应的queue(topic是虚拟的,代表一组queue,消息到达后会根据规则存储到某个broker的queue中)
  • broker模型设计的优点:
    • 数据均匀分布
    • 同一个group多个消费者连接不同的broker的queue,能消费同一个topic下的数据,提高了消费端的能力
  •  nameServer 相当于eureka,nacos,zookeeper 做注册中心
  • nameServer多节点部署提高可用性

重要属性介绍

topic

        逻辑上消息存储的位置,一个topic表示一组queue。topic对外概念

queue

        实际上消息存储的位置。queue是为了提高性,做的存储设计

        优点:容灾,防止数据倾斜

tag

        消息过滤使用,比如同一个topic下的消息,在同一个queue队列中,有订单类型、商品类型2种消息,依据tag区分,mq推送前会根据consumer订阅的tag过滤

      优点:避免了无效的数据传输(如:订单consumer不用接收同一个queue种的商品消息)

  ps:阿里云rocketMQ会根据topic数量收费(4.0版本),所以可能会有2种业务共用topic情景

group

        应用所属的组,同一组应用,消息只会发送到一个应用

        消费消息时,同一组应用,同一个queue,只会有1个消费者连接(保证消息不会发送到同组下的多个消费者)

问题

为什么不设计成1个broker,1个从节点,然后通过故障转移做高可用?

  1. 1个broker发生问题产生的影响更大(3台broker坏1个,相当于只坏了1/3)

  2. 1个broker节点负载能力是一个问题

  3. 如果没有queue,数据根据topic值,通过hash存到同一个broker,会导致数据倾斜

与kafka的对比

rocketMQkafka
高可用支持10w/s100w/s
可用性product支持同步消息+异步消息异步消息rocketMQ更加可靠
扩展性支持5W级的queue(一个topic在一个broker就有1个queue)queue到达64后,性能下降
功能全面性支持普通消息、顺序消息、事务消息、延迟消息等

仅支持普通消息

支持幂等性过滤重复消息

适用场景业务日志

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

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

相关文章

PPOCRv3检测模型和识别模型的训练和推理

PPOCRv3检测模型和识别模型的训练和推理 文章目录 PPOCRv3检测模型和识别模型的训练和推理前言一、环境安装1,官方推荐环境:2,本机GPU环境 二、Conda虚拟环境1.Win10安装Anaconda32.使用conda创建虚拟环境 三、安装PPOCR环境1,安装…

数据可视化免费化的双面影响探析

近年来数据可视化的免费化也越来越明显,今天就以我作为可视化设计师的经验来和大家分析一下,数据可视化工具免费化所带来的利与弊。 先从好处入手,最明显的就是免费化可以让数据可视化工具得到更广泛的使用。 免费数据可视化工具使得更多人可…

生命在于折腾——使用PD打开OVA格式虚拟机

一、前言 下载了一个封装的工具箱虚拟机,格式是OVA的,PD无法直接打开,之前成功转换后打开过,但那时候没有记录,今天记录一下。 二、过程 有两种方法 1、去vmware官网下载工具VMware OVF Tool 地址:htt…

代码随想录算法训练营第四十二天 _ 动态规划_01背包问题、416.分割等和子集。

学习目标: 动态规划五部曲: ① 确定dp[i]的含义 ② 求递推公式 ③ dp数组如何初始化 ④ 确定遍历顺序 ⑤ 打印递归数组 ---- 调试 引用自代码随想录! 60天训练营打卡计划! 学习内容: 二维数组处理01背包问题 听起来…

大屏图表汇总echarts圆环

圆环效果示例 代码如下 storageStaChart() {let color [#009976,#15E6B5]let charts echarts.init(document.getElementById(storageStaChart));let option this.getPieOption(color);charts.setOption(option, true);}, getPieOption(color) {let data [];data.push({val…

Java高级技术-单元测试

单元测试 Junit单元测试框架 Junit单元测试-快速入门 方法类 测试类 Junit框架的基本注解

[Geek Challenge 2023] web题解

文章目录 EzHttpunsignn00b_Uploadeasy_phpEzRceezpythonezrfi EzHttp 按照提示POST传参 发现密码错误 F12找到hint,提示./robots.txt 访问一下,得到密码 然后就是http请求的基础知识 抓包修改 最后就是 我们直接添加请求头O2TAKUXX: GiveMeFlag 得到…

FPGA高端项目:UltraScale GTH + SDI 视频编解码,SDI无缓存回环输出,提供2套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的 GT 高速接口解决方案我目前已有的SDI编解码方案 3、详细设计方案设计框图3G-SDI摄像头LMH0384均衡EQUltraScale GTH 的SDI模式应用UltraScale GTH 基本结构参考时钟的选择和分配UltraScale GTH 发送和接收处理流程UltraScale…

kali linux使用Proxmark3

其实kali linux下已经集成了Proxmark3命令,但是由于Proxmark3是开源设备,有时候系统默认安装的版本并不能很好的使用,因此需要手动编译最新的版本。 step 1 准备Proxmark3编译环境,因为kali linux比较激进,很多老旧的…

这书看着贼得劲儿

作者呕心沥血2年,再出力作~~~ 给大家推荐一本好玩的书 神经网络与TensorFlow 本来以为出版了第一本书,应该对于漫长的审核有免疫力了,结果又被这本书折磨了2年。于是作者痛定思痛,决定第三本书写一本纯科普的书籍。 墙裂推荐 这…

电力智慧运维系统

电力智慧运维系统是以提高用户侧电力运行安全,降低运维成本为目标;采用智能化运维管理工具—“电易云”,帮助企业建立电力运维体系全方位的信息化、数字化平台,实现设备运行的数字化在线监控与线下维护处理的有机融合,…

没错,数据库确实应该放入 K8s 里!

昨天冯老板发了一篇文章探讨了为什么将数据库放入 K8S 中不是一个明智的选择。 如果是四年前有人质疑容器化数据库我觉得还可以 battle 一下,都 2023 年了还有人不能认清这个大势,我就有必要来谈谈我的看法了。 我从 K8s 0.9 版本时就开始做这件事&…

离线环境下安装微软Visual Studio 2022 生成工具

1. 前言 最近,在学习cython的时候,需要安装windows下的C/C编译、链接工具。开始觉得传统的msvc太大了,想要尝试Mingw,但是都是编译错误。无奈之下,还是要安装msvc。 微软提供了Visual Studio 2022 Build Tools &…

多线程基础

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 多线程向来是面试的重灾…

小中大女童穿搭 I 时尚百搭保暖性超赞

杜邦三防面料+超足充绒量 金属拉链+金属按扣+松紧下摆 可以说是将细节做到实处 防风保暖潮nice 经典宽松版型对身材包容性很强 后背和口袋两侧都做了 可调节抽绳,不会显得臃肿 很简单大方,搭配卫裤牛仔裤都好看…

推荐几款转换视频格式的好用转换工具,小白也能上手

视频格式转换工具是一种专门转换视频的软件,可让你将一种视频格式转换为另一种视频格式(例如,MOV 到 MP4),通常可以节省空间。 本文将介绍一些用于转换视频格式的好用转换工具,并且详细描述了它们的主要功…

快速安装Axure RP Extension for Chrome插件

打开原型文件的html,会跳转到这个页面,怎么破? 我们点开产品设计的原型图如果没有下载Axure插件是打不开,而我们国内网通常又不能再google商店搜索对应插件,下面教大家如何快速安装 1、打开原型文件->resources-&g…

SQL Server 数据库,创建触发器避免数据被更改

5.4触发器 触发器是一种特殊类型的存储过程,当表中的数据发生更新时将自动调用,以响应INSERT、 UPDATE 或DELETE 语句。 5.4.1什么是触发器 1.触发器的概念 触发器是在对表进行插入、更新或删除操作时自动执行的存储过程,触发器通常用于强…

软件系统应用开发安全指南

2.1.应用系统架构安全设计要求 2.2.应用系统软件功能安全设计要求 2.3.应用系统存储安全设计要求 2.4.应用系统通讯安全设计要求 2.5.应用系统数据库安全设计要求 2.6.应用系统数据安全设计要求 全资料获取进主页。

微信小程序 -订阅发布模式

图形展示: 代码展示: 1. 安装模块 pubsub-js npm i pubsub-js --save 2. 导入模块(在需要订阅发布的 js 页面内进行导入) import PubSub from pubsub-js 注:在微信小程序中无法直接npm 下载 导入 的(安…