Zookeeper生产常用命令大全(最新3.8.0版本)

news2024/10/5 13:36:05

文章目录

  • 官方文档
  • 一、服务端
  • 二、客户端
    • 1、连接客户端
    • 2、help
    • 3、create
      • 1> 创建持久节点
      • 2> 创建临时节点
      • 3> 创建持久有序节点
      • 4> 创建临时有序节点
      • 5> 创建ttl节点
      • 6> 创建容器节点
    • 4、get
    • 5、set
    • 6、ls
    • 7、stat
    • 8、删除节点
      • 1> delete
      • 2> deleteall
    • 8、其他命令
  • 二、监听器Watcher
    • 1、一次性监听器
      • 1> 监听节点目录变化
      • 2> 监听节点数据变化
    • 2、永久的监听器
      • 1> PERSISTENT
      • 2> PERSISTENT_RECURSIVE
    • 3、删除监听器
  • 三、四字监控命令

官方文档

https://zookeeper.apache.org/doc/r3.8.0/zookeeperCLI.html

在这里插入图片描述

一、服务端

zookeeper的shell命令都体现在apache-zookeeper-3.8.0-bin/bin/目录下:

➜  bin ls
README.txt             zkEnv.sh               zkSnapShotToolkit.sh
zkCleanup.sh           zkServer-initialize.sh zkSnapshotComparer.cmd
zkCli.cmd              zkServer.cmd           zkSnapshotComparer.sh
zkCli.sh               zkServer.sh            zkTxnLogToolkit.cmd
zkEnv.cmd              zkSnapShotToolkit.cmd  zkTxnLogToolkit.sh

其中包括:

1> 启动zookeeper服务:

  •   ./zkServer.sh start
    

2> 查看zookeeper服务状态:

  •   ./zkServer.sh status
    

3> 停止zookeeper服务:

  •   ./zkServer.sh stop
    

4> 重启zookeeper服务:

  •   ./zkServer.sh restart
    

二、客户端

1、连接客户端

直接使用 sh zkCli.sh 命令可以连接到本地的zookeeper服务(127.0.0.1:2181);如果需要连接到其他地址的zookeeper服务,需要使用以下命令格式:

sh zkCli.sh -server [ip]:[port]

示例命令:

sh zkCli.sh -server 127.0.0.1:2181

也可以不指定IP:Port,而是直接连接到本地的zookeeper(即127.0.0.1:2181)

连接成功后,系统会输出 ZooKeeper 的相关环境以及配置信息。 可以在开启的会话中做一些客户端操作 与 zookeeper服务进行交互;

2、help

使用 help命令来查看帮助

[zk: 127.0.0.1:2181(CONNECTED) 21] help
ZooKeeper -server host:port -client-configuration properties-file cmd args
	addWatch [-m mode] path # optional mode is one of [PERSISTENT, PERSISTENT_RECURSIVE] - default is PERSISTENT_RECURSIVE
	addauth scheme auth
	close 
	config [-c] [-w] [-s]
	connect host:port
	create [-s] [-e] [-c] [-t ttl] path [data] [acl]
	delete [-v version] path
	deleteall path [-b batch size]
	delquota [-n|-b|-N|-B] path
	get [-s] [-w] path
	getAcl [-s] path
	getAllChildrenNumber path
	getEphemerals path
	history 
	listquota path
	ls [-s] [-w] [-R] path
	printwatches on|off
	quit 
	reconfig [-s] [-v version] [[-file path] | [-members serverID=host:port1:port2;port3[,...]*]] | [-add serverId=host:port1:port2;port3[,...]]* [-remove serverId[,...]*]
	redo cmdno
	removewatches path [-c|-d|-a] [-l]
	set [-s] [-v version] path data
	setAcl [-s] [-v version] [-R] path acl
	setquota -n|-b|-N|-B val path
	stat [-w] path
	sync path
	version 
	whoami 
Command not found: Command not found help

在这里插入图片描述

3、create

create命令:创建节点,默认持久节点

create [-s] [-e] [-c] [-t ttl] path [data] [acl]
  • -s:有序节点
  • -e:临时节点,不加默认是持久节点
  • -t ttl:带过期时间节点,单位:秒,比如:create ‐t 10 /node_ttl,/node_ttl节点在10s后将过期被删除。
  • -c:容器节点,当容器中的最后一个子级被删除时,容器将被删除;

Zookeeper原生命令不支持级联创建节点树目录,需要一级一级的创建;curator客户端封装了级联创建的API。

Znode节点类型有四种:

  • 持久的(persistent)
  • 临时的(ephemeral)
  • 持久有序的(persistent_sequential)
  • 临时有序的(ephemeral_sequential)

1> 创建持久节点

[zk: 127.0.0.1:2181(CONNECTED) 0] create /node_p1
Created /node_p1

2> 创建临时节点

[zk: 127.0.0.1:2181(CONNECTED) 1] create -e /node_e1 "node value"
Created /node_e1

3> 创建持久有序节点

持久有序节点:设置的节点路径会被重命名为序列数,不设置节点前缀时,序列数从0000000000开始递增;

  • 某一个节点路径下的序列数一直递增,无论一直带前缀、偶尔带前缀、或一直不带前缀;

不设置节点前缀时:

[zk: 127.0.0.1:2181(CONNECTED) 5] create /node_p2
Created /node_p2
[zk: 127.0.0.1:2181(CONNECTED) 6] create -s /node_p2/
Created /node_p2/0000000000
[zk: 127.0.0.1:2181(CONNECTED) 7] create -s /node_p2/
Created /node_p2/0000000001

设置节点前缀时:

[zk: 127.0.0.1:2181(CONNECTED) 12] create -s /node_p2/seq_
Created /node_p2/seq_0000000002
[zk: 127.0.0.1:2181(CONNECTED) 13] create -s /node_p2/seq_
Created /node_p2/seq_0000000003

4> 创建临时有序节点

设置节点前缀时:

[zk: 127.0.0.1:2181(CONNECTED) 14] create -s -e /node_p2/e_
Created /node_p2/e_0000000004
[zk: 127.0.0.1:2181(CONNECTED) 15] create -s -e /node_p2/e_
Created /node_p2/e_0000000005

不设置节点前缀时:

[zk: 127.0.0.1:2181(CONNECTED) 16] create -s -e /node_p2/
Created /node_p2/0000000006
[zk: 127.0.0.1:2181(CONNECTED) 17] create -s -e /node_p2/
Created /node_p2/0000000007

5> 创建ttl节点

默认禁用,需要在 zoo.cfg中添加 extendedTypesEnabled=true 开启。 否者报如下错:

[zk: 127.0.0.1:2181(CONNECTED) 18] create -t 10 /node_ttl "ttl node value"
KeeperErrorCode = Unimplemented for /node_ttl

开启ttl之后:

[zk: 127.0.0.1:2181(CONNECTED) 8] create -t 10 /node_ttl "ttl node value"
Created /node_ttl
[zk: 127.0.0.1:2181(CONNECTED) 9] get /node_ttl
ttl node value
[zk: 127.0.0.1:2181(CONNECTED) 10] get /node_ttl
Node does not exist: /node_ttl
  • /node_ttl,10s之后过期

注意:ttl不能用于临时节点 。

6> 创建容器节点

[zk: 127.0.0.1:2181(CONNECTED) 0] create -c /container_node mydata
Created /container_node
[zk: 127.0.0.1:2181(CONNECTED) 1] create -c /container_node/child_1 mydata
Created /container_node/child_1
[zk: 127.0.0.1:2181(CONNECTED) 2] create -c /container_node/child_2 mydata
Created /container_node/child_2
[zk: 127.0.0.1:2181(CONNECTED) 3] delete /container_node/child_1
[zk: 127.0.0.1:2181(CONNECTED) 4] delete /container_node/child_2
[zk: 127.0.0.1:2181(CONNECTED) 5] get /container_node
mydata
[zk: 127.0.0.1:2181(CONNECTED) 6] get /container_node
mydata
[zk: 127.0.0.1:2181(CONNECTED) 7] get /container_node
mydata
[zk: 127.0.0.1:2181(CONNECTED) 8] get /container_node
Node does not exist: /container_node

从测试结果来看,容器节点的最后一个子级被删除之后,过了几秒,容器节点才被删除。

4、get

get命令:获取节点/文件内容

get [-s] [-w] path
  • -s:查看节点数据以及节点状态信息
  • -w:添加一个watch,节点数据变更时,会通知客户端(通知是一次性的)。
[zk: 127.0.0.1:2181(CONNECTED) 12] create /node_test "testNode value"
Created /node_test
[zk: 127.0.0.1:2181(CONNECTED) 13] get /node_test
testNode value

-s 选项在获取到节点值的同时,会带出节点的状态stat:

[zk: 127.0.0.1:2181(CONNECTED) 14] get -s /node_test
testNode value
cZxid = 0x14 # 数据节点创建时的事务ID
ctime = Wed Nov 30 15:09:39 CST 2022 # 数据节点创建时的时间
mZxid = 0x18 # 数据节点最后一次更新时的事务ID
mtime = Wed Nov 30 15:14:25 CST 2022 # 数据节点最后一次更新时的时间
pZxid = 0x14 # 数据节点的子节点最后一次被修改时的事务ID
cversion = 0 # 子节点的更改次数
dataVersion = 3 # 节点数据的更改次数
aclVersion = 0 # 节点的ACL的更改次数
ephemeralOwner = 0x0 # 如果节点是临时节点,则表示创建该节点的会话的SessionID,如果节点是持久节点,则该属性值为0.
dataLength = 24 # 数据内容的长度
numChildren = 0 # 数据节点当前的子节点个数

5、set

set命令:修改节点内容;每次修改成功后,版本号会自动+1,初始为0

set [-s] [-v version] path data
  • -s:更新节点数据并显示节点状态信息
  • -v:指定数据版本号,如果指定的数据版本号和数据当前版本号不一致,则更新失败(可以理解为乐观锁的概念)。
[zk: 127.0.0.1:2181(CONNECTED) 15] set /node_test "updated tesetNode value"

-s选项,更新节点数据并显示节点状态信息

[zk: 127.0.0.1:2181(CONNECTED) 16] set -s /node_test "updated tesetNode value2"
cZxid = 0x14
ctime = Wed Nov 30 15:09:39 CST 2022
mZxid = 0x16
mtime = Wed Nov 30 15:13:40 CST 2022
pZxid = 0x14
cversion = 0
dataVersion = 2
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 24
numChildren = 0

-v选项,指定数据版本号,如果指定的数据版本号和数据当前版本号不一致,则更新失败(可以理解为乐观锁方式更新);

[zk: 127.0.0.1:2181(CONNECTED) 17] set -v 3 /node_test "updated tesetNode value3"
version No is not valid : /node_test
[zk: 127.0.0.1:2181(CONNECTED) 18] set -s -v 2 /node_test "updated tesetNode value3"
cZxid = 0x14
ctime = Wed Nov 30 15:09:39 CST 2022
mZxid = 0x18
mtime = Wed Nov 30 15:14:25 CST 2022
pZxid = 0x14
cversion = 0
dataVersion = 3
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 24
numChildren = 0
  • 在 -s选项操作后,/node_test的version为2,在-v选项更新时,必须执行version为2才能完成更新操作。

6、ls

ls命令:查看目录下的节点信息

ls [-s] [-w] [-R] path
  • -s:显示节点详情,包括状态信息
  • -w:添加一个watch监视器
  • -R:列举出节点的级联节点
  • path:显示某目录下节点/文件
[zk: 127.0.0.1:2181(CONNECTED) 19] create /node_test/sub_node1 "1"
Created /node_test/sub_node1
[zk: 127.0.0.1:2181(CONNECTED) 20] create /node_test/sub_node2 "2"
Created /node_test/sub_node2
[zk: 127.0.0.1:2181(CONNECTED) 21] ls /node_test
[sub_node1, sub_node2]
[zk: 127.0.0.1:2181(CONNECTED) 22] ls -s /node_test
[sub_node1, sub_node2]
cZxid = 0x14
ctime = Wed Nov 30 15:09:39 CST 2022
mZxid = 0x18
mtime = Wed Nov 30 15:14:25 CST 2022
pZxid = 0x1a
cversion = 2
dataVersion = 3
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 24
numChildren = 2
[zk: 127.0.0.1:2181(CONNECTED) 23] ls -R /node_test
/node_test
/node_test/sub_node1
/node_test/sub_node2
[zk: 127.0.0.1:2181(CONNECTED) 24] 

7、stat

stat命令:查看节点状态。

stat [-w] path
  • -w:添加watch
  • path:查看某目录下节点的状态
[zk: 127.0.0.1:2181(CONNECTED) 24] stat /node_test
cZxid = 0x14
ctime = Wed Nov 30 15:09:39 CST 2022
mZxid = 0x18
mtime = Wed Nov 30 15:14:25 CST 2022
pZxid = 0x1a
cversion = 2
dataVersion = 3
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 24
numChildren = 2

8、删除节点

delete命令只能删除没有子节点的节点;deleteall命令可以级联删除当前节点和子节点;

1> delete

delete命令:只能删除没有子节点的节点。如果其有子节点时,无法删除

delete [-v version] path
  • -v:指定数据版本号,如果指定的数据版本号和数据当前版本号不一致,则删除失败;
[zk: 127.0.0.1:2181(CONNECTED) 25] delete /node_test/sub_node1
[zk: 127.0.0.1:2181(CONNECTED) 26] ls -R /node_test
/node_test
/node_test/sub_node2

2> deleteall

deleteall命令:级联删除该节点和子节点。

deleteall path
[zk: 127.0.0.1:2181(CONNECTED) 27] deleteall /node_test
[zk: 127.0.0.1:2181(CONNECTED) 28] ls -R /node_test
Node does not exist: /node_test
[zk: 127.0.0.1:2181(CONNECTED) 29] ls /node_test/sub_node2
Node does not exist: /node_test/sub_node2

8、其他命令

  • getAllChildrenNumber:获取节点下的所有子孙节点数量
  • getEphemerals:获取当前客户端创建的所有临时节点
  • history:显示最近执行的11条命令的历史记录

二、监听器Watcher

Watcher(事件监听器)允许用户在指定节点上注册 Watcher,在特定事件发生时,Watcher会被触发;Zookeeper服务端将事件通知到响应的客户端上去;

该机制是Zookeeper实现分布式协调服务的重要特性。

  • 客户端监听节点的变化,当节点发生改变时,触发相应的事件;
  • 当事件被触发时,客户端会收到一个数据包,说明节点已经改变。

1、一次性监听器

1> 监听节点目录变化

监听节点的子节点变化,当子节点发生改变时触发;

ls -w path

Session1:

# 创建节点
[zk: 127.0.0.1:2181(CONNECTED) 31] create /watch_node
Created /watch_node
# 监听节点目录变化
[zk: 127.0.0.1:2181(CONNECTED) 32] ls -w /watch_node
[]

Session2:

# 创建/watch_node节点的子节点
[zk: 127.0.0.1:2181(CONNECTED) 0] create /watch_node/node1 "node1 value"
Created /watch_node/node1
[zk: 127.0.0.1:2181(CONNECTED) 1] create /watch_node/node2 "node2 value"
Created /watch_node/node2

当/watch_node节点的子节点第一次发生变化时,会触发session1的Watcher,触发后会被删除,无法再次触发。

[zk: 127.0.0.1:2181(CONNECTED) 33] 
WATCHER::

WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/watch_node

图示:

在这里插入图片描述

2> 监听节点数据变化

当该节点数据发生改变时触发,但子节点的数据变化不会触发。一次性监听,触发后会被删除,无法再次触发。

get -w path

Session1:

[zk: 127.0.0.1:2181(CONNECTED) 33] get -w /watch_node
null

Session2:

[zk: 127.0.0.1:2181(CONNECTED) 3] set /watch_node "hahaha"

当/watch_node节点的数据第一次发生变化时,会触发session1的Watcher,触发后会被删除,无法再次触发。

[zk: 127.0.0.1:2181(CONNECTED) 34] 
WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/watch_node

图示:

在这里插入图片描述

2、永久的监听器

在 Zookeeper 3.6.0版本之后,客户端可以在节点上创建永久监听,永久监听在被触发后不会被删除。

addWatch [-m mode] path

永久监听器在创建时可以通过 -m 选项指定模式,有两种模式:

  • PERSISTENT:节点的数据变化以及子节点的变化会触发相应事件,子节点的数据变化不会触发。
  • PERSISTENT_RECURSIVE(默认模式,不指定时使用):节点的数据变化以及所有子孙节点的目录或者数据变化都会触发相应事件。

1> PERSISTENT

PERSISTENT:该节点的数据变化以及子节点的变化会触发相应事件,子节点的数据变化不会触发。

# 1、增加PERSISTENT模式的监听器
[zk: 127.0.0.1:2181(CONNECTED) 34] addWatch -m PERSISTENT /watch_node
# 2、节点数据发生变更时,触发监听器
[zk: 127.0.0.1:2181(CONNECTED) 35] set /watch_node "node12321"

WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/watch_node
# 3、节点的子节点新增时,触发监听器
[zk: 127.0.0.1:2181(CONNECTED) 36] create /watch_node/node4 "node4"

WATCHER::Created /watch_node/node4


WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/watch_node
# 4、节点的子节点数据发生变化时,不会触发监听器
[zk: 127.0.0.1:2181(CONNECTED) 37] set /watch_node/node4 "node4-2"
# 5、节点的子节点删除时,触发监听器
[zk: 127.0.0.1:2181(CONNECTED) 38] delete /watch_node/node4

WATCHER::

WatchedEvent state:SyncConnected type:NodeChildrenChanged path:/watch_node

2> PERSISTENT_RECURSIVE

PERSISTENT_RECURSIVE:节点的数据变化以及所有子孙节点的目录或者数据变化都会触发相应事件。

# 创建一个节点
[zk: 127.0.0.1:2181(CONNECTED) 40] create /watch_node2
Created /watch_node2
# 1、针对节点增加PERSISTENT_RECURSIVE模式的监听器
[zk: 127.0.0.1:2181(CONNECTED) 41] addWatch -m PERSISTENT_RECURSIVE /watch_node2
# 2、节点数据发生变更时,触发监听器
[zk: 127.0.0.1:2181(CONNECTED) 42] set /watch_node2 "hahahah"

WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/watch_node2
# 3、节点的子节点新增时,触发监听器
[zk: 127.0.0.1:2181(CONNECTED) 43] create /watch_node2/node1

WATCHER::Created /watch_node2/node1


WatchedEvent state:SyncConnected type:NodeCreated path:/watch_node2/node1
# 4、节点的子节点数据发生变化时,触发监听器
[zk: 127.0.0.1:2181(CONNECTED) 44] set /watch_node2/node1 "node1"

WATCHER::

WatchedEvent state:SyncConnected type:NodeDataChanged path:/watch_node2/node1
# 5、节点的子节点删除时,触发监听器
[zk: 127.0.0.1:2181(CONNECTED) 45] delete /watch_node2/node1

WATCHER::

WatchedEvent state:SyncConnected type:NodeDeleted path:/watch_node2/node1

3、删除监听器

删除某个节点的监听器,删除后节点相应的变更事件不会再触发监听器

removewatches path
[zk: 127.0.0.1:2181(CONNECTED) 48] removewatches  /watch_node2

WATCHER::

WatchedEvent state:SyncConnected type:PersistentWatchRemoved path:/watch_node2

三、四字监控命令

见博文:https://saint.blog.csdn.net/article/details/128115252

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

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

相关文章

PID算法控制

文章目录一、PID算法二、控制方法对比PID的手动整定PID衰减曲线整定PID调节器各校正环节的作用是:计算注意事项PID算法的一般表达式是:一、PID算法 PID控制是最早发展的自动控制策略之一,是微机化控制系统的一个重要组成部分,整个…

大数据必学Java基础(一百一十五):Session域监听器

文章目录 Session域监听器 一、Session域共有四个监听器接口 二、监听器代码 Session域监听器

学好Python的未来7大就业方向,月薪不低于2w!

最近很多人都有一个问题:“ 我想学 Python,但是学完 Python 后都能干啥 ?” “ 现在学 Python,哪个方向最简单?哪个方向最吃香 ?” “ …… ” 相信不少 Python 的初学者,都会遇到上面的这些…

[ 数据结构 -- 手撕排序算法第六篇 ] 快速排序(非递归版本)

文章目录前言一、常见的排序算法二、快速排序的非递归版本三、具体步骤四、非递归的代码实现五、时间复杂度4.1最好情况4.2最坏情况六、总结前言 手撕排序算法第六篇:快速排序! 从本篇文章开始,我会介绍并分析常见的几种排序,例如…

143744-88-1,标记肽Dansyl-GCVLS

法尼基二磷酸法尼基转移酶(FTase)的荧光底物。该五肽基于H-Ras的c端区域,其n端有一个丹酚基团。由于半胱氨酸巯基的法尼化作用,丹酚基从极性分子环境变为非极性分子环境,伴随而来的是荧光增强和丹酚基向较低波长发射最大值的转移。该产物的完…

【设计模式】代理模式 (六)

文章目录5.1 代理模式5.1.1 概述5.1.2 结构5.1.3 静态代理5.1.4 JDK动态代理5.1.5 CGLIB动态代理5.1.6 三种代理的对比5.1.7 优缺点5.1.8 使用场景5.1 代理模式 5.1.1 概述 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不…

程序员现状分析,什么时候是进入IT行业的黄金时期?千万注意了

近些来,程序员成为了很多人就业的首选。但是大多数人对于程序员的了解仅仅停留在了薪资待遇上,但是他们对于程序员的工作却所知甚少。甚至有不少人只听说了程序员的工资很高,并不知道程序员的工资会高到什么地步。 其实近些年来,随…

Mysql窗口函数 (知识点梳理+题目解析+面试实战)(四万字长文,一文读懂,建议收藏后食用)

前言: 本文章是原创50篇时开启的纪念作,之前的文章基本5000字,而本篇约4.5万字,真一篇顶九篇。 窗口函数作为Mysql 8的新特性以及面试笔试的重点,掌握并且进行来练习是非常有必要的。本文章详细介绍窗口函数的方…

uni-app app分享到朋友和朋友圈

app分享到朋友和朋友圈 uni.share(OBJECT) uni-app的App引擎封装了微信、QQ、微博的分享SDK,开发者可以直接调用相关功能 可以分享到微信、QQ、微博,每个社交平台被称为分享服务提供商,即provider。 可以分享文字、图片、图文、音乐、视频…

热门技术中的应用:微服务相关协议-第32讲-RPC协议综述:远在天边,近在眼前

前面我们讲了容器网络如何实现跨主机互通,以及微服务之间的相互调用。 网络是打通了,那服务之间的互相调用,该怎么实现呢?你可能说,咱不是学过Socket吗。服务之间分调用方和被调用方,我们就建立一个TCP或者UDP的连接,不就可以通信了? 你仔细想一下,这事儿没这么简单。…

[附源码]计算机毕业设计Python高校商铺管理系统论文(程序+源码+LW文档)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

微服务框架 SpringCloud微服务架构 微服务面试篇 54 微服务篇 54.3 Nacos 如何支撑数十万服务注册压力?

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 微服务面试篇 文章目录微服务框架微服务面试篇54 微服务篇54.3 Nacos 如何支撑数十万服务注册压力?54.3.1 Nacos 服务端源码54 微…

信息提取 Information Extraction

定义 信息提取任务是从一组非结构化自然语言文本中的每个文本中识别有关实体、关系或事件的预定义类的信息,并通过以下任一方式以结构化形式记录此信息: • 注释源文本,使用 XML 标签 • 填写与文本分开的数据结构,例如模板或数据…

centos8 nginx 开启 ssl(https)

centos8 nginx 开启 ssl(https)首先申请证书,以阿里云为例centos8 nginx 安装 sslnginx 配置文件遇到问题一直没有给域名开启 https,在 Cesium 沙盒模拟中使用 http 资源会提示错误,于是想着把 https 打开,…

【计算机毕业设计】基于HTML+CSS+JavaScript大学生心理咨询网设计毕业论文源码

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

53.Python的f格式化字符串

53.f格式化字符串 文章目录53.f格式化字符串1.知识回顾2.f格式化字符串3.课堂练习4. 字符串格式化总结1.知识回顾 之前我们学了2种格式化方法: %占位符格式化 .format字符串格式化 【目标任务】 原样输出:大家好,我叫XXX,来自X…

2022卡塔尔世界杯 | 致我们每个人那份绿茵场上的足球梦

一个沾满草腥味的皮球,在经过一系列有名气的或者没名气的金脚触碰之后,缓慢地或者迅速地躲过后卫和门将大义凛然的身体,越过了那个由门柱和横梁构成的透明长方体平面…… 如果你不是球迷,你真的很难理解这么一个皮革制品的物理位移…

全网最详细的网络安全入门教程,一篇文章满足你

随着当下正在发生的互联网革命,以及乌俄局势的网络战,网络安全行业已经受到更多人的关注,而这个行业的人才缺口将继续呈指数型扩张。借用行业内某大咖的一句话“网络安全行业的人才成材率极低”,究其原因还是因为网络安全从业者所…

MD编辑器使用方法

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…

如何解决 科班和自学编程出身差别,差距又在哪里?

自学和科班的差别最大的在于学习的人本身——不在呼是否科班。 自学编程和计算机科班出身的差别在哪? 不同的人持有不同的看法其实相辅相成才能发挥最大作用 A先生:听从父母的意见选择了编程专业,学习天天逃课,毕业后父母帮忙找…