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

手机网站做安卓客户端企业网站建设方案策划书

手机网站做安卓客户端,企业网站建设方案策划书,什么网站可以做进出口买卖,佛山公司做网站大纲 1.zk单机模式是如何启动的 2.zk集群是如何部署和启动的 3.zk集群部署要用什么样配置的机器 4.如何合理设置zk的JVM参数以及内存大小 5.zk配置的核心参数之tickTime、dataDir和dataLogDir 6.影响Leader与Follower组成集群的两个核心参数之initLimit和syncLimit 7.zk…

大纲

1.zk单机模式是如何启动的

2.zk集群是如何部署和启动的

3.zk集群部署要用什么样配置的机器

4.如何合理设置zk的JVM参数以及内存大小

5.zk配置的核心参数之tickTime、dataDir和dataLogDir

6.影响Leader与Follower组成集群的两个核心参数之initLimit和syncLimit

7.zk什么时候进行数据快照(snapCount = 10000)

8.一台机器上最多能启动多少个zk客户端(maxClientCnxns = 60)

9.一个znode中最多能存储多少数据量(jute.maxbuffer = 1M)

10.运行时的Leader与Follower会通过2888和3888端口进行通信

11.事务日志和数据快照是如何进行定时清理的

12.在2PC阶段写入的事务日志也有丢失的风险

13.Leader相关的两个参数之leaderServers和cnxTimeout

14.zk提供给运维使用的命令说明

14.zk提供给运维使用的命令说明

(1)服务端常用命令

(2)客户端常用命令

(3)ACL命令常用命令

(4)常用四字命令

(5)zk日志可视化

(1)服务端常用命令

在准备好相应的配置之后,可以直接通过zkServer.sh这个脚本进行服务的相关操作:

启动zk服务:         sh bin/zkServer.sh start
查看zk服务状态:      sh bin/zkServer.sh status
停止zk服务:         sh bin/zkServer.sh stop
重启zk服务:         sh bin/zkServer.sh restart

(2)客户端常用命令

可以使用zkCli.sh -server 127.0.0.1:2181尝试连接到zk服务。连接成功后,系统会输出zk的相关环境以及配置信息。

命令行工具的一些简单操作如下:

一.显示根目录下文件: ls /
使用ls命令来查看当前zk中所包含的内容;二.显示根目录下文件: ls2 /
查看当前节点数据并能看到更新次数等数据;三.创建文件并设置初始内容:create /zk "test"
创建一个新的znode节点"zk"以及与它关联的字符串;
[-e] [-s] (-e 临时节点)(-s 顺序节点)四.获取文件内容: get /zk
确认ZNode是否包含我们所创建的字符串,[watch](watch监听);五.修改文件内容:set /zk "zkbak"
对zk所关联的字符串进行设置;六.删除文件: delete /zk
将刚才创建的ZNode删除,如果存在子节点删除失败;七.递归删除:rmr或者deleteall  /zk
将刚才创建的ZNode删除,子节点同时删除;八.退出客户端: quit;帮助命令: help

不能创建同名的节点:

[zk: 127.0.0.1:2181(CONNECTED) 0] create /node1 value
Created /node1
[zk: 127.0.0.1:2181(CONNECTED) 1] ls /
[aaa, node1, zookeeper]
[zk: 127.0.0.1:2181(CONNECTED) 2] create /node1 value 
Node already exists: /node1

创建临时节点使用-e:

[zk: 127.0.0.1:2181(CONNECTED) 5] create -e /node3 value
Created /node3
[zk: 127.0.0.1:2181(CONNECTED) 7] ls /
[aaa, node1, node2, node3, zookeeper]

创建完临时节点node3后退出客户端与服务端连接,然后客户端重新再连接服务端,再执行ls查看,发现node3已经不见了。

[zk: 127.0.0.1:2181(CONNECTED) 8] quit
$ ./zkCli.sh -server 127.0.0.1:2181
[zk: 127.0.0.1:2181(CONNECTED) 0] ls /
[aaa, node1, node2, zookeeper]

不管是持久节点还是临时节点,一旦创建完一个节点后,再重复创建同名节点都是不成功的。

[zk: 127.0.0.1:2181(CONNECTED) 0] ls /
[aaa, node1, node2, zookeeper]
[zk: 127.0.0.1:2181(CONNECTED) 1] create /seqnode abc
Created /seqnode
[zk: 127.0.0.1:2181(CONNECTED) 2] create /seqnode abc
Node already exists: /seqnode[zk: 127.0.0.1:2181(CONNECTED) 3] create -e /nodee aaa
Created /nodee
[zk: 127.0.0.1:2181(CONNECTED) 4] create -e /nodee aaa
Node already exists: /nodee

创建顺序节点使用-s,可以重复创建"同名"的顺序节点(命令行看起来同名而已,但实际不是同名的)。

[zk: 127.0.0.1:2181(CONNECTED) 6] create -e -s /nodes aaa
Created /nodes0000000007
[zk: 127.0.0.1:2181(CONNECTED) 7] create -e -s /nodes aaa
Created /nodes0000000008

修改节点内容使用set命令:

[zk: 127.0.0.1:2181(CONNECTED) 9] get /aaa
ccc
[zk: 127.0.0.1:2181(CONNECTED) 10] stat /aaa
cZxid = 0x2
ctime = Wed Feb 09 16:01:50 CST 2022
mZxid = 0x5
mtime = Wed Feb 09 16:03:01 CST 2022
pZxid = 0x8
cversion = 2
dataVersion = 2
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 2
[zk: 127.0.0.1:2181(CONNECTED) 11] set /aaa ccc
[zk: 127.0.0.1:2181(CONNECTED) 12] get /aaa
ccc
[zk: 127.0.0.1:2181(CONNECTED) 13] stat /aaa
cZxid = 0x2
ctime = Wed Feb 09 16:01:50 CST 2022
mZxid = 0x17
mtime = Wed Feb 09 16:53:46 CST 2022
pZxid = 0x8
cversion = 2
dataVersion = 3
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 2

删除节点使用delete(不能删有子节点的)或者deleteall(可以进行递归删除):

[zk: 127.0.0.1:2181(CONNECTED) 21] delete /aaa
Node not empty: /aaa
[zk: 127.0.0.1:2181(CONNECTED) 22] ls /aaa
[aaa_1, aaa_2]
[zk: 127.0.0.1:2181(CONNECTED) 23] delete /aaa/aaa_1
[zk: 127.0.0.1:2181(CONNECTED) 24] ls /aaa
[aaa_2]
[zk: 127.0.0.1:2181(CONNECTED) 25] delete /aaa
Node not empty: /aaa
[zk: 127.0.0.1:2181(CONNECTED) 26] rmr /aaa
The command 'rmr' has been deprecated. Please use 'deleteall' instead.

(3)ACL命令常用命令

zk的ACL分三个维度:scheme、id、permission,通常表示为:scheme:id:permission。其中schema代表授权策略,id代表用户,permission代表权限。

[zk: 127.0.0.1:2181(CONNECTED) 1] getAcl /seqnode
'world,'anyone
: cdrwa

一.Scheme(授权策略)

world:默认方式,相当于全世界都能访问;
auth:代表已经认证通过的用户,这里的密码是明文;
digest:即用户名:密码这种方式认证,这也是业务系统中最常用的;
ip:使用IP地址认证;

二.id(用户)

id是验证模式,不同的scheme,id的值也不一样;

scheme为auth时:id为username:password,这里的密码是明文
scheme为digest时:id为username:BASE64(SHA1(password))
scheme为ip时:id为客户端的ip地址
scheme为world时:id为anyone

三.Permission(权限)

CREATE、READ、WRITE、DELETE、ADMIN,也就是增、删、改、查、管理权限,这5种权限简写为crwda(即:每个单词的首字符缩写)。

CREATE(c):创建子节点的权限;
DELETE(d):删除节点的权限;
READ(r):读取节点数据的权限;
WRITE(w):修改节点数据的权限;
ADMIN(a):设置子节点权限的权限;

四.ACL命令

命令1:getAcl

获取指定节点的ACL信息:

create /testDir/testAcl deer  # 创建一个子节点
getAcl /testDir/testAcl      # 获取该节点的acl权限信息
[zk: 127.0.0.1:2181(CONNECTED) 1] create /testDir testDir
Created /testDir
[zk: 127.0.0.1:2181(CONNECTED) 2] create /testDir/testAcl deer
Created /testDir/testAcl
[zk: 127.0.0.1:2181(CONNECTED) 3] getAcl /testDir/testAcl
'world,'anyone
: cdrwa

命令2:setAcl

设置指定节点的ACL信息:

setAcl /testDir/testAcl world:anyone:crwa   # 设置该节点的acl权限
getAcl /testDir/testAcl   # 获取该节点的acl权限信息,成功后,该节点就少了d权限
create /testDir/testAcl/xyz xyz-data   # 创建子节点
delete /testDir/testAcl/xyz    # 由于没有d权限,所以提示无法删除[zk: 127.0.0.1:2181(CONNECTED) 3] getAcl /testDir/testAcl
'world,'anyone
: cdrwa
[zk: 127.0.0.1:2181(CONNECTED) 4] setAcl /testDir/testAcl world:anyone:crwa
[zk: 127.0.0.1:2181(CONNECTED) 5] getAcl /testDir/testAcl
'world,'anyone
: crwa
[zk: 127.0.0.1:2181(CONNECTED) 6] create /testDir/testAcl/xyz xyz-data
Created /testDir/testAcl/xyz
[zk: 127.0.0.1:2181(CONNECTED) 7] delete /testDir/testAcl/xyz
Authentication is not valid : /testDir/testAcl/xyz

命令3:addauth

注册会话授权信息。如果给ZNode设置权限了,后面退出客户端,则重新登录时需再次注册授权才能有ZNode权限。

//Scheme的auth
addauth digest user1:123456                      # 需要先添加一个用户
setAcl /testDir/testAcl auth:user1:123456:crwa     # 然后才可以拿着这个用户去设置权限
getAcl /testDir/testAcl                # 密码是以密文的形式存储的
create /testDir/testAcl/testa aaa   
delete /testDir/testAcl/testa             # 由于没有d权限,所以提示无法删除[zk: 127.0.0.1:2181(CONNECTED) 8] addauth digest user1:123456
[zk: 127.0.0.1:2181(CONNECTED) 9] setAcl /testDir/testAcl auth:user1:123456:crwa
[zk: 127.0.0.1:2181(CONNECTED) 10] getAcl /testDir/testAcl
'digest,'user1:HYGa7IZRm2PUBFiFFu8xY2pPP/s=
: crwa
[zk: 127.0.0.1:2181(CONNECTED) 11] create /testDir/testAcl/testa aaa
Created /testDir/testAcl/testa
[zk: 127.0.0.1:2181(CONNECTED) 12] delete /testDir/testAcl/testa
Authentication is not valid : /testDir/testAcl/testa

退出客户端后:

ls /testDir/testAcl  #没有权限无法访问
create /testDir/testAcl/testb bbb #没有权限无法访问
addauth digest user1:123456  # 重新新增权限后可以访问了,相当于给当前用户增加了一个user1而且密码是123456[zk: 127.0.0.1:2181(CONNECTED) 13] quit
$ ./zkCli.sh -server 127.0.0.1:2181
[zk: 127.0.0.1:2181(CONNECTED) 0]
[zk: 127.0.0.1:2181(CONNECTED) 0] ls /testDir/testAcl
Authentication is not valid : /testDir/testAcl
[zk: 127.0.0.1:2181(CONNECTED) 1] create /testDir/testAcl/testb bbb
Authentication is not valid : /testDir/testAcl/testb
[zk: 127.0.0.1:2181(CONNECTED) 2] addauth digest user1:123456
[zk: 127.0.0.1:2181(CONNECTED) 3] ls /testDir/testAcl
[testa, xyz]
[zk: 127.0.0.1:2181(CONNECTED) 4] create /testDir/testAcl/testb bbb
Created /testDir/testAcl/testb

auth与digest的区别就是:前者使用明文密码进行登录,后者使用密文密码进行登录。

create /testDir/testDigest  data
addauth digest user1:123456         # 增加用户
setAcl /testDir/testDigest digest:user1:HYGa7IZRm2PUBFiFFu8xY2pPP/s=:crwa  # 使用digest来设置权限
setAcl /testDir/testAcl auth:user1:123456:crwa                   # 使用auth来设置权限

注意:这里如果使用明文,会导致该znode不可访问。通过明文获得密文:使用zk的类DigestAuthenticationProvider。

$ java -Djava.ext.dirs=/Users/demo/Documents/apache-zookeeper-3.5.9-bin/lib -cp /Users/juntaowong/Documents/apache-zookeeper-3.5.9-bin/lib/zookeeper-3.5.9.jar org.apache.zookeeper.server.auth.DigestAuthenticationProvider deer:123456
deer:123456->deer:UwPiSoSNChqcQfSgAat6bc3IzwQ=

命令4:ACL命令行ip

create  /testDir/testIp data
setAcl  /testDir/testIp ip:192.168.30.10:cdrwa
getAcl  /testDir/testIp

命令5:ACL启用super权限

setAcl权限时只设置了r权限,导致节点无法删除:

create /enjoy1/node1  enjoy
setAcl /enjoy1  world:anyone:r

这时无论是delete还是rmr都没有权限删除,解决方式就是启用super权限:

步骤1:使用DigestAuthenticationProvider.generateDigest("super:admin"); 获得密码
步骤2:修改zkServer启动脚本增加:"-Dzookeeper.DigestAuthenticationProvider.superDigest=super:xQJmxLMiHGwaqBvst5y6rkB6HQs="
步骤3:启动客户端用管理员登陆:addauth digest super:admin

(4)常用四字命令

zk支持某些特定的四字命令字母结合nc与其的交互,这样可以用来获取zk服务的当前状态及相关信息,也就是通过telnet或nc向zk提交相应的命令。

echo stat | nc 127.0.0.1 2181,来查看哪个节点被选择作为follower或者leader;
echo ruok | nc 127.0.0.1 2181,测试是否启动了该Server,若回复imok表示已经启动;
echo dump | nc 127.0.0.1 2181,列出未经处理的会话和临时节点;
echo kill | nc 127.0.0.1 2181,关掉server;
echo conf | nc 127.0.0.1 2181,输出相关服务配置的详细信息;
echo cons | nc 127.0.0.1 2181,列出所有连接到服务器的客户端的完全的连接 / 会话的详细信息;
echo envi | nc 127.0.0.1 2181,输出关于服务环境的详细信息(区别于conf命令);
echo reqs | nc 127.0.0.1 2181,列出未经处理的请求;
echo wchs | nc 127.0.0.1 2181,列出服务器watch的详细信息;
echo wchc | nc 127.0.0.1 2181,通过session列出服务器watch的详细信息,它的输出是一个与watch相关的会话的列表;
echo wchp | nc 127.0.0.1 2181,通过路径列出服务器watch的详细信息,它输出一个与session相关的路径;

(5)zk日志可视化

zk有两个非常重要的配置:一个是dataDir,里面存放的是快照数据。一个是dataLogDir,里面存放的是事务日志数据。可以通过以下方式使用zk的类LogFormatter来查看日志、使用zk的类SnapshotFormatter来查看快照:

$ java -cp /soft/zookeeper-3.4.12/zookeeper-3.4.12.jar:/soft/zookeeper-3.4.12/lib/slf4j-api-1.7.25.jar org.apache.zookeeper.server.LogFormatter log.1
$ java -cp /soft/zookeeper-3.4.12/zookeeper-3.4.12.jar:/soft/zookeeper-3.4.12/lib/slf4j-api-1.7.25.jar org.apache.zookeeper.server.SnapshotFormatter log.1
http://www.dtcms.com/wzjs/335702.html

相关文章:

  • 有做火币网这种网站的吗优化网站关键词优化
  • 武汉专业网站做网页云南疫情最新数据消息中高风险地区
  • 专业网站的公司蚂蚁链接bt链接
  • 兰州网站建设公司排名信息流优化师简历怎么写
  • 网站登记表百度发作品入口在哪里
  • 张店区创业孵化中心有做网站的吗游戏网站交换友情链接
  • 什么企业做网站比较好百度sem推广
  • 如何做网站滚动条怎样下载优化大师
  • 网站的费用可以做无形资产吗百度网址大全
  • 做网站友情链接都写什么seo优化技术招聘
  • 重庆市建设安全监督站的网站精准推广
  • 网站优化指标长治seo顾问
  • 企业网站设计请示什么时候友情链接
  • 产品展示类网站模板今日热点新闻事件2022
  • 咔咔做受视频网站做网站公司哪家正规
  • 中山做企业网站临沂百度联系方式
  • 云南红舰工贸有限公司的网站建设百度竞价优化软件
  • 做网站在哪里建站合肥网络公司seo
  • 褚橙的网站建设东莞seo建站优化工具
  • 做网站用云虚机还是ecs免费的html网站
  • 常用来做网站首页的是最近新闻有哪些
  • 国外一个专门做配乐的网站怎么买域名自己做网站
  • 泰州网站设计公司制作app软件平台
  • 郑州一网网站建设怎么优化网站性能
  • 网站备案相机百度seo怎么操作
  • 企业网站内容运营seo一个月赚多少钱
  • 万盛经开区建设局网站搜索引擎排名优化seo
  • 做网站图标按钮素材西安seo工作室
  • 小程序制作需要什么语言seo外包公司是啥
  • 合肥建设厅官方网站快速排名软件案例