一.RocketMQ极简入门-MQ概述&RocketMQ安装
代码
1418 人阅读
|
0 人回复
|
<
媒介
近来挺闲的,好久出更新文章了,近来正在弄RocketMQ,那便先收面那个,Netty的文章等我空了再持续更。
一.MQ概述
1.MQ是甚么
MQ齐称为Message Queue,即动静行列 ,是一种供给动静行列效劳的中心件,也称为动静中心件,是一套供给了动静死 产、存储、消耗齐历程的硬件体系,遵照FIFO准绳。正在下并收的散布式体系中利用占多数。
2.为何用MQ
为何要利用MQ, 我从糊口中发明的一个例子去举例阐明,即:天府通刷天铁出站的时分没有是坐马扣费,而是提醒“出站成功,用度将会正在稍后结算”, 我们假定天府通背景扣费流程以下:
【留意】假如天府通出站API 战 付出体系 是差别的子体系 (两个子体系长途通讯)
高低班顶峰期利用天府通刷码的人十分多,意味着并收量很下,一个出站恳求到背景需求做用度结算,大概积分赠予等营业。因为并收很下,并且用度结算战积分等营业本来便耗时,何况付出效劳也纷歧定能负担那末年夜的恳求量。
当效劳器线程耗尽,后绝恳求会等候变缓,再减上下并收恳求便会招致后绝恳求愈来愈缓,恳求少工夫等候,招致大批恳求超时。并收太下,能够会招致效劳器的内乱存上降,CPU利用率缓慢上降,以至招致效劳器宕失落。
处理计划:利用MQ消峰,让恳求正在MQ中列队,结果以下
参加MQ后的结果
- 下并收恳求正在MQ中列队,到达了消弭峰值的目标,没有会有大批的恳求同时怼到付出体系
- 效劳同步伐用,“天府通出站API” 把结算动静放进MQ就能够返回“出站成功,用度稍后结算”给用户,呼应工夫很快
- 效劳完全解耦,即使付出效劳挂失落,也没有影响“天府通出站API”一般事情,当付出体系再启动仍旧能够持续消耗MQ中的动静。
3.MQ的利用场景
- 限流削峰
MQ能够将体系的超量恳求久存此中,以便体系前期能够渐渐举办处理,从而制止了恳求的丧失或体系 被压垮。
- 效劳解耦
上游体系对下流体系的挪用若为同步伐用,则会年夜年夜低落体系的吞吐量取并收度,且体系耦开度太下。 而同步伐用则会处理那些成绩。以是两层之间若要完成由同步到同步的转化,普通性做法便是,正在那两层间增加一个MQ层。 即使消耗者挂失落也没有影响消费者事情,只需把动静放进行列便可,消耗者重启后本人消耗便可。
- 数据搜集
经由过程MQ完成数据的搜集,如:营业日记、监控数据、用户举动等
- 年夜数据处理
好比我们的仄台背“三圆仄台”获得数据,一次恳求了大批数据返来要举办处理,因为数据较多处理不外去,那末就能够放进MQ,再创立一些消耗者举办数据处理便可。
4.常睹的MQ产物
- ActiveMQ
ActiveMQ是利用Java言语开辟一款MQ产物。晚期很多公司取项目中皆正在利用。但如今的社区生动度曾经很低。如今的项目中曾经很少利用了。
- RabbitMQ
RabbitMQ是利用ErLang言语开辟的一款MQ产物,机能仍是挺下的。可是其吞吐量较Kafka取RocketMQ要低,且因为其没有是 Java言语开辟,以是公司内乱部对实在现定造化开辟易度较年夜。
- Kafka
Kafka是利用Scala/Java言语开辟的一款MQ产物。其最年夜的特性便是下吞吐率,经常使用于年夜数据范畴的真 时计较、日记收罗等场景。其出有遵照任何常睹的MQ和谈,而是利用自研和谈。关于Spring Cloud Netç ix,其仅撑持RabbitMQ取Kafka。
- RocketMQ
RocketMQ是利用Java言语开辟的一款MQ产物。颠末数年阿里单11的磨练,机能取不变性十分下。其 出有遵照任何常睹的MQ和谈,而是利用自研和谈。
【PS】偷去的图O(∩_∩)O哈哈~
手艺选型倡议:
- 年夜数据场景,日记搜集,及时性请求下,保举Kafka
- 金融范畴,不克不及担任动静丧失或反复,保举利用RocketMQ
- 其他状况能够挑选RabbitMQ
一.RocketMQ熟悉取装置
1.RocketMQ是甚么
RocketMQ是一个同一动静引擎、沉量级数据处理仄台。 RocketMQ是⼀款阿⾥巴巴开源的动静中心件,单十一启载了万亿级动静的流转,2016年11⽉,阿⾥巴巴背 Apache 硬件基⾦会捐赠 RocketMQ,成为 Apache 孵化项⽬,2017 年 9 ⽉ ,Apache 颁布发表 RocketMQ孵化成为 Apache 顶级项⽬(TLP )成为海内⾸个互联⽹中心件正在 Apache 上的顶级项⽬。民网:https://github.com/apache/rocketmq/tree/master/docs/cn
2.RocketMQ的特性
- 撑持散群模子、背载均衡、程度扩大才能
- 亿级别动静聚集才能
- 接纳整拷贝的道理,挨次写盘,随机读
- 底层通讯框架接纳Netty NIO
- 动静失利重试机造、动静可查询
- 夸大散群无单面,可扩大,随便一面下可用,程度可扩大
- 颠末屡次单十一的磨练
3.RocketMQ的装置[windows]
3.1.下载RocketMQ
下载地点:http://rocketmq.apache.org/release_notes/release-notes-4.2.0/
下载后解压
- Bin : 可施行文件目次
- Conif:设置文件目次
- Lib : 依靠库,一堆Jar包
3.2.设置ROCKETMQ_HOME
解压,设置 ROCKETMQ_HOME
3.3.启动RocketMQ
- 启动NameServer: Cmd号令框施行进进至‘MQ文件夹\bin’下,然后施行 start mqnamesrv.cmd,启动NameServer。
成功后会弹出提醒框,此框勿封闭。
- 启动Broker:进进至‘MQ文件夹\bin’下,修正Bean目次下的runbroker.cmd 中JVM占用内乱存巨细
CMD施行start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true ,启动Broker。
成功后会弹出提醒框,此框勿封闭
3.4.RocketMQ存储构造[了解]
RabbitMQ装置好以后会正在用户目次下发生一个store目次用去存储相干数据:
- Commitlog : 动静是存储写正在commitlog目次中,一mapperdFile文件挨次存储动静。
- Config : 寄存运转时期的设置文件
- Consumerqueue : 该目次中寄存的是行列,consume queue寄存着commitlog中的动静的索引地位
- Index :寄存着动静索引文件 indexFile,用去完成按照key举办动静的快速查询
- Abort : 该文件正在broker启动后主动创立,一般封闭abort会消逝
- Checkpoint :记载 Commitlog ,Consumerqueue 战index 文件的最初刷盘工夫戳
RocketMQ数据存储正在磁盘会影响机能吗?没有会,RocketMQ的机能正在一切的MQ中是比力下的,次要是由于RocketMQ利用了mmap整拷贝手艺,consumequeue中的数据是挨次寄存的,借引进了PageCache的预读与机造,使得对 consumequeue文件的读与险些接近于内乱存读与,即使正在有动静聚集状况下也没有会影响机能。
3.5.RocketMQ办理插件
为了便利办理,我们需求装置一个可视化插件
- 下载插件 :RocketMQ可视化办理插件下载地点:https://github.com/apache/rocketmq-externals/releases
- 修正设置 :解压后,修正设置:src/main/resource/application.properties 以下: 那里需求指背Name Server 的地点战端心
- 挨包插件 :回到装置目次,施行: mvn clean package -Dmaven.test.skip=true ,然后会正在target目次天生挨包后的jar文件
- 启动插件:进进 target 目次,施行 java -jar rocketmq-console-ng-1.0.0.jar , 会见 http://localhost:8080
文章到那便结束了,面赞仍是请求一下的,万一屏幕长远的年夜帅哥,大概年夜标致一没有当心便一键三连了啦,那我便是熬夜到头收失落光,也出下章。
免责声明:假如进犯了您的权益,请联络站少,我们会实时删除侵权内乱容,感谢协作! |
1、本网站属于个人的非赢利性网站,转载的文章遵循原作者的版权声明,如果原文没有版权声明,按照目前互联网开放的原则,我们将在不通知作者的情况下,转载文章;如果原文明确注明“禁止转载”,我们一定不会转载。如果我们转载的文章不符合作者的版权声明或者作者不想让我们转载您的文章的话,请您发送邮箱:Cdnjson@163.com提供相关证明,我们将积极配合您!
2、本网站转载文章仅为传播更多信息之目的,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证信息的正确性和完整性,且不对因信息的不正确或遗漏导致的任何损失或损害承担责任。
3、任何透过本网站网页而链接及得到的资讯、产品及服务,本网站概不负责,亦不负任何法律责任。
4、本网站所刊发、转载的文章,其版权均归原作者所有,如其他媒体、网站或个人从本网下载使用,请在转载有关文章时务必尊重该文章的著作权,保留本网注明的“稿件来源”,并自负版权等法律责任。
|
|
|
|
|