ZooKeeper性能测试

参考来源如下。

https://github.com/brownsys/zookeeper-benchmark

打包

使用开源工具进行 ZooKeeper 的性能测试,参考官方文档,通过 mvn -DZooKeeperVersion=<version> package 进行打包。但是为了使用方便,我把所有的依赖包都打成一个大的 jar 包了,所以在 pom.xml 文件加上下面的插件,然后再执行命令 mvn assembly:assembly 即可。

    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>2.3.1</version>
      <configuration>
        <archive>
          <manifest>
            <!--运行jar包时运行的主类,要求类全名-->
            <mainClass>edu.brown.cs.zkbenchmark.ZooKeeperBenchmark</mainClass>
            <!-- 是否指定项目classpath下的依赖 -->
            <addClasspath>true</addClasspath>
            <!-- 指定依赖的时候声明前缀 -->
            <classpathPrefix>./lib/</classpathPrefix>
            <!--依赖是否使用带有时间戳的唯一版本号,如:xxx-1.3.0-20121225.012733.jar-->
            <useUniqueVersions>false</useUniqueVersions>
          </manifest>
        </archive>
      </configuration>
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-assembly-plugin</artifactId>
      <version>2.5.5</version>
      <configuration>
        <archive>
          <manifest>
            <mainClass>edu.brown.cs.zkbenchmark.ZooKeeperBenchmark</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
    </plugin>

镜像

打完包之后,制作一个简单的镜像。打了个镜像放 dockerhub 上,可以自取。

https://hub.docker.com/repository/docker/runzhliu/zk-benchmark

FROM openjdk:oraclelinux7

WORKDIR /zk-benchmark
COPY Centos-7.repo /etc/yum.repos.d/CentOS-Base.repo
RUN yum install vim-minimal
COPY ./target/zkbenchmark-0.1-SNAPSHOT-jar-with-dependencies.jar .
COPY benchmark.conf .

执行

java -jar zkbenchmark-0.1-SNAPSHOT-jar-with-dependencies.jar --conf /path/to/benchmark.conf
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Version: Applicable to JMeter 2.8+(适用JMeter版本) 以下为官方说明: Prepare a simple IdGenerator For security reasons, ZK generates ID randomly. However to perform a record & reply test, it is mandatory to fix the IDs of the components. The IdGenerator here is used to create a predictable component id when testing. ———— 官方描述地址 http://blog.zkoss.org/index.php/2013/08/06/zk-jmeter-plugin/ 编译后的class文件,是需要配合jar包一起用的,用来自动关联uuid和data,jar包里面只解决了dtid。因为官方提供源码,需要自己编译后才可以用,我这里是已经编译好的class。(提供给那些没有条件编译的朋友) ———— 使用方法: 1.解压后classes\foo\jmtest目录 直接覆盖在 被测的ZK平台对应目录中(WEB-INF下)。 2.修改zk.xml文件,添加下面内容(WEB-INF下) foo.jmtest.SimpleIdGenerator 3.安装ZK的JMeter插件 把压缩包中的 zk-jmeter-plugin-0.8.0.jar 文件,复制到 JMETER_HOME\lib\ext. ———— 安装完整,重新打开JMeter,可以添加ZK http 代理,录制脚本试试。 下面录制步骤: Prepare a Test Plan 1.Create a Thread Group in Test Group. 2.Add HTTP Cookie Manager in Thread Group 3.Add HTTP Request Defaults in Thread Group. 4.Add Transaction Controller in Thread Group. 5.Edit HTTP Request Defaults, set the Server Name and Port Number. 6.Create a ZK HTTP Proxy Server (Add > Non-Test Elements) in WorkBench, and edit it as follows Set Target Controller to Test Plan > Thread Group > Transaction Controller 7.Start the ZK HTTP Proxy Server
ZooKeeper是一个分布式协调服务,用于管理和协调分布式系统中的各种资源。为了测试ZooKeeper的高可用性,可以按照以下步骤进行: 1. 安装和配置ZooKeeper集群:首先,需要在多台服务器上安装和配置ZooKeeper。确保每个服务器上的ZooKeeper配置文件具有相同的集群配置信息,例如服务器列表和端口号。 2. 启动ZooKeeper集群:在每台服务器上启动ZooKeeper实例,确保它们能够相互通信并形成一个集群。可以通过运行`zkServer.sh start`命令来启动ZooKeeper。 3. 检查集群状态:使用`zkServer.sh status`命令检查每个服务器上的ZooKeeper实例的状态。确保所有实例都处于运行状态,并且它们之间的领导者选举已经完成。 4. 引发故障:模拟故障情况,例如关闭其中一个ZooKeeper实例或者断开网络连接。观察集群的行为,确保剩余的实例能够继续正常工作,并且能够重新选举新的领导者。 5. 恢复故障:恢复之前引发的故障,例如重新启动关闭的ZooKeeper实例或者修复网络连接。观察集群的行为,确保故障的实例能够重新加入集群,并且集群能够恢复正常工作。 6. 性能测试:使用负载测试工具模拟大量的读写请求,观察集群的性能表现。可以通过增加并发连接数或者增加请求频率来测试集群的负载能力和响应时间。 7. 扩展测试:如果需要扩展ZooKeeper集群的容量,可以添加新的服务器并进行相应的配置。观察集群的行为,确保新的服务器能够加入集群,并且数据能够正确地同步和复制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值