
MQ消息队列
文章平均质量分 67
lizc_lizc
好好学习,天天向上。
展开
-
RocketMQ-Request-Reply特性
当consumer收到并消费消息后,从消息中取出消息的标识符correlationId和producer的标识符clientId,放入响应消息,用来确定此响应消息是哪条请求消息的回包,以及此响应消息应该发给哪个producer。Producer收到响应消息后,根据消息中的唯一标识符,从RequestResponseFuture的map中找到对应的RequestResponseFuture结构,设置响应消息,同时计数器减一,解除等待状态,使请求方收到响应消息。在分布式场景下,RPC是最常用的联机调用的方式。原创 2023-06-07 18:03:17 · 791 阅读 · 0 评论 -
RocketMQ-Broker消息存放设计
RocketMQ-Broker消息存放设计原创 2023-03-14 09:29:02 · 117 阅读 · 0 评论 -
RocketMQ-生产者和消费者如何获取最新的Topic信息
RocketMQ-生产者和消费者如何获取最新的Topic信息原创 2023-03-14 09:26:11 · 1505 阅读 · 0 评论 -
RocketMQ-消费者重试原理
RocketMQ-消费者重试原理原创 2023-03-14 09:25:24 · 776 阅读 · 0 评论 -
RocketMQ-延时消息实现原理
RocketMQ-延时消息实现原理原创 2023-03-14 09:26:40 · 1097 阅读 · 0 评论 -
RocketMQ-消费者重启后或者首次拉取消息如何知道从哪里开始消费
RocketMQ-消费者重启后或者首次拉取消息如何知道从哪里开始消费原创 2023-03-14 09:25:58 · 519 阅读 · 0 评论 -
RocketMQ-消费队列负载
RocketMQ-消费队列负载原创 2023-03-14 09:23:20 · 259 阅读 · 0 评论 -
RocketMQ-消费消息
RocketMQ-消费消息原创 2023-03-14 09:22:36 · 1090 阅读 · 0 评论 -
RocketMQ-发送消息
RocketMQ发送消息原创 2023-03-14 09:21:55 · 267 阅读 · 0 评论 -
RocketMQ-整体信息
RocketMQ整体信息原创 2023-03-14 09:18:42 · 317 阅读 · 0 评论 -
7-RocketMQ拉取消息
消费者启动public class Consumer { public static void main(String[] args) throws InterruptedException, MQClientException { // 实例化消费者 DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("GroupNameDemo"); // 设置NameServer的地址原创 2021-07-07 23:41:10 · 1743 阅读 · 0 评论 -
6-RocketMQ发送消息
public static void main(String[] args) throws Exception { // Instantiate with a producer group name. DefaultMQProducer producer = new DefaultMQProducer("GroupNameDemo"); // Specify name server addresses. producer.setNamesrvAddr("loc原创 2021-07-07 23:40:33 · 236 阅读 · 0 评论 -
5-RocketMQ-NameServer
路由元信息NameServer路由实现类:org.apache.rocketmq.namesrv.routeinfo.RouteInfoManager,在了解路由注册之前,我们首先看一下NameServer到底存储哪些信息。private final HashMap<String/* topic */, List<QueueData>> topicQueueTable;private final HashMap<String/* brokerName */, Broker原创 2021-07-07 23:39:47 · 128 阅读 · 0 评论 -
4-RocketMQ基础
架构设计1 技术架构RocketMQ架构上主要分为四部分,如上图所示:Producer:消息发布的角色,支持分布式集群方式部署。Producer通过MQ的负载均衡模块选择相应的Broker集群队列进行消息投递,投递的过程支持快速失败并且低延迟。Consumer:消息消费的角色,支持分布式集群方式部署。支持以push推,pull拉两种模式对消息进行消费。同时也支持集群方式和广播方式的消费,它提供实时消息订阅机制,可以满足大多数用户的需求。NameServer:NameServer是一个非常简单原创 2021-07-07 23:38:59 · 197 阅读 · 0 评论 -
3-主题和队列
主题和队列最初的消息队列,就是一个严格意义上的队列。在计算机领域,“队列(Queue)”是一种数据结构,有完整而严格的定义。在维基百科中,队列的定义是这样的:队列是先进先出(FIFO, First-In-First-Out)的线性表(Linear List)。在具体应用中通常用链表或者数组来实现。队列只允许在后端(称为 rear)进行插入操作,在前端(称为 front)进行删除操作。这个定义里面包含几个关键点,第一个是先进先出,这里面隐含着的一个要求是,在消息入队出队过程中,需要保证这些消息严格有序,按原创 2021-07-07 23:38:24 · 340 阅读 · 0 评论 -
2-如何选择消息队列
特性ActiveMQRabbitMQRocketMQKafka开发语言JavaerlangJavaScala单机吞吐量万级万级10万级10万级时效性msusmsms可用性高,主从架构高,主从架构非常高,分布式架构非常高,分布式架构功能特性成熟产品,有较多文档,各种协议支持较好基于erlang开发,并发能力很强,性能好,延时低,管理界面也很丰富MQ功能完备,扩展性好只支持主要的MQ功能,像消息查询、消息回溯等功能没有提供...原创 2021-07-07 23:37:34 · 153 阅读 · 0 评论 -
1-为什么需要消息队列
为什么需要消息队列异步处理:假设某个接口有ABC三个操作,A操作很快就能完成,但是BC操作比较耗时,此时就可以把BC两个操作放入到消息队列中,并直接返回,这样就能减少接口的等待时间。流量控制:假设我们的数据库系统每秒只能处理 2k 个请求,系统正常情况下,每秒并发请求数量就 50 个。 系统高峰期时,每秒需要处理 5k 个请求,如果这 5k 个请求直接访问到数据库,那么数据库肯定是扛不住的。 如果使用 MQ,每秒 5k 个请求写入到 MQ,然后系统通过 MQ 慢慢拉取请求,每秒钟拉取 2k 个请求。 在原创 2021-07-07 23:34:30 · 213 阅读 · 0 评论