zookeeper

收藏

应用评价0

安装8

版本号:

3.4.10

类型:

免费

备注:本应用必须在Rainbond系统上安装使用,点击免费下载安装

好雨是一家致力于企业数字化转型建设的云计算服务商,通过Rainbond, PaaS产品和服务,实现加速数字业务快速交付、赋能企业IT资源,让云落地进入企业,帮助企业获得面向未来的竞争力和创新能力。1

应用介绍 版本更新

发布时间:2019-06-14

最后更新时间:2019-06-14

<h1>rainbond-zookeeper</h1> <h2>什么是zookeeper</h2> <p>Apache ZooKeeper是Apache软件基金会的一个软件项目,他为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。ZooKeeper曾经是Hadoop的一个子项目,但现在是一个独立的顶级项目。</p> <p>ZooKeeper的架构通过冗余服务实现高可用性。因此,如果第一次无应答,客户端就可以询问另一台ZooKeeper主机。ZooKeeper节点将它们的数据存储于一个分层的命名空间,非常类似于一个文件系统或一个前缀树结构。客户端可以在节点读写,从而以这种方式拥有一个共享的配置服务。更新是全序的。</p> <h2>部署说明</h2> <p>安装该应用后,请将<code>zookeeper</code>的实例数改为3,否则<code>zookeeper</code>无法正常启动。</p> <h2>修改实例数说明</h2> <p>因为zookeeper应用具有特殊性,目前还不直接支持zookeeper的伸缩操作,如果要扩大或缩小zookeeper集群的规模,请按以下方式进行: 1. 进入zookeeper应用管理页面,点击关闭按钮将zookeeper停止。 1. 点击设置,修改环境变量ZK_REPLICAS的值为目标实例数。 1. 点击伸缩,修改实例数量的值为目标实例数,要与上一步中的值相同。 1. 最后点击启动,等待应用启动完毕。</p> <h2>配置说明</h2> <table> <thead> <tr> <th>配置项</th> <th>默认值</th> <th>描述</th> </tr> </thead> <tbody> <tr> <td>ZK_CLIENT_PORT</td> <td>2181</td> <td>客户端连接端口</td> </tr> <tr> <td>ZK_SERVER_PORT</td> <td>2888</td> <td>节点间通信端口</td> </tr> <tr> <td>ZK_ELECTION_PORT</td> <td>3888</td> <td>选举端口</td> </tr> <tr> <td>ZK_MIN_SESSION_TIMEOUT</td> <td>4000</td> <td>最小会话超时</td> </tr> <tr> <td>ZK_MAX_SESSION_TIMEOUT</td> <td>40000</td> <td>最大会话超时</td> </tr> <tr> <td>ZK_LOG_LEVEL</td> <td>INFO</td> <td>日志输出级别</td> </tr> </tbody> </table> <p>如需设置更多参数,请参考<a href="https://zookeeper.apache.org/doc/r3.4.12/zookeeperAdmin.html#sc_configuration" rel="nofollow">zookeeper官方文档</a>。</p> <h2>配置方式</h2> <ol> <li>在<a href="https://zookeeper.apache.org/doc/r3.4.12/zookeeperAdmin.html#sc_configuration" rel="nofollow">zookeeper官方文档</a>找到需要的配置项,假设为:<code>my.config.name</code>。</li> <li>将该配置项的名字全部大写且将<code>.</code>转为<code>_</code>,得到名字:<code>MY_CONFIG_NAME</code>。</li> <li>在云帮管理页面中找到应用,将该配置填入到应用的自定义环境变量中,如下图所示。 <img src="http://grstatic.oss-cn-shanghai.aliyuncs.com/images/docs/common/app-add-env.jpg" alt="app-add-env"/></li> <li>重启应用生效。</li> </ol> <h2>基准测试-集群内部连接</h2> <h3>开始测试</h3> <p>进入任意zookeeper节点执行以下命令:</p> <pre><code>cat &gt; test.sh &lt;&lt;&#39;EOF&#39; #!/bin/bash zkCli.sh rmr /test &amp;&gt; /dev/null zkCli.sh create /test 0 &amp;&gt; /dev/null for i in `seq 1 100`; do ok=`zkCli.sh create /test/$i $i 2&gt;&amp;1 | tail -1 | grep -e &#34;Created &#34; | wc -l` if [[ x$ok == x1 ]]; then echo -e &#34;$i\tcreate\tsuccess&#34; else echo -e &#34;$i\tcreate\tfailed&#34; fi ok=`zkCli.sh rmr /test/$i 2&gt;&amp;1 | tail -1 | grep -e &#34;WatchedEvent &#34; | wc -l` if [[ x$ok == x1 ]]; then echo -e &#34;$i\tdelete\tsuccess&#34; else echo -e &#34;$i\tdelete\tfailed&#34; fi done zkCli.sh rmr /test &amp;&gt; /dev/null EOF chmod +x test.sh { time ./test.sh; } &amp;&gt; /var/lib/zookeeper/result.log &amp; </code></pre> <h3>执行结果</h3> <pre><code>tail /var/lib/zookeeper/result.log 98 create success 98 delete success 99 create success 99 delete success 100 create success 100 delete success real 2m21.844s user 1m21.866s sys 0m23.583s </code></pre> <h2>基准测试-集群外部连接</h2> <h3>开始测试</h3> <p>在集群外安装zookeeper,在<code>$ZOOKEEPER_HOME</code>中执行以下命令,假设zookeeper的外部端口为<code>ali-sh-s1.goodrain.net:21056</code>:</p> <pre><code>cat &gt; test.sh &lt;&lt;&#39;EOF&#39; #!/bin/bash bin/zkCli.sh -server ali-sh-s1.goodrain.net:21056 rmr /test &amp;&gt; /dev/null bin/zkCli.sh -server ali-sh-s1.goodrain.net:21056 create /test 0 &amp;&gt; /dev/null for i in `seq 1 100`; do ok=`bin/zkCli.sh -server ali-sh-s1.goodrain.net:21056 create /test/$i $i 2&gt;&amp;1 | tail -1 | grep -e &#34;Created &#34; | wc -l` if [[ x$ok == x1 ]]; then echo -e &#34;$i\tcreate\tsuccess&#34; else echo -e &#34;$i\tcreate\tfailed&#34; fi ok=`bin/zkCli.sh -server ali-sh-s1.goodrain.net:21056 rmr /test/$i 2&gt;&amp;1 | tail -1 | grep -e &#34;WatchedEvent &#34; | wc -l` if [[ x$ok == x1 ]]; then echo -e &#34;$i\tdelete\tsuccess&#34; else echo -e &#34;$i\tdelete\tfailed&#34; fi done bin/zkCli.sh -server ali-sh-s1.goodrain.net:21056 rmr /test &amp;&gt; /dev/null EOF chmod +x test.sh { time ./test.sh; } &amp;&gt; result.log &amp; </code></pre> <h3>执行结果</h3> <pre><code>tail result.log 98 create success 98 delete success 99 create success 99 delete success 100 create success 100 delete success real 2m34.851s user 1m34.507s sys 0m12.563s </code></pre>