zookeeper最基础教程
文章目录
- 一、简介
- 1、工作机制
- 2、特点
- 3、数据结构
- 4、应用场景
- 5、选举机制
- 二、软件安装
- 1、单机版安装
- 2、集群安装
- 3、配置参数解读(zoo.cfg)
- 4、ZK集群启动脚本
- 三、命令行操作
- 1、语法
- 2、使用
- 3、节点相关
- 4、监听器原理
- 5、节点删除与查看
- 三、写数据流程
一、简介
1、工作机制
官方地址:https://zookeeper.apache.org/
Zookeeper是一个开源的分布式的,为分布式框架提供协调服务的Apache项目。
- Zookeeper从设计模式角度来理解:是一个基于观察者模式设计的分布式服务管理框架,它负责存储和管理大家都关心的数据,然后接受观察者的注册,一旦这些数据的状态发生变化,Zookeeper就将负责通知已经在Zookeeper上注册的那些观察者做出相应的反应。
2、特点
- Zookeeper:一个领导者(Leader),多个跟随者(Follower)组成的集群。
- 集群中只要有半数以上节点存活,Zookeeper集群就能正常服务。所以Zookeeper适合安装奇数台服务器。
- 全局数据一致:每个Server保存一份相同的数据副本,Client无论连接到哪个Server,数据都是一致的。
- 更新请求顺序执行,来自同一个Client的更新请求按其发送顺序依次执行。
- 数据更新原子性,一次数据更新要么成功,要么失败。
- 实时性,在一定时间范围内,Client能读到最新数据。
3、数据结构
- ZooKeeper数据模型的结构与Unix文件系统很类似。
- 整体上可以看作是一棵树,每个节点称做一个ZNode。
- 每一个ZNode默认能够存储1MB的数据,每个ZNode都可以通过其路径唯一标识。
4、应用场景
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。
- 统一命名服务
- 统一配置管理
- 统一集群管理
- 服务器节点动态上下线
- 软负载均衡等
统一命名服务
- 在分布式环境下,经常需要对应用/服务进行统一命名,便于识别。例如:IP不容易记住,而域名容易记住。
统一配置管理
-
分布式环境下,配置文件同步非常常见。
- 一般要求一个集群中,所有节点的配置信息是一致的,比如 Kafka 集群。
- 对配置文件修改后,希望能够快速同步到各个节点上。
-
配置管理可交由ZooKeeper实现。
- 可将配置信息写入ZooKeeper上的一个Znode。
- 各个客户端服务器监听这个Znode。
- 一旦Znode中的数据被修改,ZooKeeper将通知各个客户端服务器。
统一集群管理
- 分布式环境中,实时掌握每个节点的状态是必要的。
- 可根据节点实时状态做出一些调整。
- ZooKeeper可以实现实时监控节点状态变化。
- 可将节点信息写入ZooKeeper上的一个ZNode。
- 监听这个ZNode可获取它的实时状态变化。
服务器动态上下线
软负载均衡
- 在Zookeeper中记录每台服务器的访问数,让访问数最少的服务器去处理最新的客户端请求。
5、选举机制
首次启动
- 1)服务器1启动,发起一次选举。服务器1投自己一票。此时服务器1票数一票,不够半数以上(3票),选举无法完成,服务器1状态保持为LOOKING;
- 2)服务器2启动,再发起一次选举。服务器1和2分别投自己一票并交换选票信息:此时服务器1发现服务器2的myid比自己目前投票推举的(服务器1)大,更改选票为推举服务器2。此时服务器1票数0票,服务器2票数2票,没有半数以上结果,选举无法完成,服务器1,2状态保持LOOKING。
- 3)服务器3启动,发起一次选举。此时服务器1和2都会更改选票为服务器3。此次投票结果:服务器1为0票,服务器2为0票,服务器3为3票。此时服务器3的票数已经超过半数,服务器3当选Leader。服务器1,2更改状态为FOLLOWING,服务器3更改状态为LEADING;
- 4)服务器4启动,发起一次选举。此时服务器1,2,3已经不是LOOKING状态,不会更改选票信息。交换选票信息结果:服务器3为3票,服务器4为1票。此时服务器4服从多数,更改选票信息为服务器3,并更改状态为FOLLOWING;
- 5)服务器5启动,同4一样当小弟。
非第一次启动
二、软件安装
# The number of milliseconds of each tick
# 通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
tickTime=2000d# The number of ticks that the initial
# synchronization phase can take
# LF初始通信时限
initLimit=10# The number of ticks that can pass between
# sending a request and getting an acknowledgement
# LF同步通信时限
syncLimit=5# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
#dataDir=/tmp/zookeeper
# 保存Zookeeper中的数据
dataDir=/opt/module/zookeeper-3.5.7/zkData# the port at which the clients will connect
#客户端连接端口,通常不做修改
clientPort=2181
1、单机版安装
安装JDK(首先需要安装JDK)
yum install java-1.8.0-openjdk-devel.x86_64
创建文件/opt/module
mkdir /opt/module
cd /opt/module
下载文件
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz
解压文件
tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module
修改安装目录名
mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7
配置环境变量
vim /etc/profile.d/my_env.sh# ZOOKEEPER_HOME
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.5.7
export PATH=$PATH:$ZOOKEEPER_HOME/bin
加载环境变量
source /etc/profile
添加配置文件
cd /opt/module/zookeeper-3.5.7/conf/
mv zoo_sample.cfg zoo.cfg
修改配置文件
vim zoo.cfg
# 修改数据所在文件
dataDir=/opt/module/zookeeper-3.5.7/zkData
创建日志目录
mkdir /opt/module/zookeeper-3.5.7/zkData
启动zookeeper
bin/zkServer.sh start
查询启动状态
# 查看进程
jps
# 查看状态
bin/zkServer.sh status
启动客户端
bin/zkCli.sh
退出客户端
quit
停止zookeeper
bin/zkServer.sh stop
2、集群安装
安装JDK(首先需要安装JDK)
yum install java-1.8.0-openjdk-devel.x86_64
创建文件/opt/module
mkdir /opt/module
cd /opt/module
下载文件
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.5.7/apache-zookeeper-3.5.7-bin.tar.gz
解压文件
tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module
修改安装目录名
cd /opt/module
mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7
创建数据存储目录
cd /opt/module/zookeeper-3.5.7/
mkdir zkData
在/opt/module/zookeeper-3.5.7/zkData
目录下创建一个myid的文件
在文件中添加与server对应的编号(注意:上下不要有空行,左右不要有空格)
cd /opt/module/zookeeper-3.5.7/zkData
vim myid
# 服务器编号,每台服务器要不同
1
配置zoo.cfg配置文件
cd /opt/module/zookeeper-3.5.7/conf
mv zoo_sample.cfg zoo.cfg
修改配置文件
vim /opt/module/zookeeper-3.5.7/conf/zoo.cfg# 修改数据存储位置
dataDir=/opt/module/zookeeper-3.5.7/zkData# 增加集群配置
#######################cluster##########################
server.1=hadoop101:2888:3888
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
启动集群(3台都要启动)
cd /opt/module/zookeeper-3.5.7
bin/zkServer.sh start
查看状态
bin/zkServer.sh status
3、配置参数解读(zoo.cfg)
Zookeeper中的配置文件zoo.cfg中参数含义解读如下:
# 通信心跳时间
tickTime=2000
# LF初始通信时限
initLimit=10
# LF同步通信时限
syncLimit=5
# 保存Zookeeper中的数据
dataDir=/tmp/zookeeper
# 客户端连接端口,通常不做修改
clientPort=2181
- tickTime = 2000:通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒
- initLimit = 10:LF初始通信时限
Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量)
- syncLimit = 5:LF同步通信时限
Leader和Follower之间通信时间如果超过syncLimit * tickTime
,Leader认为Follwer死掉,从服务器列表中删除Follwer。
- dataDir:保存Zookeeper中的数据
注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录。
- clientPort = 2181:客户端连接端口,通常不做修改。
4、ZK集群启动脚本
#!/bin/bashcase $1 in
"start"){for i in hadoop102 hadoop103 hadoop104doecho ---------- zookeeper $i 启动 ------------ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"done
};;
"stop"){for i in hadoop102 hadoop103 hadoop104doecho ---------- zookeeper $i 停止 ------------ ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"done
};;
"status"){for i in hadoop102 hadoop103 hadoop104doecho ---------- zookeeper $i 状态 ------------ ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"done
};;
esac
三、命令行操作
1、语法
命令基本语法 | 功能描述 |
---|---|
help | 显示所有操作命令 |
ls path | 使用 ls 命令来查看当前znode的子节点 [可监听]-w 监听子节点变化-s 附加次级信息 |
create | 普通创建-s 含有序列-e 临时(重启或者超时消失) |
get path | 获得节点的值 [可监听]-w 监听节点内容变化-s 附加次级信息 |
set | 设置节点的具体值 |
stat | 查看节点状态 |
delete | 删除节点 |
deleteall | 递归删除节点 |
2、使用
启动客户端
bin/zkCli.sh -server hadoop101:2181
显示所有操作命令
help
查看当前znode中所包含的内容
ls /
查看当前节点详细数据
ls -s /
czxid
:创建节点的事务zxid- 每次修改ZooKeeper状态都会产生一个ZooKeeper事务ID。事务ID是ZooKeeper中所有修改总的次序。每次修改都有唯一的zxid,如果zxid1小于zxid2,那么zxid1在zxid2之前发生。
ctime
:znode被创建的毫秒数(从1970年开始)mzxid
:znode最后更新的事务zxidmtime
:znode最后修改的毫秒数(从1970年开始)pZxid
:znode最后更新的子节点zxidcversion
:znode子节点变化号,znode子节点修改次数dataversion
:znode数据变化号aclVersion
:znode访问控制列表的变化号ephemeralOwner
:如果是临时节点,这个是znode拥有者的session id。如果不是临时节点则是0。dataLength
:znode的数据长度numChildren
:znode子节点数量
3、节点相关
节点可以分为持久节点、短暂节点。
持久(Persistent)
:客户端和服务器端断开连接后,创建的节点不删除。- 持久化目录节点客户端与Zookeeper断开连接后,该节点依旧存在
- 持久化顺序编号目录节点客户端与Zookeeper断开连接后,该节点依旧存在,只是Zookeeper给该节点名称进行顺序编号
短暂(Ephemeral)
:客户端和服务器端断开连接后,创建的节点自己删除。- 临时目录节点客户端与Zookeeper断开连接后,该节点被删除。
- 临时顺序编号目录节点客户端与Zookeeper断开连接后,该节点被删除,只是Zookeeper给该节点名称进行顺序编号。
说明:创建znode时设置顺序标识,znode名称后会附加一个值,顺序号是一个单调递增的计数器,由父节点维护。
注意:在分布式系统中,顺序号可以被用于为所有的事件进行全局排序,这样客户端可以通过顺序号推断事件的顺序。
分别创建2个普通节点(创建节点时,要赋值)
create /sanguo "diaochan"
create /sanguo/shuguo "liubei"
获取子节点
ls /sanguo
获取sanguo
的值
get -s /sanguo
- 普通节点:
create /test/test1 "zhansan01"
- 带序号节点:
create -s /test/test1 "zhansan01"
:创建的节点带序号test1000001
- 短暂节点:
create -e /test/test1 "zhansan01"
:关闭客户端后会消失(临时)
创建普通节点
create /test/test1 "zhansan01"
创建带序号节点
create -s /test/test2/test21 "zhansan02"
create -s /test/test2/test22 "lisi02"
create -s /test/test2/test23 "wangwu02"
创建短暂节点(关闭客户端后消失)
create -e /test/test3 "zhansan03"
# 创建短暂的带序号的节点
create -e -s /test/test3 "lisi03"
修改节点的值
set /test/test3 "wangwu03"
4、监听器原理
客户端注册监听它关心的目录节点,当目录节点发生变化(数据改变、节点删除、子目录节点增加删除)时,ZooKeeper会通知客户端。监听机制保证ZooKeeper保存的任何的数据的任何改变都能快速的响应到监听了该节点的应用程序。
监听原理
- 1)首先要有一个main()线程
- 2)在main线程中创建Zookeeper客户端,这时就会创建两个线程,一个负责网络连接通信(connet),一个负责监听(listener)。
- 3)通过connect线程将注册的监听事件发送给Zookeeper。
- 4)在Zookeeper的注册监听器列表中将注册的监听事件添加到列表中。
- 5)Zookeeper监听到有数据或路径变化,就会将这个消息发送给listener线程。
- 6)listener线程内部调用了process()方法。
常见的监听
#监听节点数据的变化
get path [watch]
# 监听子节点增减的变化
ls path [watch]
监控/test
值变化
get -w /test
# 更新/test值
set /test "zhangsan"
注意:在hadoop103再多次修改/sanguo的值,hadoop104上不会再收到监听。因为注册一次,只能监听一次。想再次监听,需要再次注册。
监控子目录变化
ls -w /test
# 新建子目录值
create /test/test4 "zhangsan04"
注意:节点的路径变化,也是注册一次,生效一次。想多次生效,就需要多次注册。
5、节点删除与查看
删除节点
delete /test/test4
递归删除节点
deleteall /test/test2
查看节点状态
stat /test
三、写数据流程
相关文章:
zookeeper最基础教程
文章目录 一、简介1、工作机制2、特点3、数据结构4、应用场景5、选举机制 二、软件安装1、单机版安装2、集群安装3、配置参数解读(zoo.cfg)4、ZK集群启动脚本 三、命令行操作1、语法2、使用3、节点相关4、监听器原理5、节点删除与查看 三、写数据流程 一、简介 1、工作机制 官…...
又一重磅利好来袭!Zebec Payroll 集成至 Nautilus Chain 主网
流支付协议 Zebec Protocol 正在积极的拓展自身生态,随着此前其全新路线图的发布,揭示了该生态从 Web3 世界向 Web2 世界跨越的决心。根据其最新路线图,Zebec Protocol 正在从最初构建在 Solana 上的流支付协议,拓展为囊括模块化公…...
NLP模型的tokenize方法中return_tensors参数
NLP模型的tokenize方法中return_tensors参数 在许多NLP模型的tokenize方法中,return_tensors参数可以指定tokenize之后返回的张量类型,常见的可选值包括: ‘tf’: 返回TensorFlow的张量对象Tensor。 ‘pt’: 返回PyTorch的张量对象torch.Tensor。 ‘np’: 返回NumPy的ndarray对…...
模方新建工程时,显示空三与模型坐标系不一致怎么解决
答:检查空三xml与模型的metadata.xml的坐标系是否一致,metadata文件是否有在data目录外面。 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的实景三维模型修复编辑软件。模方4.0新增单体化建模模块,…...
氧化锌避雷器绝缘电阻测试
氧化锌避雷器 绝缘电阻测试 试验目的 避雷器绝缘电阻包括本体绝缘电阻和底座绝缘电阻, 主要目的在于初步检查避雷 器内部是否受潮; 有并联电阻者可检查其通、 断、 接触和老化等情况。 试验设备 高压绝缘电阻测试仪 厂家: 湖北众拓高试 试验方法 本体绝缘电阻试验…...
链动2+1系统开发
什么是链动21模式? 链动21主要是一个集团队搭设、快速提升产品销量,与消费者做到合作共赢的一个商业模式,让用户在享受购物折扣的同时,也能获得相对收益,同时公司也能达到产品快速销售这样的一个目的,而链…...
AIGC(生成式AI)试用 4 -- 从模糊到精确
从模糊到精确,也许差异在于 更多的描述,更多的信息更具像的描述,更多的数据,更有效的信息主题明确和目标清晰层次感与条理性更简洁清晰的逻辑 “说清楚点,不太明白,提供更多的信息也许能知道要做什么。” …...
Linux中使用Docker安装ElasticSearch7.10.x集群
使用Docker安装ElasticSearch7.10.x单节点请访问这里 一、集群环境说明 服务器IP地址192.168.137.1,192.168.137.2,192.168.137.3 二、前期准备 1. 拉取镜像 docker pull elasticsearch:7.10.12. 首先需要创建一个用于生成秘钥的初始容器࿰…...
electron 左上角图标 dev(开发环境)可显示 build(打包)后无法显示
先说解决方法,用于作为图标的ico文件需要富集多种尺寸,必须包含256*256,且同时应当包含其他更小的尺寸。 例如: 接下来解释一下这么做的原因 ico是Iconfile的缩写,是Windows计算机中的一种图标文件格式,…...
全球与中国BGO晶体市场:增长趋势、竞争格局与前景展望
BGO晶体,全名为Bismuth Germanate Scintillation Crystal(铋锗酸盐闪烁晶体),是一种用于探测放射性粒子和射线的闪烁晶体材料。它的主要成分是铋氧化物(Bi4Ge3O12),其中铋和锗的特性使得这种晶体…...
华三路由交换技术基础——计算机网络基础
计算机网络: 定义:一组具有自治权的计算机互联的集合 作用: 1.共享信息资源 2.分解式处理信息 4.负载均衡 5.综合信息服务 它是计算机技术与通信技术的两个领域的结合 一,计算机网络中的基本概念: 局域网ÿ…...
Docker搭建RK3568开发环境
推荐:Ubuntu 20.04 版本 Docker加速 # 编辑 Docker 配置文件 $ sudo vim /etc/docker/daemon.json# 加入以下配置项 {"registry-mirrors": ["https://dockerproxy.com","https://hub-mirror.c.163.com","https://mirror.baidu…...
【GAMES202】Real-Time Ray Tracing 1—实时光线追踪1
一、前言 这篇我们开始新的话题—Real-Time Ray Tracing简称RTRT,也就是实时光线追踪,关于光线追踪,我们已经不止一次提到过它的优点,无论是软阴影还是全局光照,光线追踪都很容易做,唯一的缺点就是速度太慢…...
Linux修复损坏的文件系统
如何判断文件系统是否损坏 当文件系统受损时,将会出现一些明显的迹象。例如,文件或文件夹无法访问、文件大小异常、系统启动慢或无法启动等。此外,系统也可能发出一些错误信息,如"Input/output error"、"Filesyst…...
三分钟学会一个新技能——使用Java操作Redis
目录 1、前置准备操作 1.1、为什么要进行前置准备操作 1.2、本地如何访问到云服务上Redis的6379端口号 1.3、配置步骤: 2、配置后本地主机如何操作 3、常用命令举例 3.1、通用命令举例 3.2、string相关命令举例 3.3、hash相关命令举例 3.4、list相关命令…...
Java学习笔记------内部类
内部类的定义: 在一个类的里面再定义一个类 内部类的使用场景: 内部类表示的事物是外部类的一部分(B类表示的事物是A类的一部分,且B单独存在没有意义)内部类单独出现没有任何意义 内部类的访问特点 内部类可以直接…...
面试题:问js的forEach和map的区别
前端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 【国庆头像】- 国庆爱国 程序员头像!总有一款适合你! 前言 为什么要写这么一篇文章,原因是今天下午水群的时候&…...
Hadoop设置固定ip无效的解决办法
今天配置Hadoop的时候,执行vi /etc/sysconfig/network-scripts/ifcfg-ens33修改网络配置文件后,一切正常,但重启后IP改变了,并且在修改以及重启网络连接数次后,IP依旧不按照我在ifcfg-ens33中配置的那样,检…...
论文解读 | 用于3D对象检测的PV-RCNN网络原创
原创 | 文 BFT机器人 01 背景 本文的背景涉及到3D物体检测,这是一个在自动驾驶和机器人等领域应用广泛的重要问题。在这些领域,LiDAR传感器被广泛用于捕捉3D场景信息,生成不规则且稀疏的点云数据。这些点云数据提供了理解和感知3D场景的关键…...
kali安装volatility及插件mimikatz
1.准备工作 kali安装pip2 wget https://bootstrap.pypa.io/pip/2.7/get-pip.py python2 get-pip.py 查看pip2版本 python2 -m pip -v pip2安装升级 pip2 install --upgrade setuptools 安装2个库 pip2 install construct2.10.54 pip2 install pycryptodome 下载文件d…...
什么是阻塞队列?如何使⽤阻塞队列来实现⽣产者-消费者模型?哪个阻塞队列最常用?
阻塞队列 阻塞队列(Blocking Queue)是一种特殊类型的队列,它具有阻塞特性,即当队列为空时,试图从队列中取出元素的操作会被阻塞,直到队列中有元素可取。同样,当队列已满时,试图将元素放入队列的操作也会被阻塞,直到队列有空闲空间。 JDK 7引入了7个阻塞队列,它们都…...
Bean拷贝组件(注解驱动)方案设计与落地
一、背景 数据流转在各层之间的过程,应当是改头换面的,字段属性数量,属性名称(一般不变,但也有重构时出现变化的情况),类型名称(普遍变化例如BO、VO、DTO)。对于转换的业…...
hive的建表语句
hive建表语句CREATE TABLE ccwn_zh_event_push (customerid string,cardnumber string,accountnumber string,eventcode string,eventtime string,activities string,activityRefuseCode string,lables string)PARTITIONED BY(dt string)ROW FORMAT SERDE org.apache.hadoop.hi…...
提升效率:PostgreSQL准确且快速的数据对比方法
作为一款强大而广受欢迎的开源关系型数据库管理系统,PostgreSQL 在数据库领域拥有显著的市场份额。其出色的可扩展性、稳定性使其成为众多企业和项目的首选数据库。而在很多场景下(开发|生产环境同步、备份恢复验证、数据迁移、数据合并等)&a…...
【轻NAS】Windows搭建可道云私有云盘,并内网穿透公网访问
文章目录 1.前言2. Kodcloud网站搭建2.1. Kodcloud下载和安装2.2 Kodcloud网页测试 3. cpolar内网穿透的安装和注册4. 本地网页发布4.1 Cpolar云端设置4.2 Cpolar本地设置 5. 公网访问测试6.结语 1.前言 云存储作为近些年兴起的概念,成功吸引了各大互联网厂商下场&…...
计算机网络 第一章:概述
目录 一.因特网概述 1.1网络、互联网(互连网)和因特网 1.2internet与Internet的区别 1.3因特网服务提供者ISP(Internet Service Provider) 1.4因特网组成 二.三种交换方式 2.1电路交换 2.2分组交换(重点) 2.3报文交换 三.计算机网络的定义和分类 四.计算机网络的性能…...
centos7 firewalld ip转发设置、安装docker-compose出现错误、docker-compose部署Yapi
一 centos7 firewalld ip转发设置 #!/bin/bash #开启系统路由模式功能 vim /etc/sysctl.conf #添加下面一行 net.ipv4.ip_forward1 #运行这个命令会输出上面添加的那一行信息,意思是使内核修改生效 sysctl -p #开启firewalld systemctl start firewalld #防火墙开启…...
Cglib代理和JDK代理原理的区别
一、JDK Jdk动态代理,拿到目标类所继承的接口,生成代理类,并且代理类也会实现和目标类一样的接口。 二、Cglib Cglib代理功能更强,无论目标类是否实现接口都可以代理,他是基于继承的方式类代理目标类,如果…...
论文阅读-A General Language for Modeling Social Media Account Behavior
论文链接:https://arxiv.org/pdf/2211.00639v1.pdf 目录 摘要 1 Introduction 2 Related work 2.1 Automation 2.2 Coordination 3 Behavioral Language for Online Classification 3.1 BLOC alphabets 3.1.1 Action alphabet 3.1.2 Content alphabets 3.…...
Python中的异常处理4-3
在《Python中的异常处理4-2》中提到,except语句后面可以加上具体的异常类型。有时我们需要这个异常的其他细节,此时可以使用except...as语句。 1 except...as语句 except..as语句的格式为 except 异常类型 as 异常实例名 从以上格式中可以看到&#…...
北京微网站建设设计服务/站长工具网址查询
常听人说,多线程处理快~ 是啊,多条渠道同时进行确实快、可在计算机世界多线程处理一定快吗,显然不是。首先了解几个常识 1、线程执行需要获取cpu的执行权 2、对于1核cpu,多个线程需要去抢cpu、谁抢到谁执行,这就代表有…...
中国旅游网/seo的中文含义是
作为一个消息系统,当消息从producer流到consumer,有许多因素都会影响到消息的消费,在kafka中,消息有3种消费语义: 对于这3种语义,我们来看一下可能出现的场景 producer端 发送一条消息后,可能有…...
常熟祥云平台网站建设/google权重查询
音标:英[kəˈnekt]美[kəˈnɛkt]vt.连接,联结;使…有联系;为…接通电话;插入插座vi.连接;建立关系;[体]成功击中网络联系;联络;毗连;贯通行业释义体育1.击中…...
建筑企业网站/seo百度刷排名
1、删除小娜 ,打开powrshell运行 Get-AppxPackage -allusers Microsoft.549981C3F5F10|Remove-AppxPackage 2、下载安装小爱同学 https://apps.microsoft.com/store/detail/%E5%B0%8F%E7%88%B1%E5%90%8C%E5%AD%A6/9MW76KFHNZ0C?hlzh-cn&glcn...
制造业网站建设/济南做网站建设的公司
背景 在使用github推送文件到仓库时,使用了本地代理,容易出现此问题,控制台返回以下错误信息: fatal: unable to access https://...: OpenSSL SSL_read: Connection was reset, errno 10054 解决方法: 方法1:自己…...
做网上商城网站哪家好/国内最好用免费建站系统
2019独角兽企业重金招聘Python工程师标准>>> HTML提供了5种空格实体(space entity),它们拥有不同的宽度,非断行空格( )是常规空格的宽度,可运行于所有主流浏览器。其他几种空格&…...