zoukankan      html  css  js  c++  java
  • Zookeeper笔记之四字命令

    Zookeeper支持一些命令用来获取服务的状态和相关信息,因为这些命令都是四个字母的,所以一般称为四字命令。

    四字命令可以使用telnet或者nc向服务器提交,使用下面这个脚本可以当做是一个简易的客户端,它接收四字命令,发送到指定服务器,并将执行结果显示在控制台上,同时为了体验好一些,还提供了prompt来将用户输入的命令和命令的执行结果做区分:

    #! /bin/bash
    
    # [$1] server host
    # [$2] server port
    show_prompt(){
    	if [ $# -eq 2 ]; then
    		echo -n "$1:$2> "
    	else 
    		echo -n "> "
    	fi
    }
    
    show_help(){
    	echo 'Usage: '
    	echo '	four-letter-word-cli [server-host] [server-port]'
    	echo '	server-host and server-port default is localhost:2181'
    }
    
    # [$1] server host, default localhost
    # [$2] server port, default 2181
    four_letter_word_client(){
    
    	# 帮助信息
    	if [ "$1" == "-h" ]; then
    		show_help
    		return 0
    	fi
    
    	# 检查参数,若未传递则使用默认值
    	server_host=${1-"localhost"}
    	server_port=${2-2181}
    	
    	# 循环接收命令并执行
    	show_prompt $server_host $server_port
    	while read command
    	do
    		# 支持exit退出,兼容各种大小写情况
    		if [ `echo "foo-$command" | tr A-Z a-z` == "foo-exit" ]; then
    			echo "bye."
    			return 0
    		fi
    
    		echo $command | nc $server_host $server_port
    		show_prompt $server_host $server_port
    	done
    }
    
    # main
    four_letter_word_client $@
    

    效果如下:

     image

    conf

    输出服务相关的配置信息。

    localhost:2181> conf
    clientPort=2181
    dataDir=/tmp/zookeeper/version-2
    dataLogDir=/tmp/zookeeper/version-2
    tickTime=3000
    maxClientCnxns=0
    minSessionTimeout=6000
    maxSessionTimeout=60000
    serverId=0
    

    clientPort:服务监听在哪个端口上了

    dataDir:数据文件的目录

    dataLogDir:日志文件的目录,zk会将所有操作以类似于binlog的形式记录下来

    tickTime:

    maxClientCnxns:最大连接数

    minSessionTimeout:最小session超时时间

    maxSessionTimeout:最大session超时时间

    serverId:

    cons

    列出连接到服务器的客户端的连接信息。

    localhost:2181> cons
     /127.0.0.1:48482[1](queued=0,recved=1,sent=1,sid=0x163206280b2000c,lop=SESS,est=1527335699876,to=30000,lcxid=0x0,lzxid=0x68,lresp=1527335699898,llat=6,minlat=0,avglat=6,maxlat=6)
     /127.0.0.1:48486[0](queued=0,recved=1,sent=0)
    

    /127.0.0.1  ip地址

    :48482  端口

    [1](  连接编号

    queued=0,  所在队列

    recved=1,  接收包数量

    sent=1,  发送包数量

    sid=0x163206280b2000c,  会话id

    lop=SESS,  最后一次进行的操作

    est=1527335699876,  连接时间戳

    to=30000,  超时时间,timeout

    lcxid=0x0,    最后id(未确认具体id)

    lzxid=0x68,    最后id(状态变更id)

    lresp=1527335699898,  最后响应时间戳

    llat=6,  最后/最新延时

    minlat=0,  最小延时

    avglat=6,  平均延时

    maxlat=6)  最大延时

    dump

    列出未经处理的会话和临时节点

    localhost:2181> dump
    SessionTracker dump:
    Session Sets (3):
    0 expire at Sat May 26 19:56:12 CST 2018:
    0 expire at Sat May 26 19:56:21 CST 2018:
    1 expire at Sat May 26 19:56:30 CST 2018:
    	0x163206280b2000c
    ephemeral nodes dump:
    Sessions with Ephemerals (0):
    

    envi

    服务环境相关信息

    Environment:
    zookeeper.version=3.4.11-37e277162d567b55a07d1755f0b31c32e93c01a0, built on 11/01/2017 18:06 GMT
    host.name=localhost
    java.version=1.8.0_161
    java.vendor=Oracle Corporation
    java.home=/opt/jdk/jdk1.8.0_161/jre
    java.class.path=/opt/zookeeper/zookeeper-3.4.11/bin/../build/classes:/opt/zookeeper/zookeeper-3.4.11/bin/../build/lib/*.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../lib/slf4j-log4j12-1.6.1.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../lib/slf4j-api-1.6.1.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../lib/netty-3.10.5.Final.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../lib/log4j-1.2.16.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../lib/jline-0.9.94.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../lib/audience-annotations-0.5.0.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../zookeeper-3.4.11.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../src/java/lib/*.jar:/opt/zookeeper/zookeeper-3.4.11/bin/../conf:.:/opt/jdk/jdk1.8.0_161/lib:/lib:
    java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
    java.io.tmpdir=/tmp
    java.compiler=<NA>
    os.name=Linux
    os.arch=amd64
    os.version=3.10.0-514.26.2.el7.x86_64
    user.name=root
    user.home=/root
    user.dir=/opt/zookeeper/zookeeper-3.4.11/bin
    

    上面列出的主要是服务器用到的一些环境变量即其值。

    reqs

    列出未经处理的请求

    ruok

    测试服务器是否处于正确状态,如果是的话返回“imok”,否则的话没有任何回应。

    stat

    关于性能和客户端的连接信息

    imoklocalhost:2181> stat
    Zookeeper version: 3.4.10-39d3a4f269333c922ed3db283be479f9deacaa0f, built on 03/23/2017 10:13 GMT
    Clients:
     /127.0.0.1:49202[0](queued=0,recved=1,sent=0)
     /127.0.0.1:48482[1](queued=0,recved=62,sent=62)
    
    Latency min/avg/max: 0/0/63
    Received: 468342
    Sent: 468348
    Connections: 2
    Outstanding: 0
    Zxid: 0x68
    Mode: standalone
    Node count: 28
    

    wchs

    列出服务器的watch信息

    wchc

    通过session列出服务器的watch信息,输出是一个与watch相关的会话列表

    wchp

    通过路径列出服务器watch信息,输入与session相关的路径

     

    .

  • 相关阅读:
    搜索回车跳转页面
    登录验证码
    【排序算法】排序算法之插入排序
    PAT 乙级 1044 火星数字 (20 分)
    PAT 甲级 1035 Password (20 分)
    PAT 甲级 1041 Be Unique (20 分)
    PAT 甲级 1054 The Dominant Color (20 分)
    PAT 甲级 1027 Colors in Mars (20 分)
    PAT 甲级 1083 List Grades (25 分)
    PAT 甲级 1005 Spell It Right (20 分)
  • 原文地址:https://www.cnblogs.com/cc11001100/p/10227024.html
Copyright © 2011-2022 走看看