TAG
Message_Queue
19 篇笔记
- 1.1 消息队列介绍historical
1. 什么是MQ - 消息队列,解耦生产者和消费者 - 生产者消费者其实也可以用数据库实现:生产者可以将事件写入数据库,消费者定时轮询数据库 - 但是这种方式对数据库的压力太大 2. MQ消息分发模型 - 有两种消息模型:队列模型和发布-订阅模型 2.1. 队列模型 - 一个生产者- Queue-
- 1.2 消息队列消息的顺序性historical
1. 什么是消息的顺序性问题 如图,生产者先后向消息队列发送了两条数据: 插入数据 、 更新数据 ,假设消费者有两个节点,消息队列会把这两条数据轮询发送消费者,消费者1消费了 插入数据 ,消费者2消费了 更新数据 ,最后插入MySQL的顺序先后是 更新数据 、 插入数据 ,这样的话更新数据的时候还没
- 2.1 Kafka安装historical
1. Kafka版本号 kafka 2.12-2.8.0.tgz 前面的数字 2.12 表示Scala版本,后面的数字 2.8.0 便是Kafka的版本 2. Kafka集群搭建 2.1. 搭建zookeeper环境 Zookeeper安装.md 2.2. 搭建scala环境 2.2.1. 下载sc
- 2.2 Kafka介绍historical
1. Kafka是什么 - 分布式的消息系统 2. Kafka使用场景 - 消息系统:基于发布订阅模式 - 存储系统:消息会持久化到磁盘 - 流式处理平台 3. Kafka安装 Kafka安装.md 4. Kafka使用 Kafka使用.md 5. Kafka原理 Kafka架构.md 6. Kaf
- 2.3 Kafka使用historical
1. 命令行使用 1.1. Topic 1. 创建Topic Topic名叫first; --partition设置为2表示有2个分片,可以在logs目录中看到; replication-factor设置为1表明只有一份数据,就是他自己。如果设置为2为报错,因为只有一个broker,无法分散副本;
- 2.4 Kafka架构historical
1. Kafka拓扑结构 Producer 将消息发送到特定的Topic,Topic中的消息存储在Broker上,Consumer 通过订阅特定的Topic来消费消息。 2. 三大组件 2.1. 生产者 Kafka生产者.md 2.2. Broker Kafka Broker.md Kafka To
- 2.5 Kafka生产者historical
1. 生产者是什么 - Kafka的客户端之一,负责生产消息,push到Kafka 2. 生产者消息发送流程 - 涉及三个对象: main 线程、Sender 线程、一个线程共享变量: RecordAccumulator(存放待发送的数据) - 过程:main 线程创建消息,通过Intercepto
- 2.6 Kafka Brokerhistorical
1. Broker是什么 - Kafka的服务端,负责存储消息 - Kafka Cluster中的每个节点叫做Broker。可以看作是一个独立的 Kafka 实例。多个 Kafka Broker 组成一个 Kafka Cluster。 2. Controller 2.1. Controller是什么
- 2.7 Kafka消费者historical
1. 消费者是什么 - Kafka的客户端之一,负责消费消息,从Kafka pull消息 1.1. 消费者组 - 一个Consumer Group可以有多个Consumer - 每个Consumer Group可以独立消费Topic的所有消息 - 对于一个Topic,同一个Group的两个Consu
- 2.8 Kafka消息磁盘存储historical
1. 日志 1.1. 日志目录结构 - 每个partition一个文件夹,包含四类文件 .index .log .timeindex leader-epoch-checkpoint - .index .log .timeindex 三个文件成对出现 前缀为上一个segment的最后一个消息的偏移 -
- 2.9 Kafka Topichistorical
1. Topic - Kafka中的消息以Topic分类,是个逻辑概念 - Kakfa有两个内部Topic - consumer offsets 用于存放存放消费者偏移量 - transcation state 用于持久化事务状态信息。 2. Partition - Topic分成多个Partiti
- 2.10 Kafka优化historical
1. 写吞吐量 - Batch and Fan In / Fan out 2. 带宽优化 开启压缩 3. 参考 - How to Consume Kafka Efficiently in Golang? \ by Jing \ The Startup \ Medium
- 2.11 Kafka压测historical
1. 压测 1.1. 生产者 1.2. 消费者 2. 分片数和机器数确定 同业务系统设计分析思路.md的 发布 1. 计算单个分片/机器所能支撑的QPS,参考压力测试.md 2. 计算分片/机器数 = 业务预估QPS/单个分片/机器所能支撑的QPS + 一点富余量 3. 参考 - Kafka压力测试
- 2.12 云Kafkahistorical
1. 腾讯云Kafka 基于VIP+原生Kafka - VIP:就是北极星注册中心的寻址+健康检查+就近路由的功能 CKafka 会为客户端暴露一个 VIP,客户端在连接到 VIP 后,会拿到主题分区的元数据信息 当某个可用区不可用时,该 VIP 会自动漂移到该地域另一个可用的节点,从而实现跨可用区
- 3.RabbitMQhistorical
1. RabbitMQ使用 - RabbitMQ使用.md 2. RabbitMQ安装 - RabbitMQ集群模式.md 3. RabbitMQ原理 - RabbitMQ消息的可靠性.md 4. 参考 - RabbitMQ面试题 - 昕友软件开发 - 博客园 - 2019年12道RabbitMQ高
- 3.1 RabbitMQ使用historical
1. 数据传输流程 生产者发送消息- rabbitmq的exchange,通过routing key路由到相应的queue上- 消费者接收消息 2. 工作模式 发送消息的代码 - 工作队列,交换机为空 这种模式会把消息发送到QUEUE NAME的队列上 - 发布订阅,fanout交换机 这种模式会广
- 3.2 RabbitMQ消息的可靠性historical
1. 三种情况 1.1. 生产者 消息没传到mq丢失了,或者到了mq但是mq出问题了没保存消息 1.2. MQ mq把消息暂存在内存中,还未写入磁盘,挂了 1.3. 消费者 消费了这条消息,但是没有处理成功就挂了 2. 解决 2.1. 生产者 2.1.1. 开启事务 开始事务后生产者会同步阻塞直到m
- 3.3 RabbitMQ集群模式historical
1. 集群模式 1.1. 普通集群模式 master节点存放元数据和队列数据,其他节点只存放元数据。 消费者可以向任意一个节点发出请求,如果是slave会将请求转发给master进行处理后返回给客户端 - 优点 - 提高消费者的吞吐量 - 缺点 - 可能会在集群内部产生大量的数据传输 - maste