标签: Zookeeper

OOM | 2024-06-03 | Zookeeper后端相关

为什么说 Zookeeper 不适合做服务注册中心?

众所周知在微服务架构中,服务注册中心是一个关键的组件,用于管理和维护各个微服务的注册和发现。为我们的系统提供了一个可靠的机制,使得服务之间能够自动注册和发现,从而实现服务之间的通信。 而常用的服务注册中心有 Zookeeper 、 Etcd 、 Consul 、 Nacos 、 Eureka 等,我们在做技术选型的时候,往往要根据不同的需求和场景选择不同的解决方案。 这篇文章主要跟大家讨论一下为什么说不建议使用 Zookeeper 来作为服务注册中心,大家在技术选型的时候可以适当参考。 CAP 理论 在介绍 Zookeeper 之前,先简单回顾一下 CAP 理论, CAP 理论是 分布式架构 中重要理论: 一致性( Consistency ):所有节点在同一时间具有相同的数据; 可用性( Availability ) :保证每个请求不管成功或者失败都有响应; 分区容忍性( Partition tolerance ) :系统中任意信息的丢失或失败不会影响系统的继续运作。 CAP 理论主要讲的是在分布式系统的,无法满足上述的三个条件...

 307 |  0 |  0 Zookeeper后端相关

流苏 | 2024-02-26 | Zookeeper后端相关

1.2万字浅析ZooKeeper原理以及如何基于ZooKeeper实现高可用架构

1. 背景 对于zookeeper,大家都比较熟悉,在Kafka、HBase、[Dubbo]()中都有看到过他的身影,那zookeeper到底是什么,都能做些什么呢?今天我们一起来了解下。 2. ZooKeeper简介 2.1 概述 简单理解,ZooKeeper 是分布式应用程序的分布式开源协调服务,封装了分布式架构中核心和主流的需求和功能,并提供一系列简单易用的接口提供给用户使用。分布式应用程序可以根据zookeeper实现分布式锁、分布式集群的集中式元数据存储、Master选举、分布式协调和通知等。下图是官网上zookeeper的架构简图: 从zk的架构图中也可以了解到,zk本身就是一个分布式的、高可用的系统。有多个server节点,其中有一个是leader节点,其他的是follower节点,他们会从leader节点中复制数据。客户端节点连接单个zk服务器,并维护一个TCP连接,通过该连接发送...

 708 |  0 |  0 Zookeeper后端相关

蔡文姬 | 2023-12-01 | ZookeeperRedis后端相关

分布式锁的各种实现,看完这篇你就懂了!

今天我们讲讲分布式锁,网上相关的内容有很多,但是比较分散,刚好自己刚学习完总结下,分享给大家,文章内容会比较多,我们先从思维导图中了解要讲的内容。 01 什么是分布式锁 分布式锁是控制分布式系统之间同步访问共享资源的一种方式,通过互斥来保持一致性。 了解分布式锁之前先了解下线程锁和进程锁: 线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一[JVM]()中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,比如[Synchronized]()、Lock等。 进程锁:控制同一操作系统中多个进程访问某个共享资源,因为进程具有独立性,各个进程无法访问其他进程的资源,因此无法通过synchronized等线程锁实现进程锁。比如Golang语言中的sync包就提供了基本的同步基元,如[互斥锁]()。 但是以上两种适合在单体架构应用,但是分布式系统中多个服务节点,...

 248 |  0 |  0 ZookeeperRedis

雪千寻 | 2023-09-08 | ZookeeperJava

Zookeeper Zab一致性协议全流程详细解读

Zab协议 的全称是 Zookeeper Atomic Broadcast (Zookeeper原子广播) Zookeeper的Zab协议代码十分复杂,涉及多个实例和多线程的调用,通过Aop日志分析才弄明白。 ZAB协议流程 请求流程 核心步骤: 步骤一: 将请求转发给leader,如果客户端所连的服务端是follwer节点 步骤二: leader发送Proposal,给所有follwer节点 步骤三: 处理leader的Proposal,将提交放到pendingTxns,并且发送Ack请求 步骤四: 判断是否成功,发送commit请求,收到大于一半节点的ack则可以提交 步骤五: 所有节点处理提交请求,修改数据库 具体处理逻辑在下面节点分析有更清楚的描述 查看节点状态 powershell命令 echo -----node1------; echo stat

 463 |  0 |  0 ZookeeperJava