中间件
中间件学习
AldarLin
不积跬步,无以至千里
展开
-
【RocketMQ源码】三、Producer 源码学习
一、启动流程1.1 默认启动类解析查看这个start 的引用可以发现它是基于 DefaultMQProducer 这个类创建的,即需要通过这个类创建 Producer 并发送消息同时可以看到这个类中定义了各种消息的发送方法和默认参数1.2 默认参数解析参数名称 参数作用 producerGroup 生产者所属组 createTopicKey 默认Topic defaultTopicQueueNums 默认主题在每一个Broke.原创 2020-07-15 13:46:57 · 207 阅读 · 0 评论 -
【RocketMQ高可用】RocketMQ 双主双从集群搭建
一、 集群架构 描述 NameServer 集群 NameServer 是一个无状态的节点,可集群部署,节点都是各自独立的,无任何信息同步 Broker 集群 ①Broker 分为 Master 与 Slave,一个 Master 可以对应多个 Slave,但一个 Slave 只能对应一个Master ② Master 与 Slave 的对应关系通过制定相同的 BrokerName,不同的 BrokerID 来定义,id 为 0 表示 Master, ...原创 2020-07-14 13:45:22 · 3437 阅读 · 1 评论 -
【RocketMQ源码】二、NameServer 源码学习
一、架构设计1.1 消息中间件设计思路消息中间件的设计思路一般是基于主题订阅发布机制,即生产者发送某一个主题消息到服务器,消息服务器负责将消息持久化存储,消费者订阅感兴趣的主题,由服务器主动推送到消费者(Push模式)或消费者主动向消息服务器拉取(Pull模式),从而实现生产者和消费者解耦。1.2 NameServer 解决了什么1.2.1 存在的问题为了增加消息中间件的高可用性,避免消息服务器的单点故障导致整个系统瘫痪,通常会部署多台消息服务器共同承担消息的存储。那么问题随之.原创 2020-07-14 11:06:55 · 161 阅读 · 0 评论 -
【RocketMQ源码】一、源码下载和安装
一、项目搭建和测试1.1 代码拉取从官方仓库拉取:https://github.com/apache/rocketmq百度网盘:链接:https://pan.baidu.com/s/11gDiQ41LFRdpl03q_l8_xw 提取码:pjd81.2 源码结构目录broker: broker 模块(broke 启动进程) client :消息客户端,包含消息生产者、消息消费者相关类 common :公共包 dev :开发者信息(非源代码) distribution ...原创 2020-07-14 10:03:38 · 2896 阅读 · 2 评论 -
【RocketMQ 高可用】RocketMQ 高可用系列
一、消息存储机制1.1 介绍由于消息队列有高可靠性的要求,故要对队列中的数据进行持久化存储。如图:消息生产者先向MQ发送消息 MQ收到消息,将消息进行持久化,并在存储系统中新增一条记录 返回ACK(确认字符)给生产者 MQ 推送消息给对应的消费者,等待消费者返回ACK(确认字符,确认消费) 若这条消息的消费者在等待时间内成功返回ACK,则MQ认为消息消费成功,删除存储中的消息 若MQ在指定时间内没有收到ACK,则认为消息消费失败,会尝试重新推送消息1.2 存储...原创 2020-07-13 10:19:54 · 3880 阅读 · 2 评论 -
【RocketMQ】RocketMQ 学习
一、MQ 概述1.1 什么是 MQMQ(Message Queue) 即消息队列,是一种先进先出的结构,主要应用于应用解耦、流量削峰、数据分发等场景,能够极大降低硬件需求,是大并发处理系统中不可缺少的一个环节1.2 MQ 的常见场景1.2.1 应用解耦系统设计时要求高内聚,低耦合。系统耦合性越高,容错性就越低。举个例子:在订单系统中,需要调用支付系统、库存系统、物流系统 当有一天物流系统发生故障或升级,则会对订单系统造成影响,造成用户下单异常。即使物流系统修...原创 2020-06-25 15:48:17 · 1253 阅读 · 0 评论