Zookeeper深入理解(二)(编程实践之Zookeepr使用警告)

作者:JerryXia | 发表于 , 阅读 (0)
schema是一些内置的验证方式,如world(只能用anyone作为授权信息),super(任何管理员对应的scheme为super,拥有super的Client不会受ACL控制),digest(摘要),ip,sasl等。使用digest方式进行验证# 使用digest模式,用户名为amy,密码摘要为Iq0onHjzb4KyxPAp8YWOIC8zzwY=,访问控制为READ | WRITE | CREATE | DELETE | ADMINdigest:amy:Iq0onHjzb4KyxPAp8YWOIC8zzwY=, READ | WRITE | CREATE | DELETE | ADMIN使用ip方式进行验证# 对10.11.12.0 ~ 10.11.12.255仅有读权限ip:10.11.12.0/24, READ...阅读全文

Zookeeper深入理解(三)(Zookeeper管理之运维)

作者:JerryXia | 发表于 , 阅读 (0)
preAllocSizepreAllocSize事务日志文件的预分配大小(kb)(zookeeper.preAllocSize)。当Server写入事务日志时,会一次性申请preAllocSize大小的文件块,这会减少磁盘空间分配和元数据更新的开销,更重要的是减少了寻址的次数。preAllocSize默认为64M。事务日志文件会随每一次快照后,新建另一个日志文件,如每次快照之间产生的事务不是很多,那64M大小确实偏大,比如每1000个事务就进行一次快照,每个事务大概100字节,那preAllocSize设置为100KB要合理得多。而默认的preAllocSize对于默认的snapCount,及事务日志平均512字节的情况是合理的。
snapCountsnapCount即快照间的事务数量(zookeeper.snapCount),默认值为100000。因为快照是比较影响性能的,但只要集群中的Server不是同时进行快照,就不会出现性能问题,出于这个原因,实际快照的事务日志数将是一个接近snapCount的随机数。如果上一次快照还没有结束,本次快照将等待上一次快照结束再开始。
auto...阅读全文

几款实用的Web测试工具

作者:JerryXia | 发表于 , 阅读 (0)
参数说明-checksum 第一次抓取每个URL后,计算校验和,以后每次请求都重新计算并比较。不加该配置,则只有byte count被检查。-throttle 模拟调制解调器,数据传输率控制为33.6Kbps-proxy host:port 通过一个代理来运行http_load-timeout 等待空闲连接的超时时间,默认60s-sip sip_file 指定IP源地址列表,每行一个IP(必须是真实可达的IP地址)-fetches/-f 访问次数-rate/-r 每秒的访问频率-seconds/-s 访问时间-parallel/-p 并发访问的线程数url_file url列表文件, 每行一个url例子# 同时使用5个进程,随机访问urls中的地址1000次http_load -p 5 -f 1000 urls1000 fetches, 5 max parallel, 2.13949e+08 bytes, in 231.488 seconds213949 mean bytes/connection # 每连接平均传输213949b4.31988 fetches/sec, 924234 ...阅读全文

Zookeeper深入理解(三)(Zookeeper管理之内部组件)

作者:JerryXia | 发表于 , 阅读 (0)
Zookeeper服务器会在本地处理读请求(如exists, getData, getChildren等)。由于是本地处理读请求,所以Zookeeper可以很快的处理读请求,因此我们可以通过加更多的Server到Zookeeper集群中,有效提升处理读请求的吞吐能力。
而Client的写请求(如create, delete, and setData等)将被转发给集群中的Leader来处理。Leader处理请求,并更新集群状态的过程叫做事务(Transaction)。举个例子,Client提交了对节点/z的setData的请求,这将改变节点/z和增加其版本号,因此该请求的事务将包括两个重要的地方:节点的新数据和节点的新版本号。
一个事务被当作一个单元,本质上,事务内的所有操作应该被原子地执行。上面的setData例子,若更新了数据,但节点的版本号未更新,将发生错误。因此,当Zookeeper集群执行事务时,会保证事务中的所有操作被原子执行并且不会被其他事务干扰。但是不像关系型数据库,Zookeeper并没有回滚机制,而是确保事务的步骤不会互相干扰。之前很长一段时间,Zookeeper...阅读全文

Mybatis初始化配置

作者:JerryXia | 发表于 , 阅读 (0)
我们可以从SqlSessionTest单元测试的Setup开始private static SqlSessionFactory sqlMapper;@BeforeClasspublic static void setup() throws Exception {createBlogDataSource();final String resource = "org/apache/ibatis/builder/MapperConfig.xml";final Reader reader = Resources.getResourceAsReader(resource);sqlMapper = new SqlSessionFactoryBuilder().build(reader);}MapperConfig.xml文件:<configuration><properties resource="databases/blog/blog-derby.properties"/><!-- 配置信息 --><settings><setting name="cacheEnabled" value="tru...阅读全文