- 博客(357)
- 收藏
- 关注
原创 RabbitMQ-镜像队列(Mirrored Queues)
上个小节我们介绍了RabbitMQ伪集群模式,虽然元数据是同步共享的,但是数据只存在某一台节点,当这个节点宕机以后,整个集群也就出现问题,所以本小节我们介绍一个新的正在的高可用方案:镜像队列(Mirrored Queues)。
2025-08-01 21:23:23
250
原创 RabbitMQ-伪集群部署(Cluster)
前面我们讲解了部署RabbitMQ的相关概念和操作,但是都是使用单机,作为一个分布式系统,怎么能没有集群版呢,今天我们就来讲解集群部署,虽然是伪集群,但是方便我们更好的理解后面的镜像队列(Mirrored Queues)。
2025-07-31 20:43:15
772
原创 RabbitMQ-死信队列(Dead Letter Queue, DLQ)
死信队列是一种特殊队列,用于存储因特定原因无法被正常消费的消息。这些消息被称为 “死信”(Dead Letter)
2025-07-30 23:41:19
354
原创 RabbitMQ-延迟队列(Delayed Queue)
我们在Rabbitm-队列(Queues)的时候,介绍创建队列的时候后面还有很多参数,今天我们介绍的延迟队列就会利用到它。而且我们交换机还可以把消息转发到其他交换机(有些交换机只对内)。
2025-07-29 20:26:59
337
原创 RabbitMQ-消息持久化
上个小节我们介绍了RabbitmqMQ的元数据的持久化是和节点的类型有关(内存节点和硬盘节点),但是消息如果写入到RabbitMQ以后,未及时消费,集群崩溃数据是否会被丢失呢,这个就是我们今天要讲的消息持久化。
2025-07-28 21:57:11
863
原创 RabbitMQ-内存节点&硬盘节点
我们在Rabbitmq部署的时候,介绍过RabbitMQ的数据依赖主机名进行持久化,但是实际上在RabbitMQ里面还有内存节点和硬盘节点的概念,下面我们就来介绍这2个概念。
2025-07-27 23:25:15
519
原创 RabbitMQ-消费者(Consumer)
上个小节我们通过生产者代码,向RabbitMQ的交换机发送消息,本小节我们就通过消费者代码去读取队列里面数据,以下代码基于DeepSeek生成。我们可以和生产者的RabbitMQ配置对比下,看下有什么差距。
2025-07-26 21:08:19
292
原创 RabbitMQ-生产者(Producer)
我们通过虚拟主机,交换机,队列,绑定,将RabbitMQ连成了一个整体,生产者可以向交换机发送消息,交换机根据绑定规则可以把消息转发给对应的队列进行存储,消费者可以连接到队列去消费数据。
2025-07-25 21:04:22
198
原创 RabbitMQ-绑定 (Bindings)
前面的内容,我们介绍了虚拟主机(vhost),但是它只是一个逻辑概念,它必须配合对应的交换机(Exchange),队列(Queue),绑定(Binding)才能具体使用,今天我们就来介绍绑定。
2025-07-24 23:12:43
440
原创 RabbitMQ-队列 (Queues)
前面的内容,我们介绍了虚拟主机(vhost),但是它只是一个逻辑概念,它必须配合对应的交换机(Exchange),队列(Queue),绑定(Binding)才能具体使用,今天我们再来讲解队列。
2025-07-23 22:52:43
236
原创 RabbitMQ-交换机(Exchange)
前面的内容,我们介绍了虚拟主机(vhost),但是它只是一个逻辑概念,它必须配合对应的交换机(Exchange),队列(Queue),绑定(Binding)才能具体使用,今天我们首先来介绍的是交换机。
2025-07-22 20:24:50
517
原创 RabbitMQ-虚拟主机(vhost)
RabbitMQ 中的 vhost(Virtual Host,虚拟主机)是一个核心概念,它提供了一种逻辑上的隔离机制,允许在同一个 RabbitMQ 服务器实例上创建多个相互独立的消息环境。
2025-07-21 23:44:03
871
原创 RabbitMQ-Web管理(management)
RabbitMQ 的 Web 管理界面提供了一个基于浏览器的可视化工具,用于监控队列、交换机、连接状态等核心指标,管理虚拟主机、用户权限,并支持执行简单的消息操作(如发布、清除),简化日常运维。
2025-07-20 21:53:11
323
原创 RabbitMQ-简介与入门
本章的介绍的RabbitMQ和我们上个章节介绍的Kafka在一定程度上相似的功能,如果不是面试八股文,一般不需要去单独记录,当我们熟悉它主流的功能以后,我们就会在架构设计的时候把他们放置在不同的位置。
2025-07-18 23:42:49
269
原创 Kafka-知识技能图谱(总结篇)
本文是《运维小路》关于Kafka技术的系统教程,从基础概念到高级应用全面覆盖。内容包括:Kafka核心概念介绍、集群部署与ZooKeeper对比、主题/分区/副本机制解析、生产者消费者模型、高性能原理(顺序读写/零拷贝)、元数据存储与监控方案(Prometheus/KafkaManager)、日常运维命令及典型故障处理案例(节点恢复/分区扩容修复)。特别介绍了不依赖ZooKeeper的Kraft模式,并附有MySQL到PostgreSQL的异构数据库迁移方案。作者以运维工程师视角,通过思维导图清晰展示知识体
2025-07-17 21:14:00
287
原创 Kafka-不依赖ZooKeeper的kraft
我们前面演示都是依赖ZooKeeper的版本,本小节我们介绍2个版本不依赖ZooKeeper的版本,第一个版本就是我们前面使用的版本:kafka_2.13-2.8.2,它既支持使用ZooKeeper,也支持使用kraft。
2025-07-16 21:58:15
672
原创 Kafka-异构数据库迁移(MYSQL迁移PG)
在我以前的工作中遇到过多次数据库迁移,如果数据库是一样的,其实相对都是比较简单的。因为基本上都可用利用数据库自身的同步原理就可以实现,但是现实中还有需求就是异构数据库的迁移。就好比Oracle到MYSQL,当然这里我为了简单,我这里用了简单的MYSQL迁移到PG。
2025-07-15 20:17:19
359
原创 Kafka案例-异常分区(Partion)修复
一般情况下,我们的分区很少会出现异常的情况,但是在Broker异常下线,尤其是一次性下线多个节点的情况就会出现。我这里为了演示,所以把上个小节5节点Kafka直接下线2个节点,就可以模拟这个情况。
2025-07-14 20:09:51
605
原创 Kafka-扩容节点(Broker)和分区(Partition)
前面是3个节点,我们这里增加了2个节点,模拟扩容Broker,然后再扩分区。如果前期我们配置的3副本,则副本是不需要扩容的。这里我们并没有考虑跨AZ(可以通过机架感知参数来实现)。
2025-07-13 23:58:52
273
原创 Kafka-案例(Broker节点宕机恢复过程)
本篇文章大概是我3年前写的,当时写这篇文章的背景是一个容器化部署的Kafka集群,其中一个节点宕机以后无法恢复,所以想了解下这个Kafak集群崩溃以后的恢复过程(下面的内容参考原文做了部分修改和脱敏)。
2025-07-13 00:20:16
794
原创 Kafka-日常运维命令
对于运维来说,一个正常的Kafka的集群,一般情况下我们是不需要去操作ZooKeeper来维护它的集群状态的。我们对Kafka的操作,大部分都通过Kafka自带的脚本来操作它,下面我们就来介绍下使用较多的命令。(部分命令在前面的操作里面已经有演示)。
2025-07-11 20:14:55
329
原创 Kafka-监控(Kafka Manager)
我们上一个小节介绍Kafka的监控信息,但是这个监控适合接入到云原生的监控系统,如果没有云原生监控,光使用JVM监控则会更麻烦,而我们今天介绍另外一个监控:Kafka Manager,Kafka Manager也是在云原生流行之前的普遍使用的Kafka监控。
2025-07-10 21:03:50
389
原创 Kafka-监控(Monitor)
我们在前面ZooKeeper里面也使用到了这个JMX监控,Kafka作为一个JAVA应用也有对应的jmx监控,而且在ZooKeeper里面数据,也会显示当前节点是否开启了jmx监控。
2025-07-09 18:11:20
312
原创 Kafka-元数据存储(ZooKeeper)
我们前面在部署Kafka的时候,选择的是需要ZooKeeper支持的版本,在 Kafka 2.8 之前的版本中,ZooKeeper 承担了以下关键职责:
2025-07-07 20:21:16
981
原创 Kafka-为什么这么快(零拷贝Zero-Copy)
Kafka的零拷贝(Zero-Copy)技术是其实现高吞吐量的关键优化之一,主要通过减少数据在内核态和用户态之间的冗余拷贝及上下文切换来提升性能。以下是对该机制的详细分析
2025-07-06 21:08:55
824
原创 Kafka-为什么这么快(顺序读写)
我们前面在介绍Kafka的时候,有一个Topic概念,它不仅仅是一个逻辑隔离的概念,也是实际存储内容的地方。在RabbitMQ里面有一个类似的概念,就是虚拟主机(vhost),它只是起到一个逻辑隔离,本身并不存储数据。
2025-07-05 18:15:58
742
原创 Kafka-分布式日志存储系统的设计与高吞吐实践
我们前面讲解了Kafka的几个关键概念,生产者者发送的消息最终都会写到Broker节点的磁盘里面,那么它在本地数据是怎么样的呢?
2025-07-04 21:23:05
901
原创 Kafka-消费者(Consumer)和消费者组(Consumer Group)
我们上个小节介绍了生产者怎么给afka发送数据,本小节我们来介绍消费者(Consumer),以及我们如何消费数据。
2025-07-03 20:56:33
625
原创 Kafka-生产者(Producer)
我们上前面介绍了Topic的基本概念和涉及到Topic核心的分区和副本概念,但是我们还得往里面写入数据才行,然后数据写进入以后我们还得把里面的数据读出来,我们今天首先介绍的负责向Kafka写入消息角色:生产者(Producer)。
2025-07-02 20:19:12
1041
原创 Kafka-Leader分区(AR +ISR + OSR)
在 Apache Kafka 中,每个分区都有Leader分区和Follower分区,Leader 分区 是负责处理客户端读写请求的主副本,其副本管理机制通过 AR(Assigned Replicas)、ISR(In-Sync Replicas) 和 OSR(Out-of-Sync Replicas) 确保数据的高可用性和一致性。
2025-07-01 20:04:57
1001
原创 Kafka-分区(Partition)和副本(Replica)
我们上个小节介绍了Kafka里面一个很核心的逻辑概念:主题(Topic),在创建Topic的时候,涉及到两个很关键的参数:分区(Partition)和副本(Replica),我们今天就来详细介绍这2个概念。
2025-06-30 20:21:19
839
原创 Kafka-主题(Topic)介绍和使用
在 Apache Kafka 中,Topic(主题) 是消息的逻辑分类单元,所有消息的生产和消费都围绕 Topic 进行。每个 Topic 可以看作一个消息队列的抽象,但 Kafka 通过 分区(Partition) 和 副本(Replica) 机制实现了高吞吐、高可用和水平扩展的特性。
2025-06-29 18:16:39
735
原创 Kafka-单机安装&集群安装
本小节我们将进行Kafka的安装,截止到2025年,最新的Kafka最新版本默认不依赖Zookeeper,而由于刚刚发布,我们业务使用的大部分版本应该都是需要依赖的ZooKeeper的版本。我们选择的是2.8.2版本,这个版本开始可以不依赖Zookeeper,我们后期有需要可以调整。
2025-06-28 20:40:46
776
原创 Kafka-简介与入门
Kafka的设计哲学源于发布-订阅模型,但其创新性地引入了分布式存储和分区化处理机制,使得系统能够高效处理每秒百万级的消息吞吐。这一特性使其迅速成为现代数据管道(Data Pipeline)和流式处理(Stream Processing)的核心组件。
2025-06-27 21:10:59
520
原创 ZooKeeper-知识技能图谱(总结篇)
到目前为止ZooKeeper是我们第三个中间件:前面2个是web服务器(Nginx),代理服务器,当然这里我介绍这部分内容只是我相对比较熟悉部分,实际业务需要需要进行配置。下面就是一个简单总结。
2025-06-26 20:53:04
402
原创 ZooKeeper-案例 (多AZ高可用容灾)
所以我们这里准备了6个节点,AZ1:3个普通节点,AZ2:2个普通节点,一个OB节点。由于OB的特性,可以算这个集群只有5个节点,只要有3个节点就可以正常选举出来Leader。
2025-06-25 21:50:23
262
原创 ZooKeeper-案例(注册订阅)
前面我们介绍介绍了几个常用的代理服务器,本章节我们讲来讲解Zookeeper这个中间件。我们前面讲解了ZooKeeper的基本操作和原理,后面几个小节将通过几个案例来更加深入ZooKeeper。我们的第二个案例就是把ZooKeeper作为订阅中心,来实现信息更新,也就是我们前面讲过的watch机制。
2025-06-25 00:23:22
304
原创 ZooKeeper-备份(Backup)
ZooKeeper作为一个分布式软件,在生产中一般都是多节点运行的,所以对于备份的需求其实并不高,但是这里还是介绍3个方法。
2025-06-22 17:44:12
385
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人