RocketMQ(二)

简介: RocketMQ(二)

简介:阿里开源消息队列RocketMQ4.x介绍和新概念讲解

一、Apache RocketMQ作为阿里开源的一款高性能,高吞吐量的分布式消息中间

特点:

       ①、支持Broker和Consumer端信息过滤

好比头里的消息,消费者可以让在Broker上面过滤,应用程序,也就是rocketMQ启动之后在服务端进行过滤,也可以在Consumer中拿到消息进行过滤。因为有些消息是不需要的,就给它排序掉,减少带宽的传输。

       ②、支持发布订阅模型,和点对点:目前主流的消息队列都是支持的

       ③、支持pull和推push两种消息模式,消息在broker里面,Consumer在获取消息的时候,有两种模式,一种是pull,一种是push的模式。这两种方式都是长连接的轮询的方式去进行获取消息的。

       ④、单一队列百万消息,亿级消息堆积

对于kafka和activeMQ的话,亿级的消息对于 activeMQ的性能会急剧下降,kafka是没有问题的。

       ⑤、在reocketMQ部署的时候,会支持很多种模式:支持单节点master节点,多master节点,多master多salve节点,根据业务的情况选择。

       ⑥、任意一点都是高可用,水平扩展,Producer,Consumer:都可以支持水平 扩展,队列都可以分布式

       ⑦、也支持消息的失败重试机制:比如消息投递和消费失败的话,可以进行重试,支持特定level的定时消息:比如消息投递到broker,消费者从broker里面去拉取消息。

可以隔几秒的从Broker中拉取消息过来:这个在业务电商里面用的很多。

        ⑧、新版本的底层采用Netty,ES和Dubbo的底层都是使用netty。

        ⑨、4.3.x之后支持分布式事务。

        ⑩、适合金融类业务,高可用性能跟踪和审计功能,可以防止消息丢失。不是百分之百避免消息不重复消费的。如果想要不重复消费的话,需要在业务层代码控制。

二、概念

①、Producer:消息生产者

②、Producer Group:消息生产者,发送同类消息的一个消息生产组

比如应用程序可以部署很多个节点,每个节点都有一个Producer,Producer可以给它取个组名 。

③、Consumer:消费者

④、Consumeer Group:消费同类消息的多个实例

⑤、Tag标签:子主题(二级分类),对topic的进一步细化,用于区分同一个主题下的不同业务的消息。比如订单类的消息:user_topic,订单类的消息可以分类很多种,比如退款,支付等等的很多消息,就可以用Tag标记下,二级分类

⑥、Topic:主题,如订单类消息,queue是消息的物理管理单位,而Topic是逻辑管理单位,一个topic下可以用多个queue,默认自动创建4个queue(这个会涉及到后期的consumer的分配,因为Topic和queue的数量要匹配上,否则后期时有的consumer会拿不到消息的),手动创建是8个。

⑦、Message:消息,接收生产的消息,提供给消费者消费的程序

⑧、Broker:MQ程序,接收生产的消息,提供给消费者消费的程序。

⑨、Name Server:给生产和消费者提供路由信息,提供轻量级的服务发现,路由,元数据信息,健康程度,负载,Ip信息,端口号等等。可以多个部署,互相 独立(比zookeeper更轻量)

好比现在的很多的应用程序,部署了很多的消息队列,生产者把消息生产之后,投递到哪一个broker里面,它是不知道的,它就会去找name Server,因为Name Server会记录所有额消息队列节点的信息。好比注册中心。不管Consumer还是Producer都会连到Name Server里面去。kafka用zookeeper做注册中心为了路由寻址的功能,但是zk比较笨重。

⑩、Offset:偏移量,可以理解为消息进度。好比数组的下标

十一、commit log:当producer将消息投递到broker,broker将消息存储在Commit log文件里面。创建rocketmq的时候会主动创建commit log。写消息的时候就会把消息写入到Commit log文件里面去。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
3月前
|
消息中间件 Java 大数据
RocketMQ
【8月更文挑战第29天】RocketMQ
75 15
|
6月前
|
消息中间件 监控 API
RocketMQ 5.0
RocketMQ 5.0 是一款分布式消息中间件,由阿里巴巴开源,提供了高性能、高可靠、高可扩展性的消息传递服务。它采用发布/订阅模式,支持多种消息协议,如 JMS、MQTT 等,可用于构建企业级应用的异步消息处理、系统解耦、流量削峰等场景。
155 4
|
4月前
|
消息中间件 存储 Java
【RocketMQ系列一】初识RocketMQ
【RocketMQ系列一】初识RocketMQ
47 1
|
4月前
|
消息中间件 Java RocketMQ
【RocketMQ系列九】SpringCloudStream整合RocketMQ
【RocketMQ系列九】SpringCloudStream整合RocketMQ
374 1
|
6月前
|
消息中间件 Apache RocketMQ
RocketMQ
RocketMQ “【5月更文挑战第24天】”
47 2
|
5月前
|
消息中间件 Java API
详解RocketMQ使用
详解RocketMQ使用
59 0
|
消息中间件 存储 JSON
RocketMQ使用总结
RocketMQ使用总结
181 0
|
消息中间件 RocketMQ
对于RocketMQ的不同场景
对于RocketMQ的不同场景
91 2
|
消息中间件 存储 运维
RocketMq
RocketMq
121 0
|
消息中间件 存储 缓存
RocketMQ参数约束和建议
Apache RocketMQ 系统中存在很多自定义参数和资源命名,您在使用 Apache RocketMQ 时建议参考如下说明规范系统设置,避对某些具体参数设置不合理导致应用出现异常。
228 0