文章列表

RabbitMQ 如何防止重复消费?

RabbitMQ 如何防止重复消费?

本文深度解析RabbitMQ如何防止重复消费。从重复消息产生的根源(生产者重试、消费者ACK前宕机)切入,详解基于数据库唯一索引、Redis去重表、乐观锁、状态机等幂等实现方案,并对比优劣与适用场景。附Java代码示例与生产最佳实践,助你彻底解决消息重复问题。


犬小哈2026/2/12Java面试八股文
RabbitMQ 是如何保证高可用的?

RabbitMQ 是如何保证高可用的?

本文深度解析RabbitMQ保证高可用的核心机制:从镜像队列到基于Raft的仲裁队列(Quorum Queues),详解其数据复制、Leader选举与强一致性原理。对比不同方案的优劣,并给出生产级配置、确认机制与监控最佳实践,助你构建真正高可用的消息系统。


犬小哈2026/2/12Java面试八股文
RabbitMQ 的整体架构是怎样的?

RabbitMQ 的整体架构是怎样的?

本文深度解析RabbitMQ的整体架构与核心组件。详解AMQP 0-9-1协议模型下的交换机(Exchange)、绑定(Binding)、队列(Queue)三层路由机制,并对比Direct/Topic/Fanout交换机类型、消息生命周期、持久化策略及与Kafka的差异。附Java代码示例与生产级最佳实践,助你彻底掌握这一经典消息队列。


犬小哈2026/2/12Java面试八股文
Zookeeper 是如何保证创建的节点是唯一的?

Zookeeper 是如何保证创建的节点是唯一的?

本文深度解析ZooKeeper如何保证创建的节点全局唯一。核心剖析其利用顺序节点(SEQUENTIAL)标志、ZAB协议的顺序一致性及ZXID机制,从原理上确保生成单调递增且不重复的序列号,并阐述其在分布式锁、选主等场景中的应用。


犬小哈2026/2/9Java面试八股文
Zookeeper 脑裂是什么?怎么解决?

Zookeeper 脑裂是什么?怎么解决?

本文深度解析ZooKeeper脑裂问题的成因、危害及内置解决方案。详解其如何通过ZAB协议的过半选举(Quorum)与Epoch机制,从设计源头杜绝因网络分区导致多Leader和数据不一致的风险,确保分布式协调服务的强一致性。


犬小哈2026/2/9Java面试八股文
如何用 Zookeeper 实现分布式锁?

如何用 Zookeeper 实现分布式锁?

本文详解基于ZooKeeper实现高可靠分布式锁的完整方案。深入剖析利用临时顺序节点解决互斥与死锁问题、通过Watch监听前序节点避免羊群效应的核心原理,并提供与Redis方案的对比及Curator框架(InterProcessMutex)的最佳实践。


犬小哈2026/2/9Java面试八股文
如何通过 Zookeeper 实现服务注册与发现?

如何通过 Zookeeper 实现服务注册与发现?

本文详解如何基于ZooKeeper实现服务注册与发现。深入解析其利用临时节点自动注册与健康检查、结合Watcher机制实现服务列表动态感知的核心原理,并提供Curator框架代码示例。同时对比Eureka/Nacos等方案,分析ZooKeeper作为CP系统的适用场景与最佳实践。


犬小哈2026/2/9Java面试八股文
Zookeeper 的 watch 机制是如何工作的?

Zookeeper 的 watch 机制是如何工作的?

本文深度解析ZooKeeper Watch机制的工作原理。详解其“一次性触发、异步通知、客户端串行执行”的核心特性,通过代码示例展示完整工作流程,分析与传统回调的区别、事件丢失风险及最佳实践,帮你彻底掌握这一分布式监听模型。


犬小哈2026/2/9Java面试八股文
Zookeeper 的数据结构是怎样的?

Zookeeper 的数据结构是怎样的?

本文深度解析ZooKeeper的核心数据结构——树形命名空间与Znode。详细阐述持久、临时、顺序等不同类型Znode的特性与原理,剖析其如何结合Watcher机制与Stat元数据,成为实现分布式锁、服务发现等协调功能的基础,并与文件系统、键值存储进行对比。


犬小哈2026/2/6Java面试八股文
Zookeeper 的典型应用场景有哪些?

Zookeeper 的典型应用场景有哪些?

本文系统梳理ZooKeeper五大核心应用场景:配置中心、分布式锁、服务发现、集群管理与领导者选举、分布式队列。深度解析其基于ZNode、Watcher和ZAB协议的实现原理,提供代码示例,并与Nacos/Consul对比分析,给出选型建议与Curator框架最佳实践。


犬小哈2026/2/6Java面试八股文