分布式-Zookeeper-Master选举

本文涉及的产品
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 分布式-Zookeeper-Master选举

Master选举

Master:通过Master来进行领导。

1、Leader选举和Master选举的区别:

①、Leader选举是遵循Zab协议的一种协调方式,保证数据的一致性,Leader选举是投票产生的。

②、而Master选举保证高可用性,Master-slave的思想。

2、高可用:不管怎么出现故障,整个集群是对外提供服务的,提供的服务是不能断的。一般出现单点故障的话解决的办法是主备策略(Master-slave)。

在Zk集群中,在zookeeper的根节点一般有两个节点,一个master节点,通过master节点当选为Master。而servers节点存储的是所有的可用的服务列表的信息。

在Zk集群的服务中比如有三个工作服务实例相同的,同时去抢占创建Master节点,然后把自己的服务信息注册到servers的节点的下面,注册的原因是为了选举出Master。这个master节点是临时的。

当第一个工作服务的实例挂掉的话,这个master的节点也就删除。

剩下的节点的工作服务实例监听到了master节点消失之后,又去竞争master节点。谁先写入谁就先成为Master,比如第三台的服务实例抢到了master节点,从而第三台就为master。

剩下的节点服务实例也会去竞争创建节点master,但是当在zookeeper节点下有master节点的话,就不会再创建节点Master了,而是注册master服务的信息,当master挂掉之后,要更新整个服务列表,也是为了执行master的命令才会注册。

这时始终都有一个master,都可以对外提供服务。这就是高可用的特征,有且只有一个master。master选举针对服务而言的,不是针对于zk集群中的节点。这三个服务实例统统部署的同一个服务。

比如下面有三个支付服务的实例,只有一个服务实例对外提供服务。其中两个都是备用的。

master节点没有时间限制,只要work server宕机掉,master节点就消失,一旦消失,其他的服务实例就来抢。

当Master挂掉之后,也可以选择编号最大的来创建master节点从而选为master。这也解决了当服务实例太多而导致的网络阻塞的原因。

zk的主要作用是提供了强大的监听器,就是服务的注册与发现,节点的删除和新增它都能够进行监测。可以通过一些工具和算法来达到负载均衡和命名服务。

如果出现网络抖动的问题的话,导致master节点出现删

处理方案:为了提高效率,开销最小,首先先分析先前的master是否恢复,如果恢复了,那么就选择这个为master,如果没有恢复就让其它竞争master。

实际当中,网络抖动肯定是要加的,保证高可用性和效率。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
2月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
2月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
1月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
43 2
|
1月前
|
分布式计算 负载均衡 算法
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
Hadoop-31 ZooKeeper 内部原理 简述Leader选举 ZAB协议 一致性
28 1
|
1月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
47 1
|
1月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
47 0
|
2月前
|
Java
分布式-Zookeeper-分布式锁
分布式-Zookeeper-分布式锁
|
1月前
|
NoSQL Java Redis
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
Redis分布式锁在高并发场景下是重要的技术手段,但其实现过程中常遇到五大深坑:**原子性问题**、**连接耗尽问题**、**锁过期问题**、**锁失效问题**以及**锁分段问题**。这些问题不仅影响系统的稳定性和性能,还可能导致数据不一致。尼恩在实际项目中总结了这些坑,并提供了详细的解决方案,包括使用Lua脚本保证原子性、设置合理的锁过期时间和使用看门狗机制、以及通过锁分段提升性能。这些经验和技巧对面试和实际开发都有很大帮助,值得深入学习和实践。
太惨痛: Redis 分布式锁 5个大坑,又大又深, 如何才能 避开 ?
|
3月前
|
NoSQL Redis
基于Redis的高可用分布式锁——RedLock
这篇文章介绍了基于Redis的高可用分布式锁RedLock的概念、工作流程、获取和释放锁的方法,以及RedLock相比单机锁在高可用性上的优势,同时指出了其在某些特殊场景下的不足,并提到了ZooKeeper作为另一种实现分布式锁的方案。
110 2
基于Redis的高可用分布式锁——RedLock
|
7天前
|
NoSQL Redis
Redis分布式锁如何实现 ?
Redis分布式锁通过SETNX指令实现,确保仅在键不存在时设置值。此机制用于控制多个线程对共享资源的访问,避免并发冲突。然而,实际应用中需解决死锁、锁超时、归一化、可重入及阻塞等问题,以确保系统的稳定性和可靠性。解决方案包括设置锁超时、引入Watch Dog机制、使用ThreadLocal绑定加解锁操作、实现计数器支持可重入锁以及采用自旋锁思想处理阻塞请求。
40 16