Zookeeper
super_man_0820
无无
展开
-
Curator实现全局、非阻塞可重入锁(InterProcessMutex)
项目背景: web进行sql编辑的时候,只能有一个客户端进行编辑,不允许多个客户端同时修改。 相关说明: * 浏览器端会为每个sql编辑客户端生成唯一标识:时间戳+随机数+用户工号 * 当用户尝试编辑时,需要获取该任务的特定ZK节点下的锁(排它锁) * 采用 Curator 的 InterProcessMutex 实现全局可重入锁 demo说明: * InterProcessMutexE : ...原创 2019-07-10 21:25:06 · 1170 阅读 · 0 评论 -
Zookeeper常见应用场景
ZooKeeper 是一个开源的分布式协调服务,设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。 Zookeeper典型应用场景 命名服务(Naming Service) 数据发布与订阅(配置中心) 集群管理与Master选举 分布式锁 分布式通知/协调 分布式队列 负载均衡 1. 命名服务(Naming Servic...原创 2019-07-05 19:41:38 · 382 阅读 · 0 评论 -
Curator 三种 Watcher 监听实现
项目背景: 实时 Flink任务中,需要实现不停实时任务,清除关联维表的本地缓存。 方案: 方案采用 Zookeeper 的配置中心的功能,即当需要清除正在运行 Flink App 的维表本地缓存时,通过web端配置 Zookeeper 指定节点上的配置值,Flink App 上 Watch 指定节点上的值,一旦发生变化,Flink 即清除本地维表数据缓存。 Zookeeper特性背景 Curat...原创 2019-07-05 19:52:45 · 3038 阅读 · 0 评论 -
Zookeeper Leader选举实现
项目背景: web端monitor模块,负责处理实时应用(app)上传的metric信息,但是多台jboss不能重复处理,因此利用Zookeeper leader选举功能,从多台jboss中选出一个leader,负责分发各app给jboss进行metric统计及告警 相关说明: * Curator 有两种leader选举的recipe, 分别是 LeaderSelector 和 LeaderLat...原创 2019-07-05 20:05:03 · 318 阅读 · 0 评论 -
分布式锁的预研
一般实现分布式锁都有哪些方式? redis分布式锁 zk分布式锁 数据库乐观锁 为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件: 互斥性 在任意时刻,只有一个客户端能持有锁 不会发生死锁 即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。 具有容错性 只要大部分的Redis节点正常运行,客户端就可以加锁和解锁。 解铃还须系铃人 加...原创 2019-08-22 15:53:04 · 134 阅读 · 0 评论