zabbix 监控ssdb
zabbix 的啥基础知识啥的,请看由本站大牛凉白开先生写的zabbix教程。这里说说如何监控ssdb。SSDB 是一个 C/C++ 语言开发的高性能 NoSQL 数据库, 支持 KV, list, map(hash), zset(sorted set) 等数据结构, 用来替代或者与 Redis 配合存储十亿级别列表的数据。
百牛信息技术bainiu.ltd整理发布到博客园
- 导入ssdb模板
这个是我自己创建的。不合适的地方自行修改。123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792<?xml version="1.0" encoding="UTF-8"?><zabbix_export><version>3.2</version><date>2017-07-05T06:50:33Z</date><groups><group><name>Templates</name></group></groups><templates><template><template>Template App SSDB</template><name>Template App SSDB</name><description>ssdb</description><groups><group><name>Templates</name></group></groups><applications><application><name>ssdb</name></application></applications><items><item><name>ssdb server is running</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>net.tcp.listen[{$SSDB.PORT}]</key><delay>30</delay><history>90</history><trends>365</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>ssdb</name></application></applications><valuemap><name>Service state</name></valuemap><logtimefmt/></item><item><name>ssdb $1</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>ssdb[available]</key><delay>30</delay><history>90</history><trends>365</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>ssdb</name></application></applications><valuemap><name>Service state</name></valuemap><logtimefmt/></item><item><name>ssdb $1 max_seq</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>ssdb[binlogs]</key><delay>30</delay><history>90</history><trends>365</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description>The maximum binlog number in the current queue</description><inventory_link>0</inventory_link><applications><application><name>ssdb</name></application></applications><valuemap/><logtimefmt/></item><item><name>ssdb $1</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>ssdb[dbsize]</key><delay>30</delay><history>90</history><trends>365</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>ssdb</name></application></applications><valuemap/><logtimefmt/></item><item><name>ssdb links</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>ssdb[links]</key><delay>30</delay><history>90</history><trends>365</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>ssdb</name></application></applications><valuemap/><logtimefmt/></item><item><name>ssdb $1 $2</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>ssdb[replication.client,last_seq]</key><delay>30</delay><history>90</history><trends>365</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>ssdb</name></application></applications><valuemap/><logtimefmt/></item><item><name>ssdb $1 $2</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>ssdb[replication.client,status]</key><delay>30</delay><history>90</history><trends>0</trends><status>0</status><value_type>4</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>ssdb</name></application></applications><valuemap/><logtimefmt/></item><item><name>ssdb $1</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>ssdb[total_calls]</key><delay>30</delay><history>90</history><trends>365</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>ssdb</name></application></applications><valuemap/><logtimefmt/></item></items><discovery_rules><discovery_rule><name>SSDB cmd discovery</name><type>0</type><snmp_community/><snmp_oid/><key>ssdb.cmd.discovery</key><delay>30</delay><status>0</status><allowed_hosts/><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><delay_flex/><params/><ipmi_sensor/><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><filter><evaltype>0</evaltype><formula/><conditions/></filter><lifetime>30</lifetime><description/><item_prototypes><item_prototype><name>ssdb cmd $1 $2</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>ssdb[{#SSDBCMD},calls]</key><delay>30</delay><history>90</history><trends>365</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>ssdb</name></application></applications><valuemap/><logtimefmt/><application_prototypes><application_prototype><name>ssdb cmd discovery</name></application_prototype></application_prototypes></item_prototype><item_prototype><name>ssdb cmd $1 $2</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>ssdb[{#SSDBCMD},time_proc]</key><delay>30</delay><history>90</history><trends>365</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>ssdb</name></application></applications><valuemap/><logtimefmt/><application_prototypes><application_prototype><name>ssdb cmd discovery</name></application_prototype></application_prototypes></item_prototype><item_prototype><name>ssdb cmd $1 $2</name><type>0</type><snmp_community/><multiplier>0</multiplier><snmp_oid/><key>ssdb[{#SSDBCMD},time_wait]</key><delay>30</delay><history>90</history><trends>365</trends><status>0</status><value_type>3</value_type><allowed_hosts/><units/><delta>0</delta><snmpv3_contextname/><snmpv3_securityname/><snmpv3_securitylevel>0</snmpv3_securitylevel><snmpv3_authprotocol>0</snmpv3_authprotocol><snmpv3_authpassphrase/><snmpv3_privprotocol>0</snmpv3_privprotocol><snmpv3_privpassphrase/><formula>1</formula><delay_flex/><params/><ipmi_sensor/><data_type>0</data_type><authtype>0</authtype><username/><password/><publickey/><privatekey/><port/><description/><inventory_link>0</inventory_link><applications><application><name>ssdb</name></application></applications><valuemap/><logtimefmt/><application_prototypes><application_prototype><name>ssdb cmd discovery</name></application_prototype></application_prototypes></item_prototype></item_prototypes><trigger_prototypes/><graph_prototypes><graph_prototype><name>ssdb {#SSDBCMD}</name><width>900</width><height>200</height><yaxismin>0.0000</yaxismin><yaxismax>100.0000</yaxismax><show_work_period>1</show_work_period><show_triggers>1</show_triggers><type>0</type><show_legend>1</show_legend><show_3d>0</show_3d><percent_left>0.0000</percent_left><percent_right>0.0000</percent_right><ymin_type_1>0</ymin_type_1><ymax_type_1>0</ymax_type_1><ymin_item_1>0</ymin_item_1><ymax_item_1>0</ymax_item_1><graph_items><graph_item><sortorder>0</sortorder><drawtype>0</drawtype><color>1A7C11</color><yaxisside>0</yaxisside><calc_fnc>2</calc_fnc><type>0</type><item><host>Template App SSDB</host><key>ssdb[{#SSDBCMD},calls]</key></item></graph_item><graph_item><sortorder>1</sortorder><drawtype>0</drawtype><color>F63100</color><yaxisside>0</yaxisside><calc_fnc>2</calc_fnc><type>0</type><item><host>Template App SSDB</host><key>ssdb[{#SSDBCMD},time_proc]</key></item></graph_item><graph_item><sortorder>2</sortorder><drawtype>0</drawtype><color>2774A4</color><yaxisside>0</yaxisside><calc_fnc>2</calc_fnc><type>0</type><item><host>Template App SSDB</host><key>ssdb[{#SSDBCMD},time_wait]</key></item></graph_item></graph_items></graph_prototype></graph_prototypes><host_prototypes/></discovery_rule></discovery_rules><httptests/><macros><macro><macro>{$SSDB.PORT}</macro><value>8888</value></macro></macros><templates/><screens/></template></templates><triggers><trigger><expression>{Template App SSDB:net.tcp.listen[{$SSDB.PORT}].last()}=0</expression><recovery_mode>1</recovery_mode><recovery_expression>{Template App SSDB:net.tcp.listen[{$SSDB.PORT}].last()}=1</recovery_expression><name>ssdb is down on {HOST.NAME}</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>4</priority><description/><type>0</type><manual_close>0</manual_close><dependencies/><tags/></trigger><trigger><expression>{Template App SSDB:ssdb[binlogs].last()} - {Template App SSDB:ssdb[replication.client,last_seq].last()} > 3600</expression><recovery_mode>0</recovery_mode><recovery_expression/><name>ssdb replacation is behind on {HOST.NAME}</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>2</priority><description/><type>0</type><manual_close>0</manual_close><dependencies><dependency><name>ssdb replacation is failed on {HOST.NAME}</name><expression>{es1:ssdb[replication.client,status].str(SYNC)}<>1</expression><recovery_expression/></dependency></dependencies><tags/></trigger><trigger><expression>{Template App SSDB:ssdb[replication.client,status].str(SYNC)}<>1</expression><recovery_mode>0</recovery_mode><recovery_expression/><name>ssdb replacation is failed on {HOST.NAME}</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>2</priority><description/><type>0</type><manual_close>0</manual_close><dependencies><dependency><name>ssdb is down on {HOST.NAME}</name><expression>{es1:net.tcp.listen[{$SSDB.PORT}].last()}=0</expression><recovery_expression>{es1:net.tcp.listen[{$SSDB.PORT}].last()}=1</recovery_expression></dependency></dependencies><tags/></trigger><trigger><expression>{Template App SSDB:ssdb[available].last()}<>1</expression><recovery_mode>0</recovery_mode><recovery_expression/><name>ssdb service availability on {HOST.NAME}</name><correlation_mode>0</correlation_mode><correlation_tag/><url/><status>0</status><priority>2</priority><description/><type>0</type><manual_close>0</manual_close><dependencies><dependency><name>ssdb is down on {HOST.NAME}</name><expression>{Template App SSDB:net.tcp.listen[{$SSDB.PORT}].last()}=0</expression><recovery_expression>{Template App SSDB:net.tcp.listen[{$SSDB.PORT}].last()}=1</recovery_expression></dependency></dependencies><tags/></trigger></triggers><graphs><graph><name>ssdb current connections</name><width>900</width><height>200</height><yaxismin>0.0000</yaxismin><yaxismax>100.0000</yaxismax><show_work_period>1</show_work_period><show_triggers>1</show_triggers><type>0</type><show_legend>1</show_legend><show_3d>0</show_3d><percent_left>0.0000</percent_left><percent_right>0.0000</percent_right><ymin_type_1>0</ymin_type_1><ymax_type_1>0</ymax_type_1><ymin_item_1>0</ymin_item_1><ymax_item_1>0</ymax_item_1><graph_items><graph_item><sortorder>0</sortorder><drawtype>0</drawtype><color>1A7C11</color><yaxisside>0</yaxisside><calc_fnc>2</calc_fnc><type>0</type><item><host>Template App SSDB</host><key>ssdb[links]</key></item></graph_item></graph_items></graph><graph><name>ssdb database size estimate</name><width>900</width><height>200</height><yaxismin>0.0000</yaxismin><yaxismax>100.0000</yaxismax><show_work_period>1</show_work_period><show_triggers>1</show_triggers><type>0</type><show_legend>1</show_legend><show_3d>0</show_3d><percent_left>0.0000</percent_left><percent_right>0.0000</percent_right><ymin_type_1>0</ymin_type_1><ymax_type_1>0</ymax_type_1><ymin_item_1>0</ymin_item_1><ymax_item_1>0</ymax_item_1><graph_items><graph_item><sortorder>0</sortorder><drawtype>0</drawtype><color>1A7C11</color><yaxisside>0</yaxisside><calc_fnc>2</calc_fnc><type>0</type><item><host>Template App SSDB</host><key>ssdb[dbsize]</key></item></graph_item></graph_items></graph></graphs><value_maps><value_map><name>Service state</name><mappings><mapping><value>0</value><newvalue>Down</newvalue></mapping><mapping><value>1</value><newvalue>Up</newvalue></mapping></mappings></value_map></value_maps></zabbix_export>文件下载:zbx_ssdb_templates.xml
- 脚本
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960$ cat /etc/zabbix/libexec/ssdb.py#!/bin/env pythonimport sys,json,socket,refrom SSDB import SSDBdef get_stats(ip,port):ssdb = SSDB(ip, port)info = ssdb.request('info',['cmd'])result= info.data[1:]return resultdef discovery_cmd(info):d={'data':[]}for i in range(0,len(info),2):if info[i].find('cmd') != -1:d['data'].append({'{#SSDBCMD}':info[i]})return json.dumps(d)def check(ip,port):ssdb = SSDB(ip, port)try:ssdb.request('set', ['zabbix', '123'])ssdb.request('get', ['zabbix'])return 1except:return 0if __name__ == '__main__':ip = socket.gethostbyname(socket.getfqdn(socket.gethostname()))port = 8888stats = get_stats(ip,port)res = {}for i in range(0,len(stats),2):if stats[i] == 'replication':stats[i] = stats[i]+'.'+stats[i+1].split()[0]res[stats[i]] = stats[i+1]cmd = sys.argv[1]filter = sys.argv[2] if len(sys.argv) > 2 else ''if cmd == 'discover':print discovery_cmd(stats)elif cmd.find('cmd') != -1:p = re.compile('(\w+):\s+(\d+)\s+(\w+):\s+(\d+)\s+(\w+):\s+(\d+)')m = p.match(res[cmd])d=dict(zip(m.group(1,3,5),m.group(2,4,6)))#print d[filter]print d.get(filter,'not support')elif cmd == 'replication.client':for i in res['replication.client'].split('\n'):if i.split(':')[0].strip() == filter:print i.split(':')[1].strip()elif cmd == 'binlogs':print res['binlogs'].split('\n')[-1].split(':')[-1].strip()elif cmd == 'available':print check(ip,port)else:print res.get(cmd,'not support')
- userparameter配置
123$ cat /etc/zabbix/zabbix_agentd.d/userparameter_ssdb.confUserParameter=ssdb.cmd.discovery,/etc/zabbix/libexec/ssdb.py discoverUserParameter=ssdb[*],/etc/zabbix/libexec/ssdb.py $1 $2
需要使用到ssdb的python客户端,我这里是使用ssdb源码自带的python客户端。
item的定义:

triggers定义:

注意:适用于ssdb 主主复制。单实例、主从、多主并未测试过。
zabbix 监控ssdb的更多相关文章
- 使用Zabbix监控Oracle数据库
Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...
- Zabbix监控nginx-rtmp status(json版)
与前面的文章 zabbix监控nginx-rtmp status(html版)区别只在于取值的页面不一样 http://127.0.0.1:81/control/get/all_streams sta ...
- Zabbix监控mysql performance
介绍 zabbix监控mysql性能,使用zabbix自带的mysql监控模板,可以监控以下内容OPS(增删改查).mysql慢查询数量.mysql请求\响应流量带宽 配置 新建mysql监控用户 G ...
- zabbix监控Java 8080端口
linux下端口和服务是对应的,Java进程启动时默认监听8080端口,如果服务挂掉则8080端口就没有了. lsof -i:8080 端口,如果没有任何的输出,说明该端口不在工作. 想在zabbix ...
- zabbix监控报错zabbix server is not running解决方法
问题描述: 布置好zabbix监控,正常运行.但是重启了虚拟机服务器之后,页面出现如下的报错,而且设置的报信息也是失效的:
- Zabbix监控Tengine
title: Zabbix监控Tengine tags: zabbix,nginx,tengine author: Chinge Yang date: 2016-12-29 --- Zabbix监控T ...
- zabbix 监控web网站性能
一直在纠结用什么实例来给大家演示呢?想来想去还是官方的好,那我们怎么用zabbix监控web性能和可用性呢?我们这边分为几个步骤:打开网站.登陆.登陆验证.退出,一共4个小step,看实例. 检测流程 ...
- Zabbix监控disk performance
概述 zabbix获取/sys里面的磁盘信息并分析来监控disk performance sysfs是Linux内核中设计较新的一种虚拟的基于内存的文件系统,它的作用与 proc 有些类似(默认挂载在 ...
- Zabbix监控mysql主从复制状态
原理 mysql slave show slave status\G 在输出信息中查看I/O线程和SQL线程的状态值(YES为正常,NO为错误) Slave_IO_Running: Yes Slave ...
随机推荐
- kafka直连方式消费多个topic
一个消费者组可以消费多个topic,以前写过一篇一个消费者消费一个topic的,这次的是一个消费者组通过直连方式消费多个topic,做了小测试,结果是正确的,通过查看zookeeper的客户端,zoo ...
- hdu 1711kmp裸题
#include<stdio.h> #define N 1000050 int text[N],t[N],next[N],n,m; void getnext() { int j=0,k=- ...
- The Grove(poj 3182)
题意:一个n*m(n,m<=50)的矩阵有一片连着的树林,Bessie要从起始位置出发绕林子一圈再回来,每次只能向横着.竖着或斜着走一步.问最少需多少步才能完成. /* 如果我们用搜索来写的话, ...
- Android资源目录结构
资源目录结构 res为资源目录,主要以xml语法编写静态的资源. 资源的命名标准:小写字母和数字,且以小写字母开头. 资源的生成,为了和java语法沟通,资源文件会自动的生成在[gen]目录的R.ja ...
- POJ 1704 Georgia and Bob【博弈】
题目链接: http://poj.org/problem?id=1704 题意: 给定棋子及其在格子上的坐标,两个人轮流选择一个棋子向左移动,每次至少移动一格,但是不可以碰到其他棋子.无路可走的时候视 ...
- Codeforces Round #291 (Div. 2) B. Han Solo and Lazer Gun
因为是x,y均为整数因此对于同一直线的点,其最简分数x/y是相同的(y可以为0,这里不做除法)于是将这些点不断求最简分数用pair在set中去重即可. #include <cmath> # ...
- 七天从零基础学习android(1)--配置环境
在写这篇文的时候android开发经验还是0,是一个萌新,这是一篇记录一个萌新从零android编程基础到能编写一个记账本的开发过程(至少我是这样美好的希望着的) 首先因为是没有开发基础的,直接上百度 ...
- Spring事务管理概述
以下内容引用自http://wiki.jikexueyuan.com/project/spring/transaction-management.html: 数据库事务是一个被视为单一的工作单元的操作 ...
- mtk刷机错误汇总
MTK常见错误解读与解决方法: 1.刷机过了红条,到了紫色条卡住.(错误代码4008) 解决方法:这种情况出现的话,大家可以把电池拿下来,然后重新安装上,进入REC后选择关机.然后重新刷. 2.驱动安 ...
- IntelliJ IDEA 使用maven 集成SpringMVC+Hibernate
准备工作: 安装idea intellij 安装jdk1.8,配好环境变量 安装tomcat 7 准备工作完成之后,就开始创建项目了 创建项目 1.File–>new project–>选 ...