为ZooKeeper增加一个小功能:指定IP进行受限客户端过滤
2011-12-07 15:31
369 查看
(所有要下载的文件都在这里:https://issues.apache.org/jira/browse/ZOOKEEPER-1320)
ZooKeeper功能定位专一,这“导致”了他并不支持一些“非主流”功能。但是有时候,作为ZooKeeper管理员还是很需要某些功能:比如通过指定ip的方式,拒绝某个客户端的连接和操作请求。目前ZooKeeper官方的说法是,通过配置iptables来实现这个需求。(另外,ZK能够设置单个客户端的最大连接数,但是对于突发情况,这个貌似是没用的,因为需要重启)。对于那些有Server的系统来说,这个功能其实还是蛮需要的,身边同事负责的系统,也有因为某个客户端的使用不当,影响Server性能的。
我稍微修改了下zk的代码,目前已经支持动态limitedIp配置,至多10s(可配置)能够对指定客户端进行拦截,从而防止单个或若干个客户端对zkserver的冲击,禁止某个或某些ip对zkServer的连接。已经给内部一个日志分析系统试用了。代码的patch和基于3.3.3-rc0build出来的zookeeper-3.3.3.jar_iplimited都可以到这里下载:ZOOKEEPER-1320
Howtousethisfeature:
1.DownloadZOOKEEPER-1320-iplimited.patch,andpatchitonyouzookeeperserversourcecode,andrebuildyouproject.Oryoucandownloadthezookeeper-3.3.3.jar_iplimitedandrenameittozookeeper-3.3.3.jar.
2.Replacezookeeper-3.3.3.jarof%ZK_HOME%/
3.Startit.
4.Use./zkCli.shtoconnecttotheserver,andusecommandsasfollow:
set/zookeeper/extends/skip_limited_ipfalse
set/zookeeper/extends/limited_ip1.1.1.1,1.1.1.2,1.1.1.3
5.Usethesecommandinruntimefeelfree,takeeffectwithin10seconds.
6.Note:UsecommawithEnglishstateinputmethod.
7.Enjoy.
1.下载ZOOKEEPER-1320-iplimited.patch,打到你的zk源代码上,然后重新build一次。或者可以直接zookeeper-3.3.3.jar_iplimited(这个是我在3.3.3-rc0基础上build的),并重命名为zookeeper-3.3.3.jar。
2.替换server上%ZK_HOME%中的zookeeper-3.3.3.jar。
3.启动zk。
4.通过命令方式./zkCli.sh连接zk,进行如下操作:
set/zookeeper/extends/skip_limited_ipfalse
set/zookeeper/extends/limited_ip1.1.1.1,1.1.1.2,1.1.1.3
注意:不同ip之间用英文状态,隔开。以后可以随时执行以上命令,至多10s内生效。
稍后会给出开启这个功能后对ZKServer性能影响,注意,三台ZKServer配置:4核2台,8核一台,内存都是4GB,zk日志和数据所在挂载点磁盘大小:都是8G,(不断在清理zk日志。。。),另外,这几台机器上还有其它java程序在运行。因此,本次测试重在对比,请不要太关注绝对值(绝对的性能测试以及丰富的测试用例在这里)。另外,我也测试了对session建立的测试,但是session本身受网络影响,波动非常大,这里就不给出了。点击图片查看大图
纯读性能
ZooKeeper功能定位专一,这“导致”了他并不支持一些“非主流”功能。但是有时候,作为ZooKeeper管理员还是很需要某些功能:比如通过指定ip的方式,拒绝某个客户端的连接和操作请求。目前ZooKeeper官方的说法是,通过配置iptables来实现这个需求。(另外,ZK能够设置单个客户端的最大连接数,但是对于突发情况,这个貌似是没用的,因为需要重启)。对于那些有Server的系统来说,这个功能其实还是蛮需要的,身边同事负责的系统,也有因为某个客户端的使用不当,影响Server性能的。
我稍微修改了下zk的代码,目前已经支持动态limitedIp配置,至多10s(可配置)能够对指定客户端进行拦截,从而防止单个或若干个客户端对zkserver的冲击,禁止某个或某些ip对zkServer的连接。已经给内部一个日志分析系统试用了。代码的patch和基于3.3.3-rc0build出来的zookeeper-3.3.3.jar_iplimited都可以到这里下载:ZOOKEEPER-1320
Howtousethisfeature:
1.DownloadZOOKEEPER-1320-iplimited.patch,andpatchitonyouzookeeperserversourcecode,andrebuildyouproject.Oryoucandownloadthezookeeper-3.3.3.jar_iplimitedandrenameittozookeeper-3.3.3.jar.
2.Replacezookeeper-3.3.3.jarof%ZK_HOME%/
3.Startit.
4.Use./zkCli.shtoconnecttotheserver,andusecommandsasfollow:
set/zookeeper/extends/skip_limited_ipfalse
set/zookeeper/extends/limited_ip1.1.1.1,1.1.1.2,1.1.1.3
5.Usethesecommandinruntimefeelfree,takeeffectwithin10seconds.
6.Note:UsecommawithEnglishstateinputmethod.
7.Enjoy.
1.下载ZOOKEEPER-1320-iplimited.patch,打到你的zk源代码上,然后重新build一次。或者可以直接zookeeper-3.3.3.jar_iplimited(这个是我在3.3.3-rc0基础上build的),并重命名为zookeeper-3.3.3.jar。
2.替换server上%ZK_HOME%中的zookeeper-3.3.3.jar。
3.启动zk。
4.通过命令方式./zkCli.sh连接zk,进行如下操作:
set/zookeeper/extends/skip_limited_ipfalse
set/zookeeper/extends/limited_ip1.1.1.1,1.1.1.2,1.1.1.3
注意:不同ip之间用英文状态,隔开。以后可以随时执行以上命令,至多10s内生效。
稍后会给出开启这个功能后对ZKServer性能影响,注意,三台ZKServer配置:4核2台,8核一台,内存都是4GB,zk日志和数据所在挂载点磁盘大小:都是8G,(不断在清理zk日志。。。),另外,这几台机器上还有其它java程序在运行。因此,本次测试重在对比,请不要太关注绝对值(绝对的性能测试以及丰富的测试用例在这里)。另外,我也测试了对session建立的测试,但是session本身受网络影响,波动非常大,这里就不给出了。点击图片查看大图
纯读性能
相关文章推荐
- 为ZooKeeper增加一个小功能:指定IP进行受限客户端过滤
- 为ZooKeeper增加一个小功能:指定IP进行受限客户端过滤
- 为ZooKeeper增加一个小功能:指定IP进行受限客户端过滤
- 为ZooKeeper增加一个小功能:指定IP进行受限客户端过滤
- 在.NET环境下为网站增加IP过滤功能
- 用HTML+PHP写一个留言板来进行XSS测试&学习 第三篇(简单的过滤标签功能实现&绕过)
- PyCharm中按住Alt键,可以选择一个指定列表,然后对这个数列进行操作,比如删除,增加等等
- 这是一个定时脚本,主要功能是遍历该文件夹下的所有文件并存储到数组,对数据中的文件进行操作,一个一个移动到指定的目录下,并删除原有文件
- 在.NET环境下为网站增加IP过滤功能
- 在压缩话单中过滤指定IP的一个小脚本
- Thrift结构分析及增加取客户端IP功能实现
- 转 在.NET环境下为网站增加IP过滤功能
- 在.NET环境下为网站增加IP过滤功能
- ASP.NET环境下为网站增加IP过滤功能第1/2页
- 在.NET环境下为网站增加IP过滤功能
- iOS开发:一个高仿美团的团购ipad客户端的设计和实现(功能:根据拼音进行检索并展示数据,离线缓存团购数据,浏览记录与收藏记录的批量删除等)
- ASP.NET环境下为网站增加IP过滤功能第1/2页
- 在.NET环境下为网站增加IP过滤功能
- Thrift结构分析及增加取客户端IP功能实现
- 读取指定文件夹下的全部文件,可通过正则进行过滤,返回文件路径数组 -- 基于node的一个函数