随笔分类 -  消息队列

摘要:## 一、分布式事务的实现策略和模式 ### (一)分布式事务理论模型 ​ 1、分布式事务理论模型 ​ (1)强XA和弱XA ​ 强XA就是要求任何一次读都能读到某个数据的最近一次写的数据。系统中的所有进程,看到的操作顺序,都和全局时钟下的顺序一致。简言之,在任意时刻,所有节点中的数据是一样的。 ​ 阅读全文
posted @ 2023-08-28 22:42 李聪龙 阅读(123) 评论(0) 推荐(0)
摘要:## 一、事件驱动架构和原理 ### (一)事件驱动架构组成结构 ​ 1、事件和事件驱动架构 ​ 但凡在业务需求中出现如“当…发生…时、一旦出现…”等,描述时,我们就应该考虑是否需要在这些场景中引入事件。 ​ 所谓事件(Event),就是将系统中所发生的业务状态变更抽取出来形成一系列独立的对象。 ​ 阅读全文
posted @ 2023-07-03 18:02 李聪龙 阅读(147) 评论(0) 推荐(0)
摘要:一、Broker启动 当每个 broker 启动时,会在 ZooKeeper 中的 /brokers/ids 路径下创建⼀个节点来注册⾃⼰,节点 ID 为配置⽂件中的 broker.id 参数,后注册的 broker 会报 NodeExists 的错。如果不指定 broker.id 或者指定成 -1 阅读全文
posted @ 2021-08-26 23:15 李聪龙 阅读(1445) 评论(0) 推荐(0)
摘要:一、单机安装 1、安装RocketMQ需要使用JDK,首先需要配置好JDK,安装JDK 2、下载并启动RocketMQ # 下载RocketMQ wget https://mirrors.bfsu.edu.cn/apache/rocketmq/4.9.0/rocketmq-all-4.9.0-bin 阅读全文
posted @ 2021-08-20 13:00 李聪龙 阅读(611) 评论(0) 推荐(1)
摘要:一、互联网架构遇到的问题 随着大型互联网公司业务的多元化发展,就拿滴滴、美团等大厂来讲,如滴滴打车、单车、外卖、酒店、旅行、金融等业务持续高速增长,单个大型分布式体系的集群,通过加机器+集群内部拆分(kv、mq、Mysql等),虽然具备了一定的可扩展性。但是,随着业务量的进一步增长,这个集群规模琢渐 阅读全文
posted @ 2021-08-17 16:27 李聪龙 阅读(1094) 评论(0) 推荐(0)
摘要:一、原生代码小Demo pom: <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.9.0</version> </dependency> producer: // 阅读全文
posted @ 2021-08-17 15:01 李聪龙 阅读(417) 评论(0) 推荐(0)
摘要:一、RabbitMQ安装 (一)安装erlang # 安装依赖 yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel # 下载erlang w 阅读全文
posted @ 2021-08-16 20:15 李聪龙 阅读(1175) 评论(0) 推荐(1)
摘要:一、AMQP架构原理 Rabbit是使用Erlang语言开发的,其是基于AMQP协议模型开发的一款MQ(AMQP即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计)。 AMQP的结 阅读全文
posted @ 2021-08-16 18:59 李聪龙 阅读(894) 评论(0) 推荐(0)
摘要:一、原生API (一)生产者 生产者的发送可以分为异步发送、异步回调发送和同步发送。除了三种发送方式外,还可以进行批量发送,也可以在发送时对发送者进行拦截进行特殊处理。 1、异步发送 异步发送就是生产者将消息发送到分区器后,就不再管后续的流程(分区器是否发送到broker成功) 代码样例: priv 阅读全文
posted @ 2021-04-11 18:58 李聪龙 阅读(799) 评论(0) 推荐(0)
摘要:一、配置单机Kafka Kafka官网:http://kafka.apache.org/ 1、下载&解压 wget https://mirrors.bfsu.edu.cn/apache/kafka/2.7.0/kafka_2.12-2.7.0.tgz tar -zxvf kafka_2.12-2.7 阅读全文
posted @ 2021-03-23 00:46 李聪龙 阅读(655) 评论(0) 推荐(0)
摘要:一、Kafka简介 Kafka是一个快速的、可扩展的、高吞吐的、可容错的分布式发布订阅系统,与传统的消息中间件(ActiveMQ、RabbitMQ)相比,Kafka具有高吞吐量、内置分区、支持消息副本和高容错的特点,非常适合大规模消息处理应用程序。 其系统架构如下所示 Kafka的应用场景很多,以下 阅读全文
posted @ 2021-03-21 18:14 李聪龙 阅读(675) 评论(0) 推荐(0)
摘要:rocketMQ控制台搭建 (1)下载rocketmq-console代码:https://github.com/875279177/incubator-rocketmq-externals (2)修改配置application配置文件,主要修改端口号及rocketmq.config.dataPat 阅读全文
posted @ 2020-05-24 12:27 李聪龙 阅读(979) 评论(0) 推荐(0)
摘要:一、批量发送消息 即多条消息放入List,一次发送,从而减少网络传输,提高效率 DefaultMQProducer producer = new DefaultMQProducer("batch_send_producer_group"); producer.setNamesrvAddr("127. 阅读全文
posted @ 2020-05-17 22:20 李聪龙 阅读(540) 评论(0) 推荐(0)
摘要:本文主要描述使用Idea获取rocketMQ源码及源码的读取。 在演示搭建源码环境前,先简要描述一下RocketMQ的设计目标。 1、架构模式 和大多数消息中间件一样,采用的是发布订阅模式,基本组件包括:消息发送者、消息服务器(消息存储)、消息消费和路由发现 2、顺序消息 rocketMQ保证严格的 阅读全文
posted @ 2020-03-24 23:31 李聪龙 阅读(1492) 评论(0) 推荐(0)
摘要:一、MQ存储分类 MQ存储主要分为以下三类: 文件系统:RocketMQ/Kafka/RabbitMQ 关系型数据库DB:ActiveMQ(默认采用的KahaDB做消息存储)可选用JDBC的方式来做消息持久化 分布式KV存储:ZeroMQ 对比: 存储效率, 文件系统>分布式KV存储>关系型数据库D 阅读全文
posted @ 2020-03-22 13:16 李聪龙 阅读(2877) 评论(1) 推荐(0)
摘要:1、导入依赖 <dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>spring-boot-starter-rocketmq</artifactId> <version>1.0.0-SNAPSHOT</version> </d 阅读全文
posted @ 2019-11-07 14:16 李聪龙 阅读(2236) 评论(0) 推荐(0)
摘要:一、rocketMQ安装 (一)安装NameSrv 1、创建nameSrv数据挂载文件夹 2、拉取镜像 3、运行NameSrv新容器 (二)安装broker 1、创建broker配置文件挂载文件夹 2、新增broker配置文件 在conf文件夹下新增broker.conf文件,文件内容如下,其中br 阅读全文
posted @ 2019-11-04 14:26 李聪龙 阅读(2478) 评论(0) 推荐(0)
摘要:1、拉去镜像 docker pull rabbitmq:3.7.7-management 2、创建数据挂载目录 mkdir -p /usr/data/rabbitmq/data 3、使用镜像运行容器 docker run -d --name rabbitmq -p 5672:5672 -p 1567 阅读全文
posted @ 2019-10-18 16:50 李聪龙 阅读(1247) 评论(0) 推荐(0)