zookeeper使用场景实战

news2024/11/18 23:49:29

ZK java客户端

zk官方客户端没有和服务端分离,同一个jar文件,我们直接引入zk的maven即可。注意版本匹配兼容

Curator

curator java语言编程的zk客户端框架,curator项目是现在zk客户端中使用最多。
将我们平时使用的zk服务开发进行了封装,例如leader选举, 分布式计数器,分布式锁、减少开发时间。

ZK集群

 leader      处理写请求 和读请求
 follower       处理读请求
 observer       读,不参与选举

zk使用场景

1. 非公平

在这里插入图片描述
并发严重情况下,性能下降严重。所有节点对同一节点进行监听,当服务器检测到删除操作,通知所有连接。
再次并发竞争,这就是羊群效应

2. /公平锁
在这里插入图片描述
请求进来,默认创建一个临时顺序节点, 判断是不是lock节点下,最小的节点。 yes。获取锁,no,监控等待.
循环操作上述流程

3. 共享锁

在这里插入图片描述
并不是所有请求都需要加锁。 读读请求就不需要。 读写需要加读锁,通知其他线程不能进行修改, 直至读完成。写也不允许,加写锁,其他线程不能进行读和写操作。

4. leader在分布式场景中的应用

5 .spring cloud zk 注册中心实战

当服务较少时,可以直接通过点对点进行请求。请求过多扩展服务数量,通过nginx进行转发

如果服务过多
在这里插入图片描述
引入zk,监控各个服务的状态

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/398183.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux】进程状态(阻塞、挂起、僵尸进程)

文章目录1 阻塞与挂起1.1 阻塞1.2 挂起2 进程状态前言: 当我们在Windows下双击运行一个程序,或是在Linux下通过 ./ 加载运行一个程序,是否就代表对应的进程就一直处在运行状态呢?其实不然,一个进程有许多不同的状态。当…

科技和女性的今天,《赛博格宣言》半个世纪前就预言了

近几年,我们团队在实地探访各行各业数字化时,格外关注女性工作者的存在,一个强烈感受是:和女性主义理论中说的一样,因为有了数字化技术,工作对于体力、精力等要求不再苛刻,岗位上的女员工就多了…

设计模式~门面(外观)模式(Facade)-08

目录 (1)优点 (2)缺点 (3)使用场景 (4)注意事项: (5)应用实例: (6)源码中的经典应用 代码 外观模式&am…

类和对象万字详解

目录 一、面向对象与面向过程的区别 面向过程: 面向对象: 二、类的引入 class与struct爱恨情仇 class的语法 类的定义: 类的限定访问符 类的实例化 类对象模型 this指针的应用 三、封装 四、类的六个默认成员函数 构造函数 再谈…

基于NMOSFET的电平转换电路设计

一、概述: 在单片机系统中,5V、3.3V是芯片常用的电平。而在传输协议中(如IIC、SPI等协议),存在芯片与芯片的高电平和低电平定义的范围不一样,所以需要存在一个电平转换电路,来使芯片与芯片之间顺利的传输。 二、前置…

JDK动态代理(tedu)(内含源代码)

JDK动态代理(tedu)(内含源代码) 源代码下载链接地址:https://download.csdn.net/download/weixin_46411355/87546187 目录JDK动态代理(tedu)(内含源代码)源代码下载链接…

vue2学习笔记

文章目录1. 初识Vue2. 模板语法3. 数据绑定4. el与data的两种写法5. Vue中的MVVM6. 数据代理Object.defineProperty方法何为数据代理Vue中的数据代理7. 事件处理事件的基本使用事件修饰符键盘事件8. 计算属性姓名案例_插值语法实现姓名案例_methods实现姓名案例_计算属性实现姓…

dp-过河卒

题目描述 如图,A 点有一个过河卒,需要走到目标 B 点。卒行走规则:可以向下、或者向右。同时在棋盘上的 C 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点。 例如上图

【HashMap】| 深度剥析Java SE 源码合集Ⅱ | 你会吗?

目录一. 🦁 HashMap介绍1.1 特点1.2 底层实现二. 🦁 结构以及对应方法分析2.1 结构组成2.1.1 成员变量2.1.2 存储元素的节点类型2.1.2.1 链表Node类2.1.2.2 树节点类2.1.2.3 继承关系2.2 方法实现2.2.1 HashMap的数组初始化2.2.2 计算hash值2.2.3 添加元…

HTML URL

HTML 统一资源定位器 (Uniform Resource Locators) URL 是一个网页地址。 URL 可以由字母组成,如 "w3cschool.cn",或互联网协议(IP)地址: 120.79.88.157。大多数人进入网站使用网站域名来访问,因…

主流的“对象转换工具”使用示例大全以及性能的对比

目录 前言 源码地址 代码示例 引入依赖 先定两个实体用于转换 定义一个接口让所有转换器都集成 Apache BeanUtils BeanCopier bean-mapping bean-mapping-asm Dozer 自己写get/set JMapper json2json MapStruct(推荐) ModelMapper OriK…

使用Vue实现数据可视化大屏功能(二)

引入数据大屏相关组件 用Datav插件做大屏可视化的组件,官网地址 http://datav.jiaminghi.com/ ,整个组件库都是基于Vue React版本实现,主要用于构建大屏数据可视化页面,具有很多种类的组件可以使用。其安装方式如下。 npm instal…

WebRTC中的NAT穿透

NAT简介 我们知道,WebRTC会按照内网、P2P、中转的顺序来尝试连接。在大部分的情况下,实际是使用P2P或者中转的。这里P2P的场景主要使用的技术就是NAT穿透。 我们先简单了解下NAT。NAT在真实网络中是常见的,它的出现一是为了解决ipv4地址不够…

2.1操作系统-进程管理:进程的同步与互斥、信号量与PV操作、PV操作与互斥模型、PV操作与同步模型

2.1操作系统-进程管理:进程的同步与互斥、信号量与PV操作、PV操作与互斥模型、PV操作与同步模型进程的同步与互斥PV操作PV操作与互斥模型PV操作与同步模型进程的同步与互斥 进程是动态的,有一些动态变迁的过程,进程在计算机中是可以同时存在…

JavaEE简单示例——Spring框架的简单介绍

简单介绍: 在我们之前创建的Java项目中,会发现我们的各种类,接口文件和配置文件都放在了一起,虽然我们也做了一些包管理去管理我们的这些文件,但是对于我们来说,这些操作还是太繁琐了,尤其是当…

Spark-RDD创建、并行分区

集合(内存)中创建 RDD 外部存储(文件)创建 RDD 并行与分区 分区的设定 集合(内存)中创建 RDD 从集合中创建 RDD,Spark 主要提供了两个方法:parallelize 和 makeRDD,从…

【源码解析】SpringBoot缓存之@Cacheable的快速入门和源码解析

快速入门 启动类上添加注解EnableCaching在方法上添加注解Cacheable。 OverrideCacheable(cacheNames "value", key "#code_#dictKey")public String getValue(String code, Integer dictKey) {return baseMapper.getValue(code, dictKey);}OverrideCac…

数据结构和算法学习记录——线性表之单链表(上)-初始单链表及其头插函数(顺序表缺陷、单链表优点、链表打印)

单链表的概念单链表是一种链式存取的数据结构,链表中的数据是以结点来表示的。每个结点的构成:元素(数据元素的映象) 指针(指示后继元素存储位置)。元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。以“结点的序列”表示的线性…

Kubernetes Service简介

Service 之前我们了解了Pod的基本用法,我们也了解到Pod的生命是有限的,死亡过后不会复活了。我们后面学习到的RC和Deployment可以用来动态的创建和销毁Pod。尽管每个Pod都有自己的IP地址,但是如果Pod重新启动了的话那么他的IP很有可能也就变…

cocos2dx+lua学习笔记:事件派发器CCEventDispatcher

前言 本篇在讲什么 cocos2dx内关于事件监听和派发的调度器EventDispatcher相关内容 本篇适合什么 适合初学Cocos2dx的小白 适合想要学习EventDispatcher的新手 本篇需要什么 对Lua语法有简单认知 对C语法有简单认知 对Cocos2dx有简单认知 Cocos2dx-Lua的开发环境 依…