zookeeper
文章平均质量分 93
zookeeper
学nm个锤子
Qtmd
展开
-
6-zookeeper源码之watcher源码分析
一,Watcher 的基本流程ZooKeeper 的 Watcher 机制,总的来说可以分为三个过程:客户端注册 Watcher、服务器处理 Watcher 和客户端回调 Watcher客户端注册 watcher 有 3 种方式,getData、exists、getChildren;以如下代码为例1,基于 zkclient 客户端发起一个数据操作 <dependency> <groupId>com.101tec</groupId> <art原创 2021-03-05 17:51:55 · 236 阅读 · 0 评论 -
5-zookeeper原理之leader选举源码分析
一,Zookeeper的一致性1,Zookeeper的来源zookeeper 的来源,是来自于 google chubby。为了解决在分布式环境下,如何从多个 server 中选举出 master server。那么这多个 server 就需要涉及到一致性问题,这个一致性体现的是多个server 就 master 这个投票在分布式环境下达成一致性。简单来说就是最终听谁的。但是在网络环境中由于网络的不可靠性,会存在消息丢失和或者被篡改等问题。所以如何在这样一个环境中快速并且正确的在多个server 中对某原创 2021-03-05 00:59:49 · 558 阅读 · 1 评论 -
4-zookeeper核心原理
一,使用 Zookeeper 实现 leader 选举在分布式计算中,leader election 是很重要的一个功能,这个选举过程是这样子的:指派一个进程作为组织者,将任务分发给各节点。在任务开始前,哪个节点都不知道谁是 leader 或者 coordinator。当选举算法开始执行后,每个节点最终会得到一个唯一的节点作为任务 leader。除此之外,选举还经常会发生在 leader 意外宕机的情况下,新的 leader 要被选举出来。Curator 有两种选举 recipe(Leader Latc原创 2021-03-04 12:33:58 · 120 阅读 · 1 评论 -
3-基于Curator 实现分布式锁源码分析
一,基于 Curator 实现分布式锁1,分布式锁的基本场景如果在多线程并行情况下去访问某一个共享资源,比如说共享变量,那么势必会造成线程安全问题。那么我们可以用很多种方法来解决,比如 synchronized、 比如 Lock 之类的锁操作来解决线程安全问题,那么在分布式架构下,涉及到多个进程访问某一个共享资源的情况,这个时候我们需要一些互斥手段来防止彼此之间的干扰。然后在分布式情况下,synchronized 或者 Lock 之类的锁只能控制单一进程的资源访问,在多进程架构下,这些 api就没办法原创 2021-03-04 11:32:12 · 240 阅读 · 2 评论 -
2-zookeeper应用实战
一,zookeeper的名词复盘1,集群角色2,数据模型zookeeper 的视图结构和标准的文件系统非常类似,每一个节点称之为 ZNode, 是 zookeeper 的最小单元。每个 znode上都可以保存数据以及挂载子节点。构成一个层次化的树形结构。持久节点 PERSISTENT创建后会一直存在 zookeeper 服务器上,直到主动删除持久有序节点 PERSISTENT_SEQUENTIAL每个节点都会为它的一级子节点维护一个顺序临时节点 EPHEMERAL临时节点的生命周期和客户原创 2021-03-03 22:47:38 · 178 阅读 · 1 评论 -
1-微服务架构下的服务注册中心设计
一,单体架构到微服务架构的带来的变化1,单体架构2,分布式架构假设一个电商的下单场景,完成一笔订单入库,需要做几个操作创建订单卡券抵扣库存扣减那么在分布式架构下的调用链,可能是下面这种情况。那么服务和服务之间势必会存在远程通信。二,SpringBoot+RestTemplate1,创建两个服务创建两个 spring-boot 工程订单服务(order-service)库存服务(repo-service)2,分别创建Controller1)OrderController@原创 2021-03-03 16:07:08 · 435 阅读 · 1 评论