当前位置: 首页 > news >正文

【zookeeper】zookeeper的shell操作

Zookeeper的shell操作

本章节将分享一些zookeeper客服端的一些命令,实验操作有助于理解zookeeper的数据结构。

Zookeeper命令工具

在前一章的基础上,在启动Zookeeper服务之后,输入以下命令,连接到Zookeeper服务。连接成功之后,系统会输出Zookeeper的相关环境及配置信息,并在屏幕输出“welcome to Zookeeper!”等信息,倒数几行的位置,如下:

[root@k8s-m1 bin]# zkCli.sh -server k8s-m1:2181
Connecting to k8s-m1:2181
2023-08-31 16:36:48,125 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.12-e5259e437540f349646870ea94dc2658c4e44b3b, built on 03/27/2018 03:55 GMT
2023-08-31 16:36:48,129 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=k8s-m1
2023-08-31 16:36:48,130 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_65
2023-08-31 16:36:48,132 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/opt/jdk1.8.0_65/jre
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/opt/zookeeper-3.4.12/bin/../build/classes:/opt/zookeeper-3.4.12/bin/../build/lib/*.jar:/opt/zookeeper-3.4.12/bin/../lib/slf4j-log4j12-1.7.25.jar:/opt/zookeeper-3.4.12/bin/../lib/slf4j-api-1.7.25.jar:/opt/zookeeper-3.4.12/bin/../lib/netty-3.10.6.Final.jar:/opt/zookeeper-3.4.12/bin/../lib/log4j-1.2.17.jar:/opt/zookeeper-3.4.12/bin/../lib/jline-0.9.94.jar:/opt/zookeeper-3.4.12/bin/../lib/audience-annotations-0.5.0.jar:/opt/zookeeper-3.4.12/bin/../zookeeper-3.4.12.jar:/opt/zookeeper-3.4.12/bin/../src/java/lib/*.jar:/opt/zookeeper-3.4.12/bin/../conf:.:/opt/jdk1.8.0_65/lib/dt.jar:/opt/jdk1.8.0_65/lib/tools.jar
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=3.10.0-957.el7.x86_64
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2023-08-31 16:36:48,133 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2023-08-31 16:36:48,134 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/opt/apache-zookeeper-3.7.1-bin/bin
2023-08-31 16:36:48,135 [myid:] - INFO  [main:ZooKeeper@441] - Initiating client connection, connectString=k8s-m1:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@5c29bfd
Welcome to ZooKeeper!
2023-08-31 16:36:48,166 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@1028] - Opening socket connection to server k8s-m1/192.168.2.140:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2023-08-31 16:36:48,241 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@878] - Socket connection established to k8s-m1/192.168.2.140:2181, initiating session
[zk: k8s-m1:2181(CONNECTING) 0] 2023-08-31 16:36:48,314 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@1302] - Session establishment complete on server k8s-m1/192.168.2.140:2181, sessionid = 0x1002552fac20000, negotiated timeout = 30000WATCHER::WatchedEvent state:SyncConnected type:None path:null[zk: k8s-m1:2181(CONNECTED) 0]

输入help之后,屏幕会输出可用的Zookeeper命令,如下所示

[zk: k8s-m1:2181(CONNECTED) 0] 
[zk: k8s-m1:2181(CONNECTED) 0] help
ZooKeeper -server host:port cmd argsstat path [watch]set path data [version]ls path [watch]delquota [-n|-b] pathls2 path [watch]setAcl path aclsetquota -n|-b val pathhistory redo cmdnoprintwatches on|offdelete path [version]sync pathlistquota pathrmr pathget path [watch]create [-s] [-e] path data acladdauth scheme authquit getAcl pathclose connect host:port        

使用Zookeeper命令的简单操作

(1)使用ls命令查看当前Zookeeper中所包含的内容:ls /

[zk: k8s-m1:2181(CONNECTED) 1] ls /
[zookeeper]

(2)创建一个新的Znode节点"aa",以及和它相关字符,执行命令:create /aa “first zookeeper”,默认是不带编号的

[zk: k8s-m1:2181(CONNECTED) 2] create /aa "first zookeeper"
Created /aa

创建带编号的持久性节点"bb",

[zk: k8s-m1:2181(CONNECTED) 3] create -s /bb "bb"
Created /bb0000000006

创建不带编号的临时节点"cc"

[zk: k8s-m1:2181(CONNECTED) 4] create -e /cc "cc"
Created /cc

创建带编号的临时节点"dd"

[zk: k8s-m1:2181(CONNECTED) 5] create -s -e /dd "dd"
Created /dd0000000008

(3) 再次使用ls命令来查看现在Zookeeper的中所包含的内容:ls /

[zk: k8s-m1:2181(CONNECTED) 6] ls /                 
[aa, bb0000000006, cc, dd0000000008, zookeeper]

此时看到,上面的四个节点aa/bb/cc/dd都已经被创建。

关闭本次连接回话session,并直接使用connect重新打开一个连接。
[zk: k8s-m1:2181(CONNECTED) 7] close
2023-08-31 20:17:54,078 [myid:] - INFO  [main:ZooKeeper@687] - Session: 0x1002552fac20002 closed
[zk: k8s-m1:2181(CLOSED) 8] 2023-08-31 20:17:54,084 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@521] - EventThread shut down for session: 0x1002552fac20002[zk: k8s-m1:2181(CLOSED) 8] ls /
Not connected
[zk: k8s-m1:2181(CLOSED) 9] connect  k8s-m1:2181 
2023-08-31 20:18:22,837 [myid:] - INFO  [main:ZooKeeper@441] - Initiating client connection, connectString=k8s-m1:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@5680a178
[zk: k8s-m1:2181(CONNECTING) 10] 2023-08-31 20:18:22,841 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@1028] - Opening socket connection to server k8s-m1/192.168.2.140:2181. Will not attempt to authenticate using SASL (unknown error)
2023-08-31 20:18:22,842 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@878] - Socket connection established to k8s-m1/192.168.2.140:2181, initiating session
2023-08-31 20:18:22,863 [myid:] - INFO  [main-SendThread(k8s-m1:2181):ClientCnxn$SendThread@1302] - Session establishment complete on server k8s-m1/192.168.2.140:2181, sessionid = 0x1002552fac20003, negotiated timeout = 30000WATCHER::WatchedEvent state:SyncConnected type:None path:null

重新查看,临时节点已经随着上一次的会话关闭自动删除了

[zk: k8s-m1:2181(CONNECTED) 10] ls  /
[aa, bb0000000006, zookeeper]
[zk: k8s-m1:2181(CONNECTED) 11] 

(4)使用get命令来确认第二步中所创建的Znode是否包含我们创建的字符串,执行命令:get /aa

[zk: k8s-m1:2181(CONNECTED) 11]  get /aa
first zookeeper
cZxid = 0x20000000e
ctime = Thu Aug 31 19:53:59 CST 2023
mZxid = 0x20000000e
mtime = Thu Aug 31 19:53:59 CST 2023
pZxid = 0x20000000e
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 15
numChildren = 0
[zk: k8s-m1:2181(CONNECTED) 12] 

(5)接下来通过set命令来对zk所关联的字符串进行设置,执行命令:set /aa haha123

[zk: k8s-m1:2181(CONNECTED) 12] set /aa hello  
cZxid = 0x20000000e
ctime = Thu Aug 31 19:53:59 CST 2023
mZxid = 0x200000014
mtime = Thu Aug 31 20:20:39 CST 2023
pZxid = 0x20000000e
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0
[zk: k8s-m1:2181(CONNECTED) 13]

(6)再次使用get命令来查看,上次修改的内容,执行命令:get /aa

[zk: k8s-m1:2181(CONNECTED) 13]  get /aa     
hello
cZxid = 0x20000000e
ctime = Thu Aug 31 19:53:59 CST 2023
mZxid = 0x200000014
mtime = Thu Aug 31 20:20:39 CST 2023
pZxid = 0x20000000e
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 5
numChildren = 0

(7)下面我们将刚才创建的Znode删除,执行命令:delete /aa

[zk: k8s-m1:2181(CONNECTED) 14] delete /aa

(8) 最后再次使用ls命令查看Zookeeper中的内容,执行命令:ls /

[zk: k8s-m1:2181(CONNECTED) 15] ls  /        
[bb0000000006, zookeeper]

经过验证,zk节点aa已经删除。
(9) 退出,执行命令:quit

[zk: k8s-m1:2181(CONNECTED) 17] quit 
Quitting...
2023-08-31 20:22:07,820 [myid:] - INFO  [main:ZooKeeper@687] - Session: 0x1002552fac20003 closed
2023-08-31 20:22:07,820 [myid:] - INFO  [main-EventThread:ClientCnxn$EventThread@521] - EventThread shut down for session: 0x1002552fac20003
[root@k8s-m1 bin]# 

查看状态信息

查看一个文件的状态信息

[zk: k8s-m1:2181(CONNECTED) 0] ls /
[bb0000000006, zookeeper]
[zk: k8s-m1:2181(CONNECTED) 1] stat /bb
Node does not exist: /bb
[zk: k8s-m1:2181(CONNECTED) 2] stat /bb0000000006
cZxid = 0x20000000f
ctime = Thu Aug 31 19:56:17 CST 2023
mZxid = 0x20000000f
mtime = Thu Aug 31 19:56:17 CST 2023
pZxid = 0x20000000f
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0

详细解释:

zxid: 一个事务编号,zookeeper集群内部的所有事务,都有一个全局的唯一的顺序的编号。
  它由两部分组成: 就是一个 64位的长整型 long
  高32位: 用来标识leader关系是否改变,如 0x2  
  低32位: 用来做当前这个leader领导期间的全局的递增的事务编号,如上面的0000000f

状态属性说明
cZxid数据节点创建时的事务ID
ctime数据节点创建时的时间
mZxid数据节点最后一次更新时的事务ID
mtime数据节点最后一次更新时的时间
pZxid数据节点的子节点列表最后一次被修改(是子节点列表变更,而不是子节点内容变更)时的事务ID
cversion子节点的版本号
dataVersion数据节点的版本号
aclVersion数据节点的ACL版本号
ephemeralOwner如果节点是临时节点,则表示创建该节点的会话的SessionID;如果节点是持久节点,则该属性值为0
dataLength数据内容的长度
numChildren数据节点当前的子节点个数

(1)修改节点a的数据,mZxid、dataVersion、dataLength 存储信息发生变化

[zk: k8s-m1:2181(CONNECTED) 10] ls /
[bb0000000006, zookeeper]
[zk: k8s-m1:2181(CONNECTED) 12] create /aa "first zookeeper"
Created /aa
[zk: k8s-m1:2181(CONNECTED) 13] ls    /
[bb0000000006, aa, zookeeper]
[zk: k8s-m1:2181(CONNECTED) 14] set /aa 'aa'
cZxid = 0x200000019
ctime = Thu Aug 31 20:27:57 CST 2023
mZxid = 0x20000001a
mtime = Thu Aug 31 20:28:32 CST 2023
pZxid = 0x200000019
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0
[zk: k8s-m1:2181(CONNECTED) 16] 

(2)创建新的节点bb,状态信息都会发生变化,zxid的事物ID也会增加

[zk: k8s-m1:2181(CONNECTED) 18] create /bb "second zookeeper"
Created /bb
[zk: k8s-m1:2181(CONNECTED) 19] stat /bb
cZxid = 0x20000001b
ctime = Thu Aug 31 20:31:06 CST 2023
mZxid = 0x20000001b
mtime = Thu Aug 31 20:31:06 CST 2023
pZxid = 0x20000001b
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 16
numChildren = 0

(3)在aa节点下面新增节点bb,pZxid、cversion、numChildren 发生改变

[zk: k8s-m1:2181(CONNECTED) 21] create /aa/bb 'aabb'
Created /aa/bb
[zk: k8s-m1:2181(CONNECTED) 22] stat /aa            
cZxid = 0x200000019
ctime = Thu Aug 31 20:27:57 CST 2023
mZxid = 0x20000001a
mtime = Thu Aug 31 20:28:32 CST 2023
pZxid = 0x20000001c
cversion = 1
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 1

(4)ephemeralOwner 持久性的节点信息是0x0临时的几点信息是本次会话的sessionid,如图
在这里插入图片描述
(5) 查看leader并将其干掉,此时将选择另一台机器成为leader,重新创建一个文件ff,此时发现czxid的前3位和之前发生变化,说明换了leader。其实前3位应该就是我们设置的serverid值。

#k8s-m2为leader
[root@k8s-m2 tmp]# /opt/apache-zookeeper-3.7.1-bin/bin/zkServer.sh  status
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
Mode: leader
[root@k8s-m2 tmp]# /opt/apache-zookeeper-3.7.1-bin/bin/zkServer.sh  stop
ZooKeeper JMX enabled by default
Using config: /opt/apache-zookeeper-3.7.1-bin/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED#在原来的界面继续操作
[zk: k8s-m1:2181(CONNECTED) 2] create /f 'ff'                   
Created /f
[zk: k8s-m1:2181(CONNECTED) 3] stat /f
cZxid = 0x300000001
ctime = Thu Aug 31 20:40:25 CST 2023
mZxid = 0x300000001
mtime = Thu Aug 31 20:40:25 CST 2023
pZxid = 0x300000001
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 2
numChildren = 0
[zk: k8s-m1:2181(CONNECTED) 4] 

更多关于zookeeper的知识分享,请前往博客主页。编写过程中,能力有限难免出现差错,敬请指正

相关文章:

【zookeeper】zookeeper的shell操作

Zookeeper的shell操作 本章节将分享一些zookeeper客服端的一些命令&#xff0c;实验操作有助于理解zookeeper的数据结构。 Zookeeper命令工具 在前一章的基础上&#xff0c;在启动Zookeeper服务之后&#xff0c;输入以下命令&#xff0c;连接到Zookeeper服务。连接成功之后&…...

R语言Meta分析核心技术

Meta分析是针对某一科研问题&#xff0c;根据明确的搜索策略、选择筛选文献标准、采用严格的评价方法&#xff0c;对来源不同的研究成果进行收集、合并及定量统计分析的方法&#xff0c;最早出现于“循证医学”&#xff0c;现已广泛应用于农林生态&#xff0c;资源环境等方面。…...

Oracle数据库尚硅谷学习笔记

文章目录 Oracle数据库体系结构简介补充SQL初步导入sql文件别名连接符distinct去重的坑 过滤和排序数据日期格式比较运算其它比较运算符逻辑运算优先级排序 单行函数SQL中不同类型的函数单行函数字符数值日期转换通用 使用条件表达式嵌套查询 多表查询等值连接非等值连接左外连…...

CG MAGIC进行实体渲染后!分析渲染器CR和VR的区别之处!

新手小白来说&#xff0c;如何选择渲染器&#xff0c;都会提出疑问&#xff1f; 渲染效果图究竟用CR渲染器还是VR渲染器呢&#xff1f; 今天&#xff0c;CG MAGIC小编通过一个真实的项目场景&#xff0c;实例渲染之后&#xff0c;CR渲染器和VR渲染器区别有哪几点&#xff1f; 1…...

Ubuntu下Python3与Python2相互切换

参考文章&#xff1a;https://blog.csdn.net/Nicolas_shen/article/details/124144931 设置优先级 sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 200...

【深度学习】实验07 使用TensorFlow完成逻辑回归

文章目录 使用TensorFlow完成逻辑回归1. 环境设定2. 数据读取3. 准备好placeholder4. 准备好参数/权重5. 计算多分类softmax的loss function6. 准备好optimizer7. 在session里执行graph里定义的运算 附&#xff1a;系列文章 使用TensorFlow完成逻辑回归 TensorFlow是一种开源的…...

2023-09-04 Linux 让shell编译脚本里面设置的环境变量改变kernel里面驱动文件的宏定义值方法,我这里用来做修改固件版本

一、原生的读取版本接口是/proc/version&#xff0c;我这里需要提供获取固件版本号的api给app&#xff0c;因为版本号会经常需要修改&#xff0c;如果每次都到kernel下修改比较麻烦&#xff0c;我这里是想在编译脚本里面对版本号进行修改&#xff0c;这样方便一点。 二、主要修…...

Python操作Excel实战:Excel行转列

# 1、原始数据准备 样例数据准备 地区1m2-5m6-10m11-20m21-40m地区单价计费单位费用最小值费用最大值北京13012011010090     天津13012011010090     石家庄13012011010090     保定140130120110100     张家口170150130120110     邢台1401201101…...

java实现迭代器模式

迭代器模式&#xff08;Iterator Pattern&#xff09;是一种行为型设计模式&#xff0c;它提供一种方法来顺序访问一个聚合对象&#xff08;如列表、集合、数组等&#xff09;中的元素&#xff0c;而不暴露聚合对象的内部表示。迭代器模式通常包括以下角色&#xff1a;迭代器&a…...

C++day7模板、异常、auto关键字、lambda表达式、数据类型转换、STL、list、文件操作

作业 封装一个学生的类&#xff0c;定义一个学生这样类的vector容器, 里面存放学生对象&#xff08;至少3个&#xff09; 再把该容器中的对象&#xff0c;保存到文件中。 再把这些学生从文件中读取出来&#xff0c;放入另一个容器中并且遍历输出该容器里的学生。 #include …...

【校招VIP】产品分析之活动策划宣传

考点介绍&#xff1a; 产品的上线运营是非常重要的。应该来说好的产品都是运营出来的&#xff0c;在一运营过程中难免会依靠策划活动来提高产品知名度、用户数。用户粘度等等指标一&#xff0c;如何策划一个成功的活动就显得非常重要。 产品分析之活动策划宣传-相关题目及解析…...

node基础之一:fs 模块

概念&#xff1a;文件的创建、删除、重命名、移动、写入、读取等 const fs require("fs");// 写入 fs.writeFile("./demo.txt", "hello", (err) > {}); fs.writeFileSync();// 追加 fs.appendFile("./demo.txt", "hello&quo…...

如何快速搭建母婴行业的微信小程序?

如果你想为你的母婴行业打造一个独特的小程序&#xff0c;但没有任何编程经验&#xff0c;别担心&#xff01;现在有许多小程序制作平台提供了简单易用的工具&#xff0c;让你可以轻松地建立自己的小程序。接下来&#xff0c;我将为你详细介绍搭建母婴行业小程序的步骤。 首先&…...

【科普向】Jmeter 如何测试接口保姆式教程

现在对测试人员的要求越来越高&#xff0c;不仅仅要做好功能测试&#xff0c;对接口测试的需求也越来越多&#xff01;所以也越来越多的同学问&#xff0c;怎样才能做好接口测试&#xff1f; 要真正的做好接口测试&#xff0c;并且弄懂如何测试接口&#xff0c;需要从如下几个…...

阿里云2核4G服务器5M带宽5年费用价格明细表

阿里云2核4G服务器5M带宽可以选择轻量应用服务器或云服务器ECS&#xff0c;轻量2核4G4M带宽服务器297元一年&#xff0c;2核4G云服务器ECS可以选择计算型c7、c6或通用算力型u1实例等&#xff0c;买5年可以享受3折优惠&#xff0c;阿腾云分享阿里云服务器2核4G5M带宽五年费用表&…...

【图解RabbitMQ-2】图解JMS规范与AMQP协议是什么

&#x1f9d1;‍&#x1f4bb;作者名称&#xff1a;DaenCode &#x1f3a4;作者简介&#xff1a;CSDN实力新星&#xff0c;后端开发两年经验&#xff0c;曾担任甲方技术代表&#xff0c;业余独自创办智源恩创网络科技工作室。会点点Java相关技术栈、帆软报表、低代码平台快速开…...

springboot整合mybatis实现增删改查(xml)--项目阶段1

目录 一、前言 二、创建项目 创建MySQL数据库和表 创建springboot项目 本文总体代码结构图预览 三、编写代码 &#xff08;一&#xff09;新建实体层属性类 &#xff08;二&#xff09;新建数据层mapper接口 &#xff08;三&#xff09;新建mapper的映射SQL&#xff08…...

springboot文件上传异步报错

因为迁移的生产环境&#xff0c;在新的服务器发生了之前没有遇到的问题&#xff0c;这种问题是在异步文件上传的时候才会出现 错误信息如下 16:17:50.009 ERROR c.w.einv.minio.service.impl.MinioFileServiceImpl - 文件上传错误! java.io.FileNotFoundException: /applicati…...

error: unable to unlink old ‘.gitlab-ci.yml‘: Permission denied

#gitlab-runner 执行代码git pull origin xxx 更新时候报 error: unable to unlink old ‘.gitlab-ci.yml’: Permission denied 问题环境&#xff1a;centos 部署gitlab-runner 执行脚本方式 选的shell 产生问题的原因&#xff1a;gitlab-runner程序进程占用锁定了.gitlab-ci…...

AJAX学习笔记3练习

AJAX学习笔记2发送Post请求_biubiubiu0706的博客-CSDN博客 1.验证用户名是否可用 需求,用户输入用户名,失去焦点-->onblur失去焦点事件,发送AJAX POST请求,验证用户名是否可用 新建表 前端页面 WEB-INF下新建lib包引入依赖,要用JDBC 后端代码 package com.web;import jav…...

Python爬虫实战:研究MechanicalSoup库相关技术

一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

el-switch文字内置

el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)

引言&#xff1a;为什么 Eureka 依然是存量系统的核心&#xff1f; 尽管 Nacos 等新注册中心崛起&#xff0c;但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制&#xff0c;是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...

GitHub 趋势日报 (2025年06月08日)

&#x1f4ca; 由 TrendForge 系统生成 | &#x1f310; https://trendforge.devlive.org/ &#x1f310; 本日报中的项目描述已自动翻译为中文 &#x1f4c8; 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...

多种风格导航菜单 HTML 实现(附源码)

下面我将为您展示 6 种不同风格的导航菜单实现&#xff0c;每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马&#xff08;服务器方面的&#xff09;的原理&#xff0c;连接&#xff0c;以及各种木马及连接工具的分享 文件木马&#xff1a;https://w…...

html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码

目录 一、&#x1f468;‍&#x1f393;网站题目 二、✍️网站描述 三、&#x1f4da;网站介绍 四、&#x1f310;网站效果 五、&#x1fa93; 代码实现 &#x1f9f1;HTML 六、&#x1f947; 如何让学习不再盲目 七、&#x1f381;更多干货 一、&#x1f468;‍&#x1f…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用

在工业制造领域&#xff0c;无损检测&#xff08;NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统&#xff0c;以非接触式光学麦克风技术为核心&#xff0c;打破传统检测瓶颈&#xff0c;为半导体、航空航天、汽车制造等行业提供了高灵敏…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...