RocketMQ
我会努力变强的
这个作者很懒,什么都没留下…
展开
-
RocketMQ基本消息生产消费案例讲解
依赖<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-client</artifactId> <version>4.7.1</version></dependency>依赖的版本尽量与你RocketMQ服务的版本一样。消息发送Producer发送同步消息这种可靠性同步地发送方式使原创 2020-12-10 09:48:13 · 836 阅读 · 0 评论 -
消息中间件RocketMQ事务消息
概述RocketMQ和其他消息中间件最大的一个区别是支持了事务消息,这也是分布式事务里面的基于消息的最终一致性方案。Apache RocketMQ在4.3.0版中已经支持分布式事务消息,这里RocketMQ采用了2PC的思想来实现了提交事务消息,同时增加一个补偿逻辑来处理二阶段超时或者失败的消息。流程如上图所示:生产者向broker发送消息,此时发送的消息对consumer是不可见状态,也就是发送后,consumer不能消费该消息。broker向生产者发送确认消息。执行本地事务,比如注册用户原创 2020-12-09 20:10:20 · 248 阅读 · 0 评论 -
RocketMQ消息存储、刷盘、负载均衡
消息存储消息存储是RocketMQ中最为复杂和最为重要的一部分。消息存储总体架构消息存储架构图:minOffset:当前队列的最小消息偏移量,如果消费时指定从最早消费,就是从该偏移量消费。maxOffset:当前队列消息的最大偏移量,就是最新的那个小心的偏移量。consumerOffset:当前消费者在该队列的消费偏移量,如果是集群消费模式,那么代表的是当前消费者组在该队列的消费偏移量,如果是广播消费模式,那么就代表当前消费者在该队列的消费偏移量。消息存储架构图中主要有下面三个跟消息存储相关原创 2020-12-09 19:05:37 · 315 阅读 · 0 评论 -
RocketMQ的各种集群模式的搭建和消息可靠性保证和服务可用性描述
RocketMQ集群搭建的特点NameServer是一个几乎无状态的节点,可直接启动集群部署。节点之间没有任何信息同步,并且集群的NameServer之间都不知道彼此的存在。Broker部署相对复杂,Broker分为Master和Slaver,一个Master对应多个Slaver,一个Slaver只能对应一个Master,Master和Slaver的对应关系通过指定相同的Broker Name、不同的Broker Id确定,Broker Name相当于集群组名,相同名称Broker表示是同一个集群组。原创 2020-07-17 19:06:51 · 1282 阅读 · 0 评论 -
RocketMQ的安装与启动
下载安装文件官网:http://rocketmq.apache.org/4.7.1版本:https://mirror.bit.edu.cn/apache/rocketmq/4.7.1/rocketmq-all-4.7.1-bin-release.zip解压通过命令 unzip 下载的压缩文件路径进行解压。启动进入解压的bin目录先启动NameServer,再启动Broker(在此之前假定已经知道RocketMQ的四种角色了)。检查先检查自身机器的内存情况,因为RocketMQ默认需要的原创 2020-07-17 17:55:15 · 9538 阅读 · 2 评论 -
RocketMQ的一些基本概念和RocketMQ特性的讲解
RocketMQ是阿里巴巴于2016年开源的消息中间件,使用JAVA语言开发。基本概念RocketMQ各部分角色介绍:RocketMQ主要由四部分组成:Producer:消息生产者,主要负责消息的生产,一般由业务系统负责消息的生产,一个消息生产者会把业务应用系统产生的消息发送到Broker服务器中存储。RocketMQ提供多种发送方式,同步发送、异步发送、顺序发送、单向发送,同步和异步方式均需要Broker返回确认消息。单向发送不需要。Consumer:消息消费者,负责消费消息,一般是后台系统负原创 2020-07-16 20:29:07 · 667 阅读 · 0 评论 -
何为MQ以及为何要用MQ
何为MQMQ,Message Queue,消息队列,队列是一种先进先出的数据结构,而消息队列表示对于消息的发送和接收也具有先进先出的特性。所谓消息,就是具备一定格式(协议),携带数据的消息载体。为何要用MQMQ是一直存在,不过随着分布式/微服务架构的流行,成了解决微服务之间问题的常用工具。应用解耦假设有系统A、B、C。A系统要与B、C系统交互,调用B、C系统,假设没有使用MQ。使用直连调用的话。A、B、C系统必须同时在线,否则就会调用失败。比如订单系统下单后要调用物流系统发货,但是由于物原创 2020-07-16 18:13:25 · 978 阅读 · 0 评论