DUBBO+ZK
来源:互联网 发布:lable java 编辑:程序博客网 时间:2024/05/22 12:43
<div id="article_details" class="details">
<div class="article_title">
<span class="ico ico_type_Original"></span>
<h1>
<span class="link_title"><a href="/evankaka/article/details/47858707">
<font color="red">[置顶]</font>
Dubbo-Admin管理平台和Zookeeper注册中心的搭建
</a></span>
</h1>
</div>
<div class="article_manage clearfix">
<div class="article_l">
<span class="link_categories">
标签:
<a href="http://www.csdn.net/tag/dubbo-admin" target="_blank" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">dubbo-admin</a><a href="http://www.csdn.net/tag/%e7%ae%a1%e7%90%86%e5%b9%b3%e5%8f%b0" target="_blank" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">管理平台</a><a href="http://www.csdn.net/tag/zookeeper" target="_blank" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">zookeeper</a><a href="http://www.csdn.net/tag/%e6%b3%a8%e5%86%8c%e4%b8%ad%e5%bf%83" target="_blank" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">注册中心</a>
</span>
</div>
<div class="article_r">
<span class="link_postdate">2015-08-27 15:00</span>
<span class="link_view" title="阅读次数">6181人阅读</span>
<span class="link_comments" title="评论次数"> <a href="#comments" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论</a>(4)</span>
<span class="link_collect tracking-ad" data-mod="popu_171"> <a href="javascript:void(0);" onclick="javascript:collectArticle('Dubbo-Admin%e7%ae%a1%e7%90%86%e5%b9%b3%e5%8f%b0%e5%92%8cZookeeper%e6%b3%a8%e5%86%8c%e4%b8%ad%e5%bf%83%e7%9a%84%e6%90%ad%e5%bb%ba','47858707');return false;" title="收藏" target="_blank">收藏</a></span>
<span class="link_report"> <a href="#report" onclick="javascript:report(47858707,2);return false;" title="举报">举报</a></span>
</div>
</div>
<div class="embody" style="display:none" id="embody">
<span class="embody_t">本文章已收录于:</span>
<div class="embody_c" id="lib" value="{"err":0,"msg":"ok","data":[]}"></div>
</div>
<style type="text/css">
.embody{
padding:10px 10px 10px;
margin:0 -20px;
border-bottom:solid 1px #ededed;
}
.embody_b{
margin:0 ;
padding:10px 0;
}
.embody .embody_t,.embody .embody_c{
display: inline-block;
margin-right:10px;
}
.embody_t{
font-size: 12px;
color:#999;
}
.embody_c{
font-size: 12px;
}
.embody_c img,.embody_c em{
display: inline-block;
vertical-align: middle;
}
.embody_c img{
width:30px;
height:30px;
}
.embody_c em{
margin: 0 20px 0 10px;
color:#333;
font-style: normal;
}
</style>
<script type="text/javascript">
$(function () {
try
{
var lib = eval("("+$("#lib").attr("value")+")");
var html = "";
if (lib.err == 0) {
$.each(lib.data, function (i) {
var obj = lib.data[i];
//html += '<img src="' + obj.logo + '"/>' + obj.name + " ";
html += ' <a href="' + obj.url + '" target="_blank">';
html += ' <img src="' + obj.logo + '">';
html += ' <em><b>' + obj.name + '</b></em>';
html += ' </a>';
});
if (html != "") {
setTimeout(function () {
$("#lib").html(html);
$("#embody").show();
}, 100);
}
}
} catch (err)
{ }
});
</script>
<div class="category clearfix">
<div class="category_l">
<img src="http://static.blog.csdn.net/images/category_icon.jpg">
<span>分类:</span>
</div>
<div class="category_r">
<label onclick="GetCategoryArticles('5771755','Evankaka','top','47858707');">
<span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">Dubbo<em>(2)</em></span>
<img class="arrow-down" src="http://static.blog.csdn.net/images/arrow_triangle _down.jpg" style="display:inline;">
<img class="arrow-up" src="http://static.blog.csdn.net/images/arrow_triangle_up.jpg" style="display:none;">
<div class="subItem">
<div class="subItem_t"><a href="http://blog.csdn.net/Evankaka/article/category/5771755" target="_blank">作者同类文章</a><i class="J_close">X</i></div>
<ul class="subItem_l" id="top_5771755">
</ul>
</div>
</label>
</div>
</div>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/category.js"></script>
<div class="bog_copyright">
<p class="copyright_p">版权声明:本文为博主林炳文Evankaka原创文章,转载请注明出处http://blog.csdn.net/evankaka</p>
</div>
<div style="clear:both"></div><div style="border:solid 1px #ccc; background:#eee; float:left; min-width:200px;padding:4px 10px;"><p style="text-align:right;margin:0;"><span style="float:left;">目录<a href="#" title="系统根据文章中H1到H6标签自动生成文章目录">(?)</a></span><a href="#" onclick="javascript:return openct(this);" title="展开">[+]</a></p><ol style="display:none;margin-left:14px;padding-left:14px;line-height:160%;"><li><a href="#t0">一zookeeper安装与启动</a></li><li><a href="#t1">二Dubbo-admin管理平台的安装</a></li><ol><li><a href="#t2">1dubbo-admin 本地编译打包</a></li><li><a href="#t3">2dubbo-admin安装</a></li></ol></ol></div><div style="clear:both"></div><div id="article_content" class="article_content">
<p> <span style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; line-height: 35px;"> </span><a target="_blank" href="http://my.csdn.net/?ref=toolbar" style="text-decoration: none; color: rgb(12, 137, 207); font-family: 'microsoft yahei'; font-size: 14px; line-height: 35px;">林炳文Evankaka</a><span style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; line-height: 35px;">原创作品。转载请注明出处</span><a target="_blank" href="http://blog.csdn.net/evankaka" style="text-decoration: none; color: rgb(12, 137, 207); font-family: 'microsoft yahei'; font-size: 14px; line-height: 35px;">http://blog.csdn</a><a href="http://lib.csdn.net/base/dotnet" class="replace_word" title=".NET知识库" target="_blank" style="color:#df3434; font-weight:bold;">.NET</a>/evankaka</p><p> ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是<a href="http://lib.csdn.net/base/hadoop" class="replace_word" title="Hadoop知识库" target="_blank" style="color:#df3434; font-weight:bold;">Hadoop</a>和<a href="http://lib.csdn.net/base/hbase" class="replace_word" title="Hbase知识库" target="_blank" style="color:#df3434; font-weight:bold;">Hbase</a>的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。<br></p><p> Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来<a href="http://lib.csdn.net/base/architecture" class="replace_word" title="大型网站架构知识库" target="_blank" style="color:#df3434; font-weight:bold;">架构</a>,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容。</p><p><span style="color:#ff0000;"><strong>本机环境: JDK:1.8</strong></span></p><p><span style="color:#ff0000;"><strong> Maven:apache-maven-3.2.1</strong></span></p><p><span style="color:#ff0000;"><strong> zookeeper:zookeeper-3.4.6</strong></span></p><p><span style="color:#ff0000;"><strong> Tomcat:apache-tomcat-7.0.62</strong></span></p><p><span style="color:#ff0000;"><strong> Dubbo-admin:dubbo-admin-2.5.4-SNAPSHOT.war 这是我自己本地打包生成的(下载地址:http://download.csdn<a href="http://lib.csdn.net/base/dotnet" class="replace_word" title=".NET知识库" target="_blank" style="color:#df3434; font-weight:bold;">.Net</a>/detail/evankaka/9054273)</strong></span></p><h1><a name="t0"></a>一、zookeeper安装与启动</h1><p> 首先需要安装JdK,从<a href="http://lib.csdn.net/base/oracle" class="replace_word" title="Oracle知识库" target="_blank" style="color:#df3434; font-weight:bold;">Oracle</a>的<a href="http://lib.csdn.net/base/javase" class="replace_word" title="Java SE知识库" target="_blank" style="color:#df3434; font-weight:bold;">Java</a>网站下载,安装很简单,就不再详述。其中zookeeper的下载地址是http://www.apache.org/dyn/closer.cgi/zookeeper/,下载后直接解压,不用安装。</p><p> 在你执行启动脚本之前,还有几个基本的配置项需要配置一下,Zookeeper 的配置文件在 conf 目录下,这个目录下有 zoo_sample.cfg 和 log4j.properties,你需要做的就是将 zoo_sample.cfg 改名为 zoo.cfg,因为 Zookeeper 在启动时会找这个文件作为默认配置文件。下面详细介绍一下,这个配置文件中各个配置项的意义。</p><p></p><div class="dp-highlighter bg_html"><div class="bar"><div class="tools"><b>[html]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 435px; top: 1366px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_1" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_1" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=18&height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-xml"><li class="alt"><span><span># The number of milliseconds of each tick </span></span></li><li class=""><span><span class="attribute">tickTime</span><span>=</span><span class="attribute-value">2000</span><span> </span></span></li><li class="alt"><span># The number of ticks that the initial </span></li><li class=""><span># synchronization phase can take </span></li><li class="alt"><span><span class="attribute">initLimit</span><span>=</span><span class="attribute-value">10</span><span> </span></span></li><li class=""><span># The number of ticks that can pass between </span></li><li class="alt"><span># sending a request and getting an acknowledgement </span></li><li class=""><span><span class="attribute">syncLimit</span><span>=</span><span class="attribute-value">5</span><span> </span></span></li><li class="alt"><span># the directory where the snapshot is stored. </span></li><li class=""><span># do not use /tmp for storage, /tmp here is just </span></li><li class="alt"><span># example sakes. </span></li><li class=""><span><span class="attribute">dataDir</span><span>=</span><span class="attribute-value">D</span><span>:\\Java\\Tool\\zookeeper-3.4.6\\tmp </span></span></li><li class="alt"><span># the port at which the clients will connect </span></li><li class=""><span><span class="attribute">clientPort</span><span>=</span><span class="attribute-value">2181</span><span> </span></span></li><li class="alt"><span># the maximum number of client connections. </span></li><li class=""><span># increase this if you need to handle more clients </span></li><li class="alt"><span>#<span class="attribute">maxClientCnxns</span><span>=</span><span class="attribute-value">60</span><span> </span></span></li><li class=""><span># </span></li><li class="alt"><span># Be sure to read the maintenance section of the </span></li><li class=""><span># administrator guide before turning on autopurge. </span></li><li class="alt"><span># </span></li><li class=""><span># http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance </span></li><li class="alt"><span># </span></li><li class=""><span># The number of snapshots to retain in dataDir </span></li><li class="alt"><span>#<span class="attribute">autopurge.snapRetainCount</span><span>=</span><span class="attribute-value">3</span><span> </span></span></li><li class=""><span># Purge task interval in hours </span></li><li class="alt"><span># Set to "0" to disable auto purge feature </span></li><li class=""><span>#<span class="attribute">autopurge.purgeInterval</span><span>=</span><span class="attribute-value">1</span><span> </span></span></li></ol><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="html" style="display: none;"># The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=D:\\Java\\Tool\\zookeeper-3.4.6\\tmp
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1</pre><p></p>把<div class="dp-highlighter bg_plain"><div class="bar"><div class="tools"><b>[plain]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 437px; top: 1974px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_2" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_2" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=2&width=18&height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1"><li class="alt"><span><span>dataDir=/tmp/zookeeper </span></span></li></ol><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="plain" style="display: none;">dataDir=/tmp/zookeeper</pre>改成如下:<p></p><div class="dp-highlighter bg_html"><div class="bar"><div class="tools"><b>[html]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 435px; top: 2096px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_3" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_3" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=3&width=18&height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-xml"><li class="alt"><span><span class="tag"><</span><span class="tag-name">pre</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"code"</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"html"</span><span class="tag">></span><span class="attribute">dataDir</span><span>=</span><span class="attribute-value">D</span><span>:\\Java\\Tool\\zookeeper-3.4.6\\tmp</span><span class="tag"></</span><span class="tag-name">pre</span><span class="tag">></span><span> </span></span></li></ol><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="html" style="display: none;"><div class="dp-highlighter bg_html"><div class="bar"><div class="tools"><b>[html]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 0px; top: 0px; width: 0px; height: 0px; z-index: 99;"><embed id="ZeroClipboardMovie_4" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="0" height="0" name="ZeroClipboardMovie_4" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=4&width=0&height=0" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-xml"><li class="alt"><span><span class="attribute">dataDir</span><span>=</span><span class="attribute-value">D</span><span>:\\Java\\Tool\\zookeeper-3.4.6\\tmp </span></span></li></ol><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="html" style="display: none;">dataDir=D:\\Java\\Tool\\zookeeper-3.4.6\\tmp</pre></pre>这里可以改成自己喜欢的<br>其中,<div class="dp-highlighter bg_html"><div class="bar"><div class="tools"><b>[html]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 435px; top: 2253px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_5" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_5" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=5&width=18&height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-xml"><li class="alt"><span><span> tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。 </span></span></li><li class=""><span> dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。 </span></li><li class="alt"><span> dataLogDir:顾名思义就是 Zookeeper 保存日志文件的目录 </span></li><li class=""><span> clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。 </span></li><li class="alt"><span> </span></li><li class=""><span>当这些配置项配置好后,你现在就可以启动 Zookeeper 了,启动后要检查 Zookeeper 是否已经在服务,可以通过 netstat – ano 命令查看是否有你配置的 clientPort 端口号在监听服务 </span></li></ol><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="html" style="display: none;"> tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
dataLogDir:顾名思义就是 Zookeeper 保存日志文件的目录
clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
当这些配置项配置好后,你现在就可以启动 Zookeeper 了,启动后要检查 Zookeeper 是否已经在服务,可以通过 netstat – ano 命令查看是否有你配置的 clientPort 端口号在监听服务</pre><p></p><p>单机安装非常简单,只要获取到 Zookeeper 的压缩包并解压到某个目录如:D:\Java\Tool\zookeeper-3.4.6下,Zookeeper 的启动脚本在 bin 目录下,Windows 下的启动脚本是bin文件下的如,D:\Java\Tool\zookeeper-3.4.6\bin\ zkServer.cmd。</p><p>启动如下:</p><p align="center"><img src="http://img.blog.csdn.net/20150827140429526" alt=""><br></p><p align="center">输入JPS,出现如下,也说明启动成功</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150823110117879" alt=""><br></p><p><br></p><p>上面的黑色框框不关,就表示注册中心一直开关的,一定要记得注册中心要在程序运行之前就打开,而且是一直开着的</p><h1><a name="t1"></a>二、Dubbo-admin管理平台的安装</h1><h2><a name="t2"></a>1.1、dubbo-admin 本地编译打包</h2><p> 因为zookeeper只是一个黑框,我们无法看到是否存在了什么提供者或消费者,这时就要借助Dubbo-Admin管理平台来实时的查看,也可以通过这个平台来管理提者和消费者。<br><span style="color:#ff0000;"><strong> dubbo-admin.war可在网上百度去下载,但是我下载了好几个war包,发布上去服务启动都报错,这个时候大概是我们系统的JDK和编译dubbo-admin.war的JDK版本不同导致的了。所以我之后直接下载了dubbo-master的源代码,然后自己编译了一个war包,这样就不会存在启动报错的问题了。(这里强烈建议自己编译一个,网上找的基本都不行,试了很多个,最后还是自己来搞)其中自己电脑编译的过程如下,一定在安装maven和jdk!</strong></span></p><p>dubbo的所有源码可在https://github.com/alibaba/dubbo上下载。下好之后解压</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827140751652" alt=""><br></p><p>解压后的文件内容,这里你其它的都不用去管,只管dubbo-admin.</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827141527417" alt=""><br></p><p><span style="color:#ff0000;"><strong>因为这里只需要编译Dubbo-Admin,所以打开Cmd,然后进入解压路径 E:\下载\dubbo-master\dubbo-master\dubbo-admin,有人把整个工程都编译了,其实没有必要,只需要编译dubbo-admin即可,有什么依赖的,maven会自动帮你解决。整个过程如下:</strong></span></p><p><span style="color:#ff0000;"><strong>首先,通过cmd进入目录,输入命令</strong></span></p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827141024607" alt=""><br></p><p>然后输入命令</p><p></p><div class="dp-highlighter bg_html"><div class="bar"><div class="tools"><b>[html]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 435px; top: 5077px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_6" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_6" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=6&width=18&height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-xml"><li class="alt"><span><span>mvn package </span><span class="attribute">-Dmaven.skip.test</span><span>=</span><span class="attribute-value">true</span><span> </span></span></li></ol><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="html" style="display: none;">mvn package -Dmaven.skip.test=true</pre>这里要自己把maven的环境变量配置好,这里的-Dmaven.skip.test表示不打包测试包。然后结果如下,表示打包成功<p></p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827140932257" alt=""><br></p><p>再打开项目的文件所在位置:E:\下载\dubbo-master\dubbo-master\dubbo-admin\target</p><p>target表示构建的本地路径,打开,里面有个文件dubbo-admin-2.5.4-SNAPSHOT.war表示打包成功,这个文件得放在Tomcat下才能运行。<br></p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827141345840" alt=""><br></p><p>这里我已上传这个war包,<span style="color: rgb(255, 0, 0); "><strong>下载地址:</strong></span><span style="color: rgb(255, 0, 0); "><strong>http://download.csdn.net/detail/evankaka/9054273</strong></span></p><h2><a name="t3"></a>1.2、dubbo-admin安装</h2><p></p><p> dubbo-admin已打包成功,接下来就容易很多了</p><p>1. 安装<br><span style="color:#ff0000;"><strong>将 dubbo-admin-2.5.4-SNAPSHOT.war 拷入 tomcat webapps中</strong></span><br>2. 配置<br><span style="color:#ff0000;"><strong>修改tomcat的端口8088,修改方法如下,打到conf下的文件 server.xml,因为zookeeper会用到8080的端口,所以为了不冲突,把Tomcat的端口改一下。记得一定要改!!!</strong></span></p><p></p><div style="text-align: center;"><img src="http://img.blog.csdn.net/20150827141749247" alt=""><br></div>然后修改<p></p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827141715250" alt=""><br></p><p>3、启动一下Tomcat,让它把war解压了</p><p>过程如下</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150823111252769" alt=""><br></p><p>然后启动</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150823111305130" alt=""><br></p><p>发现webapp下多了一个文件夹</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827141952338" alt=""><br></p><p style="text-align: left;">再把 Tomcat给关了,直接stop,上面的按钮</p><p>4、修改dubbo.properties</p><p>D:\Java\Tool\apache-tomcat-7.0.62\webapps\dubbo-admin-2.5.4-SNAPSHOT\WEB-INF</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827142213413" alt=""><br></p><p>是否是如下内容:</p><p></p><div class="dp-highlighter bg_html"><div class="bar"><div class="tools"><b>[html]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 435px; top: 9015px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_7" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_7" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=7&width=18&height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-xml"><li class="alt"><span><span class="attribute">dubbo.registry.address</span><span>=</span><span class="attribute-value">zookeeper</span><span>://127.0.0.1:2181 </span></span></li><li class=""><span><span class="attribute">dubbo.admin.root.password</span><span>=</span><span class="attribute-value">root</span><span> </span></span></li><li class="alt"><span><span class="attribute">dubbo.admin.guest.password</span><span>=</span><span class="attribute-value">guest</span><span> </span></span></li></ol><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="html" style="display: none;">dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest</pre><span style="color:#ff0000;"><strong>如果是,就不用改,这里的127.0.0.1对应的是自己的电脑IP,因为这里zookeeper也在自己电脑上,所以要这么写才行。一般情况下都是不需要改的,因为初始都是本地的IP地址。但还是看看比较安全</strong></span><p></p><p><br>5. 访问:</p><p><span style="color:#ff0000;"><strong>这下全部都配置好了,首先,一定要先启动zookeeper启动后再去启动tomcat!<span style="color: rgb(255, 0, 0);">一定要先启动zookeeper启动后再去启动tomcat!</span><span style="color: rgb(255, 0, 0);">一定要先启动zookeeper启动后再去启动tomcat!重要的事情三遍!</span></strong></span></p><p>启动zookeeper</p><p>启动tomcat</p><p><span style="color:#ff0000;"><strong>访问http://localhost:8088/dubbo-admin-2.5.4-SNAPSHOT/ 一定要注意名一定要和你webapp下的工程名一样!!</strong></span></p><p>弹出如下:</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827142520531" alt=""><br></p><p></p><div style="text-align: center;"><img src="http://img.blog.csdn.net/20150827142432300" alt=""><br></div><p><span style="color:#ff0000;"><strong>输入用户名和密码都是root</strong></span></p><p>就会看到:</p><p><img src="http://img.blog.csdn.net/20150827142639327" alt=""><br></p><p><span style="color:#ff0000;"><strong>出现以下界面说明安装配置成功,登录密码为root/root</strong></span></p><p><span style="color:#ff0000;"><strong><br></strong></span></p><p>这下子就大功告成了,可以开始来使用了~~~~~~~~</p><p><br><br></p>
</div>
<!-- Baidu Button BEGIN -->
<div class="bdsharebuttonbox tracking-ad bdshare-button-style0-16" style="float: right;" data-mod="popu_172" data-bd-bind="1489743990610">
<a href="#" class="bds_more" data-cmd="more" style="background-position:0 0 !important; background-image: url(http://bdimg.share.baidu.com/static/api/img/share/icons_0_16.png?v=d754dcc0.png) !important" target="_blank"></a>
<a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间" style="background-position:0 -52px !important" target="_blank"></a>
<a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博" style="background-position:0 -104px !important" target="_blank"></a>
<a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博" style="background-position:0 -260px !important" target="_blank"></a>
<a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网" style="background-position:0 -208px !important" target="_blank"></a>
<a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信" style="background-position:0 -1612px !important" target="_blank"></a>
</div>
<script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];</script>
<!-- Baidu Button END -->
<link rel="stylesheet" href="http://static.blog.csdn.net/css/blog_detail.css">
<!--172.16.140.15-->
<!-- Baidu Button BEGIN -->
<script type="text/javascript" id="bdshare_js" data="type=tools&uid=1536434" src="http://bdimg.share.baidu.com/static/js/bds_s_v2.js?cdnversion=413818"></script>
<script type="text/javascript">
document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)
</script>
<!-- Baidu Button END -->
<div id="digg" articleid="47858707">
<dl id="btnDigg" class="digg digg_enable" onclick="btndigga();">
<dt>顶</dt>
<dd>3</dd>
</dl>
<dl id="btnBury" class="digg digg_enable" onclick="btnburya();">
<dt>踩</dt>
<dd>0</dd>
</dl>
</div>
<div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);" target="_blank"> </a> </div>
<div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);" target="_blank"> </a></div>
<script type="text/javascript">
function btndigga() {
$(".tracking-ad[data-mod='popu_222'] a").click();
}
function btnburya() {
$(".tracking-ad[data-mod='popu_223'] a").click();
}
</script>
<ul class="article_next_prev">
<li class="prev_article"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian']);location.href='/evankaka/article/details/48009645';">上一篇</span><a href="/evankaka/article/details/48009645" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian'])">Dubbo入门基础与实例讲解</a></li>
<li class="next_article"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian']);location.href='/evankaka/article/details/48088241';">下一篇</span><a href="/evankaka/article/details/48088241" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian'])">Java二叉排序树</a></li>
</ul>
<div style="clear:both; height:10px;"></div>
<div class="similar_article" style="">
<h4>我的同类文章</h4>
<div class="similar_c" style="margin:20px 0px 0px 0px">
<div class="similar_c_t">
<label class="similar_cur">
<span style="cursor:pointer" onclick="GetCategoryArticles('5771755','Evankaka','foot','47858707');">Dubbo<em>(2)</em></span>
</label>
</div>
<div class="similar_wrap tracking-ad" data-mod="popu_141" style="max-height:195px;">
<a href="http://blog.csdn.net" style="display:none" target="_blank">http://blog.csdn.net</a>
<ul class="similar_list fl"><li><em>•</em><a href="http://blog.csdn.net/Evankaka/article/details/61617483" id="foot_aritcle_61617483undefined809651632114206" target="_blank" title="Dubbo应用启动与停止脚本,超详细解析">Dubbo应用启动与停止脚本,超详细解析</a><span>2017-03-12</span><label><i>阅读</i><b>657</b></label></li> </ul>
<ul class="similar_list fr"><li><em>•</em><a href="http://blog.csdn.net/Evankaka/article/details/48009645" id="foot_aritcle_48009645undefined6352678697525915" target="_blank" title="Dubbo入门基础与实例讲解">Dubbo入门基础与实例讲解</a><span>2015-08-27</span><label><i>阅读</i><b>3357</b></label></li> </ul>
</div>
</div>
</div>
<script type="text/javascript">
$(function () {
GetCategoryArticles('5771755', 'Evankaka','foot','47858707');
});
</script>
</div>
<div class="article_title">
<span class="ico ico_type_Original"></span>
<h1>
<span class="link_title"><a href="/evankaka/article/details/47858707">
<font color="red">[置顶]</font>
Dubbo-Admin管理平台和Zookeeper注册中心的搭建
</a></span>
</h1>
</div>
<div class="article_manage clearfix">
<div class="article_l">
<span class="link_categories">
标签:
<a href="http://www.csdn.net/tag/dubbo-admin" target="_blank" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">dubbo-admin</a><a href="http://www.csdn.net/tag/%e7%ae%a1%e7%90%86%e5%b9%b3%e5%8f%b0" target="_blank" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">管理平台</a><a href="http://www.csdn.net/tag/zookeeper" target="_blank" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">zookeeper</a><a href="http://www.csdn.net/tag/%e6%b3%a8%e5%86%8c%e4%b8%ad%e5%bf%83" target="_blank" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_tag']);">注册中心</a>
</span>
</div>
<div class="article_r">
<span class="link_postdate">2015-08-27 15:00</span>
<span class="link_view" title="阅读次数">6181人阅读</span>
<span class="link_comments" title="评论次数"> <a href="#comments" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_pinglun'])">评论</a>(4)</span>
<span class="link_collect tracking-ad" data-mod="popu_171"> <a href="javascript:void(0);" onclick="javascript:collectArticle('Dubbo-Admin%e7%ae%a1%e7%90%86%e5%b9%b3%e5%8f%b0%e5%92%8cZookeeper%e6%b3%a8%e5%86%8c%e4%b8%ad%e5%bf%83%e7%9a%84%e6%90%ad%e5%bb%ba','47858707');return false;" title="收藏" target="_blank">收藏</a></span>
<span class="link_report"> <a href="#report" onclick="javascript:report(47858707,2);return false;" title="举报">举报</a></span>
</div>
</div>
<div class="embody" style="display:none" id="embody">
<span class="embody_t">本文章已收录于:</span>
<div class="embody_c" id="lib" value="{"err":0,"msg":"ok","data":[]}"></div>
</div>
<style type="text/css">
.embody{
padding:10px 10px 10px;
margin:0 -20px;
border-bottom:solid 1px #ededed;
}
.embody_b{
margin:0 ;
padding:10px 0;
}
.embody .embody_t,.embody .embody_c{
display: inline-block;
margin-right:10px;
}
.embody_t{
font-size: 12px;
color:#999;
}
.embody_c{
font-size: 12px;
}
.embody_c img,.embody_c em{
display: inline-block;
vertical-align: middle;
}
.embody_c img{
width:30px;
height:30px;
}
.embody_c em{
margin: 0 20px 0 10px;
color:#333;
font-style: normal;
}
</style>
<script type="text/javascript">
$(function () {
try
{
var lib = eval("("+$("#lib").attr("value")+")");
var html = "";
if (lib.err == 0) {
$.each(lib.data, function (i) {
var obj = lib.data[i];
//html += '<img src="' + obj.logo + '"/>' + obj.name + " ";
html += ' <a href="' + obj.url + '" target="_blank">';
html += ' <img src="' + obj.logo + '">';
html += ' <em><b>' + obj.name + '</b></em>';
html += ' </a>';
});
if (html != "") {
setTimeout(function () {
$("#lib").html(html);
$("#embody").show();
}, 100);
}
}
} catch (err)
{ }
});
</script>
<div class="category clearfix">
<div class="category_l">
<img src="http://static.blog.csdn.net/images/category_icon.jpg">
<span>分类:</span>
</div>
<div class="category_r">
<label onclick="GetCategoryArticles('5771755','Evankaka','top','47858707');">
<span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">Dubbo<em>(2)</em></span>
<img class="arrow-down" src="http://static.blog.csdn.net/images/arrow_triangle _down.jpg" style="display:inline;">
<img class="arrow-up" src="http://static.blog.csdn.net/images/arrow_triangle_up.jpg" style="display:none;">
<div class="subItem">
<div class="subItem_t"><a href="http://blog.csdn.net/Evankaka/article/category/5771755" target="_blank">作者同类文章</a><i class="J_close">X</i></div>
<ul class="subItem_l" id="top_5771755">
</ul>
</div>
</label>
</div>
</div>
<script type="text/javascript" src="http://static.blog.csdn.net/scripts/category.js"></script>
<div class="bog_copyright">
<p class="copyright_p">版权声明:本文为博主林炳文Evankaka原创文章,转载请注明出处http://blog.csdn.net/evankaka</p>
</div>
<div style="clear:both"></div><div style="border:solid 1px #ccc; background:#eee; float:left; min-width:200px;padding:4px 10px;"><p style="text-align:right;margin:0;"><span style="float:left;">目录<a href="#" title="系统根据文章中H1到H6标签自动生成文章目录">(?)</a></span><a href="#" onclick="javascript:return openct(this);" title="展开">[+]</a></p><ol style="display:none;margin-left:14px;padding-left:14px;line-height:160%;"><li><a href="#t0">一zookeeper安装与启动</a></li><li><a href="#t1">二Dubbo-admin管理平台的安装</a></li><ol><li><a href="#t2">1dubbo-admin 本地编译打包</a></li><li><a href="#t3">2dubbo-admin安装</a></li></ol></ol></div><div style="clear:both"></div><div id="article_content" class="article_content">
<p> <span style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; line-height: 35px;"> </span><a target="_blank" href="http://my.csdn.net/?ref=toolbar" style="text-decoration: none; color: rgb(12, 137, 207); font-family: 'microsoft yahei'; font-size: 14px; line-height: 35px;">林炳文Evankaka</a><span style="color: rgb(85, 85, 85); font-family: 'microsoft yahei'; font-size: 14px; line-height: 35px;">原创作品。转载请注明出处</span><a target="_blank" href="http://blog.csdn.net/evankaka" style="text-decoration: none; color: rgb(12, 137, 207); font-family: 'microsoft yahei'; font-size: 14px; line-height: 35px;">http://blog.csdn</a><a href="http://lib.csdn.net/base/dotnet" class="replace_word" title=".NET知识库" target="_blank" style="color:#df3434; font-weight:bold;">.NET</a>/evankaka</p><p> ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是<a href="http://lib.csdn.net/base/hadoop" class="replace_word" title="Hadoop知识库" target="_blank" style="color:#df3434; font-weight:bold;">Hadoop</a>和<a href="http://lib.csdn.net/base/hbase" class="replace_word" title="Hbase知识库" target="_blank" style="color:#df3434; font-weight:bold;">Hbase</a>的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。<br></p><p> Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来<a href="http://lib.csdn.net/base/architecture" class="replace_word" title="大型网站架构知识库" target="_blank" style="color:#df3434; font-weight:bold;">架构</a>,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容。</p><p><span style="color:#ff0000;"><strong>本机环境: JDK:1.8</strong></span></p><p><span style="color:#ff0000;"><strong> Maven:apache-maven-3.2.1</strong></span></p><p><span style="color:#ff0000;"><strong> zookeeper:zookeeper-3.4.6</strong></span></p><p><span style="color:#ff0000;"><strong> Tomcat:apache-tomcat-7.0.62</strong></span></p><p><span style="color:#ff0000;"><strong> Dubbo-admin:dubbo-admin-2.5.4-SNAPSHOT.war 这是我自己本地打包生成的(下载地址:http://download.csdn<a href="http://lib.csdn.net/base/dotnet" class="replace_word" title=".NET知识库" target="_blank" style="color:#df3434; font-weight:bold;">.Net</a>/detail/evankaka/9054273)</strong></span></p><h1><a name="t0"></a>一、zookeeper安装与启动</h1><p> 首先需要安装JdK,从<a href="http://lib.csdn.net/base/oracle" class="replace_word" title="Oracle知识库" target="_blank" style="color:#df3434; font-weight:bold;">Oracle</a>的<a href="http://lib.csdn.net/base/javase" class="replace_word" title="Java SE知识库" target="_blank" style="color:#df3434; font-weight:bold;">Java</a>网站下载,安装很简单,就不再详述。其中zookeeper的下载地址是http://www.apache.org/dyn/closer.cgi/zookeeper/,下载后直接解压,不用安装。</p><p> 在你执行启动脚本之前,还有几个基本的配置项需要配置一下,Zookeeper 的配置文件在 conf 目录下,这个目录下有 zoo_sample.cfg 和 log4j.properties,你需要做的就是将 zoo_sample.cfg 改名为 zoo.cfg,因为 Zookeeper 在启动时会找这个文件作为默认配置文件。下面详细介绍一下,这个配置文件中各个配置项的意义。</p><p></p><div class="dp-highlighter bg_html"><div class="bar"><div class="tools"><b>[html]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 435px; top: 1366px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_1" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_1" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=1&width=18&height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-xml"><li class="alt"><span><span># The number of milliseconds of each tick </span></span></li><li class=""><span><span class="attribute">tickTime</span><span>=</span><span class="attribute-value">2000</span><span> </span></span></li><li class="alt"><span># The number of ticks that the initial </span></li><li class=""><span># synchronization phase can take </span></li><li class="alt"><span><span class="attribute">initLimit</span><span>=</span><span class="attribute-value">10</span><span> </span></span></li><li class=""><span># The number of ticks that can pass between </span></li><li class="alt"><span># sending a request and getting an acknowledgement </span></li><li class=""><span><span class="attribute">syncLimit</span><span>=</span><span class="attribute-value">5</span><span> </span></span></li><li class="alt"><span># the directory where the snapshot is stored. </span></li><li class=""><span># do not use /tmp for storage, /tmp here is just </span></li><li class="alt"><span># example sakes. </span></li><li class=""><span><span class="attribute">dataDir</span><span>=</span><span class="attribute-value">D</span><span>:\\Java\\Tool\\zookeeper-3.4.6\\tmp </span></span></li><li class="alt"><span># the port at which the clients will connect </span></li><li class=""><span><span class="attribute">clientPort</span><span>=</span><span class="attribute-value">2181</span><span> </span></span></li><li class="alt"><span># the maximum number of client connections. </span></li><li class=""><span># increase this if you need to handle more clients </span></li><li class="alt"><span>#<span class="attribute">maxClientCnxns</span><span>=</span><span class="attribute-value">60</span><span> </span></span></li><li class=""><span># </span></li><li class="alt"><span># Be sure to read the maintenance section of the </span></li><li class=""><span># administrator guide before turning on autopurge. </span></li><li class="alt"><span># </span></li><li class=""><span># http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance </span></li><li class="alt"><span># </span></li><li class=""><span># The number of snapshots to retain in dataDir </span></li><li class="alt"><span>#<span class="attribute">autopurge.snapRetainCount</span><span>=</span><span class="attribute-value">3</span><span> </span></span></li><li class=""><span># Purge task interval in hours </span></li><li class="alt"><span># Set to "0" to disable auto purge feature </span></li><li class=""><span>#<span class="attribute">autopurge.purgeInterval</span><span>=</span><span class="attribute-value">1</span><span> </span></span></li></ol><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="html" style="display: none;"># The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just
# example sakes.
dataDir=D:\\Java\\Tool\\zookeeper-3.4.6\\tmp
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1</pre><p></p>把<div class="dp-highlighter bg_plain"><div class="bar"><div class="tools"><b>[plain]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 437px; top: 1974px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_2" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_2" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=2&width=18&height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1"><li class="alt"><span><span>dataDir=/tmp/zookeeper </span></span></li></ol><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="plain" style="display: none;">dataDir=/tmp/zookeeper</pre>改成如下:<p></p><div class="dp-highlighter bg_html"><div class="bar"><div class="tools"><b>[html]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 435px; top: 2096px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_3" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_3" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=3&width=18&height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-xml"><li class="alt"><span><span class="tag"><</span><span class="tag-name">pre</span><span> </span><span class="attribute">name</span><span>=</span><span class="attribute-value">"code"</span><span> </span><span class="attribute">class</span><span>=</span><span class="attribute-value">"html"</span><span class="tag">></span><span class="attribute">dataDir</span><span>=</span><span class="attribute-value">D</span><span>:\\Java\\Tool\\zookeeper-3.4.6\\tmp</span><span class="tag"></</span><span class="tag-name">pre</span><span class="tag">></span><span> </span></span></li></ol><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="html" style="display: none;"><div class="dp-highlighter bg_html"><div class="bar"><div class="tools"><b>[html]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 0px; top: 0px; width: 0px; height: 0px; z-index: 99;"><embed id="ZeroClipboardMovie_4" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="0" height="0" name="ZeroClipboardMovie_4" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=4&width=0&height=0" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-xml"><li class="alt"><span><span class="attribute">dataDir</span><span>=</span><span class="attribute-value">D</span><span>:\\Java\\Tool\\zookeeper-3.4.6\\tmp </span></span></li></ol><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="html" style="display: none;">dataDir=D:\\Java\\Tool\\zookeeper-3.4.6\\tmp</pre></pre>这里可以改成自己喜欢的<br>其中,<div class="dp-highlighter bg_html"><div class="bar"><div class="tools"><b>[html]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 435px; top: 2253px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_5" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_5" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=5&width=18&height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-xml"><li class="alt"><span><span> tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。 </span></span></li><li class=""><span> dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。 </span></li><li class="alt"><span> dataLogDir:顾名思义就是 Zookeeper 保存日志文件的目录 </span></li><li class=""><span> clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。 </span></li><li class="alt"><span> </span></li><li class=""><span>当这些配置项配置好后,你现在就可以启动 Zookeeper 了,启动后要检查 Zookeeper 是否已经在服务,可以通过 netstat – ano 命令查看是否有你配置的 clientPort 端口号在监听服务 </span></li></ol><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="html" style="display: none;"> tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
dataDir:顾名思义就是 Zookeeper 保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
dataLogDir:顾名思义就是 Zookeeper 保存日志文件的目录
clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
当这些配置项配置好后,你现在就可以启动 Zookeeper 了,启动后要检查 Zookeeper 是否已经在服务,可以通过 netstat – ano 命令查看是否有你配置的 clientPort 端口号在监听服务</pre><p></p><p>单机安装非常简单,只要获取到 Zookeeper 的压缩包并解压到某个目录如:D:\Java\Tool\zookeeper-3.4.6下,Zookeeper 的启动脚本在 bin 目录下,Windows 下的启动脚本是bin文件下的如,D:\Java\Tool\zookeeper-3.4.6\bin\ zkServer.cmd。</p><p>启动如下:</p><p align="center"><img src="http://img.blog.csdn.net/20150827140429526" alt=""><br></p><p align="center">输入JPS,出现如下,也说明启动成功</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150823110117879" alt=""><br></p><p><br></p><p>上面的黑色框框不关,就表示注册中心一直开关的,一定要记得注册中心要在程序运行之前就打开,而且是一直开着的</p><h1><a name="t1"></a>二、Dubbo-admin管理平台的安装</h1><h2><a name="t2"></a>1.1、dubbo-admin 本地编译打包</h2><p> 因为zookeeper只是一个黑框,我们无法看到是否存在了什么提供者或消费者,这时就要借助Dubbo-Admin管理平台来实时的查看,也可以通过这个平台来管理提者和消费者。<br><span style="color:#ff0000;"><strong> dubbo-admin.war可在网上百度去下载,但是我下载了好几个war包,发布上去服务启动都报错,这个时候大概是我们系统的JDK和编译dubbo-admin.war的JDK版本不同导致的了。所以我之后直接下载了dubbo-master的源代码,然后自己编译了一个war包,这样就不会存在启动报错的问题了。(这里强烈建议自己编译一个,网上找的基本都不行,试了很多个,最后还是自己来搞)其中自己电脑编译的过程如下,一定在安装maven和jdk!</strong></span></p><p>dubbo的所有源码可在https://github.com/alibaba/dubbo上下载。下好之后解压</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827140751652" alt=""><br></p><p>解压后的文件内容,这里你其它的都不用去管,只管dubbo-admin.</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827141527417" alt=""><br></p><p><span style="color:#ff0000;"><strong>因为这里只需要编译Dubbo-Admin,所以打开Cmd,然后进入解压路径 E:\下载\dubbo-master\dubbo-master\dubbo-admin,有人把整个工程都编译了,其实没有必要,只需要编译dubbo-admin即可,有什么依赖的,maven会自动帮你解决。整个过程如下:</strong></span></p><p><span style="color:#ff0000;"><strong>首先,通过cmd进入目录,输入命令</strong></span></p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827141024607" alt=""><br></p><p>然后输入命令</p><p></p><div class="dp-highlighter bg_html"><div class="bar"><div class="tools"><b>[html]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 435px; top: 5077px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_6" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_6" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=6&width=18&height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-xml"><li class="alt"><span><span>mvn package </span><span class="attribute">-Dmaven.skip.test</span><span>=</span><span class="attribute-value">true</span><span> </span></span></li></ol><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="html" style="display: none;">mvn package -Dmaven.skip.test=true</pre>这里要自己把maven的环境变量配置好,这里的-Dmaven.skip.test表示不打包测试包。然后结果如下,表示打包成功<p></p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827140932257" alt=""><br></p><p>再打开项目的文件所在位置:E:\下载\dubbo-master\dubbo-master\dubbo-admin\target</p><p>target表示构建的本地路径,打开,里面有个文件dubbo-admin-2.5.4-SNAPSHOT.war表示打包成功,这个文件得放在Tomcat下才能运行。<br></p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827141345840" alt=""><br></p><p>这里我已上传这个war包,<span style="color: rgb(255, 0, 0); "><strong>下载地址:</strong></span><span style="color: rgb(255, 0, 0); "><strong>http://download.csdn.net/detail/evankaka/9054273</strong></span></p><h2><a name="t3"></a>1.2、dubbo-admin安装</h2><p></p><p> dubbo-admin已打包成功,接下来就容易很多了</p><p>1. 安装<br><span style="color:#ff0000;"><strong>将 dubbo-admin-2.5.4-SNAPSHOT.war 拷入 tomcat webapps中</strong></span><br>2. 配置<br><span style="color:#ff0000;"><strong>修改tomcat的端口8088,修改方法如下,打到conf下的文件 server.xml,因为zookeeper会用到8080的端口,所以为了不冲突,把Tomcat的端口改一下。记得一定要改!!!</strong></span></p><p></p><div style="text-align: center;"><img src="http://img.blog.csdn.net/20150827141749247" alt=""><br></div>然后修改<p></p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827141715250" alt=""><br></p><p>3、启动一下Tomcat,让它把war解压了</p><p>过程如下</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150823111252769" alt=""><br></p><p>然后启动</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150823111305130" alt=""><br></p><p>发现webapp下多了一个文件夹</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827141952338" alt=""><br></p><p style="text-align: left;">再把 Tomcat给关了,直接stop,上面的按钮</p><p>4、修改dubbo.properties</p><p>D:\Java\Tool\apache-tomcat-7.0.62\webapps\dubbo-admin-2.5.4-SNAPSHOT\WEB-INF</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827142213413" alt=""><br></p><p>是否是如下内容:</p><p></p><div class="dp-highlighter bg_html"><div class="bar"><div class="tools"><b>[html]</b> <a href="#" class="ViewSource" title="view plain" onclick="dp.sh.Toolbar.Command('ViewSource',this);return false;">view plain</a><span data-mod="popu_168"> <a href="#" class="CopyToClipboard" title="copy" onclick="dp.sh.Toolbar.Command('CopyToClipboard',this);return false;">copy</a><div style="position: absolute; left: 435px; top: 9015px; width: 18px; height: 18px; z-index: 99;"><embed id="ZeroClipboardMovie_7" src="http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf" loop="false" menu="false" quality="best" bgcolor="#ffffff" width="18" height="18" name="ZeroClipboardMovie_7" align="middle" allowscriptaccess="always" allowfullscreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" flashvars="id=7&width=18&height=18" wmode="transparent"></div></span><span data-mod="popu_169"> <a href="#" class="PrintSource" title="print" onclick="dp.sh.Toolbar.Command('PrintSource',this);return false;">print</a></span><a href="#" class="About" title="?" onclick="dp.sh.Toolbar.Command('About',this);return false;">?</a></div></div><ol start="1" class="dp-xml"><li class="alt"><span><span class="attribute">dubbo.registry.address</span><span>=</span><span class="attribute-value">zookeeper</span><span>://127.0.0.1:2181 </span></span></li><li class=""><span><span class="attribute">dubbo.admin.root.password</span><span>=</span><span class="attribute-value">root</span><span> </span></span></li><li class="alt"><span><span class="attribute">dubbo.admin.guest.password</span><span>=</span><span class="attribute-value">guest</span><span> </span></span></li></ol><div class="save_code tracking-ad" data-mod="popu_249"><a href="javascript:;" target="_blank"><img src="http://static.blog.csdn.net/images/save_snippets.png"></a></div></div><pre name="code" class="html" style="display: none;">dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest</pre><span style="color:#ff0000;"><strong>如果是,就不用改,这里的127.0.0.1对应的是自己的电脑IP,因为这里zookeeper也在自己电脑上,所以要这么写才行。一般情况下都是不需要改的,因为初始都是本地的IP地址。但还是看看比较安全</strong></span><p></p><p><br>5. 访问:</p><p><span style="color:#ff0000;"><strong>这下全部都配置好了,首先,一定要先启动zookeeper启动后再去启动tomcat!<span style="color: rgb(255, 0, 0);">一定要先启动zookeeper启动后再去启动tomcat!</span><span style="color: rgb(255, 0, 0);">一定要先启动zookeeper启动后再去启动tomcat!重要的事情三遍!</span></strong></span></p><p>启动zookeeper</p><p>启动tomcat</p><p><span style="color:#ff0000;"><strong>访问http://localhost:8088/dubbo-admin-2.5.4-SNAPSHOT/ 一定要注意名一定要和你webapp下的工程名一样!!</strong></span></p><p>弹出如下:</p><p style="text-align: center;"><img src="http://img.blog.csdn.net/20150827142520531" alt=""><br></p><p></p><div style="text-align: center;"><img src="http://img.blog.csdn.net/20150827142432300" alt=""><br></div><p><span style="color:#ff0000;"><strong>输入用户名和密码都是root</strong></span></p><p>就会看到:</p><p><img src="http://img.blog.csdn.net/20150827142639327" alt=""><br></p><p><span style="color:#ff0000;"><strong>出现以下界面说明安装配置成功,登录密码为root/root</strong></span></p><p><span style="color:#ff0000;"><strong><br></strong></span></p><p>这下子就大功告成了,可以开始来使用了~~~~~~~~</p><p><br><br></p>
</div>
<!-- Baidu Button BEGIN -->
<div class="bdsharebuttonbox tracking-ad bdshare-button-style0-16" style="float: right;" data-mod="popu_172" data-bd-bind="1489743990610">
<a href="#" class="bds_more" data-cmd="more" style="background-position:0 0 !important; background-image: url(http://bdimg.share.baidu.com/static/api/img/share/icons_0_16.png?v=d754dcc0.png) !important" target="_blank"></a>
<a href="#" class="bds_qzone" data-cmd="qzone" title="分享到QQ空间" style="background-position:0 -52px !important" target="_blank"></a>
<a href="#" class="bds_tsina" data-cmd="tsina" title="分享到新浪微博" style="background-position:0 -104px !important" target="_blank"></a>
<a href="#" class="bds_tqq" data-cmd="tqq" title="分享到腾讯微博" style="background-position:0 -260px !important" target="_blank"></a>
<a href="#" class="bds_renren" data-cmd="renren" title="分享到人人网" style="background-position:0 -208px !important" target="_blank"></a>
<a href="#" class="bds_weixin" data-cmd="weixin" title="分享到微信" style="background-position:0 -1612px !important" target="_blank"></a>
</div>
<script>window._bd_share_config = { "common": { "bdSnsKey": {}, "bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", "bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~(-new Date() / 36e5)];</script>
<!-- Baidu Button END -->
<link rel="stylesheet" href="http://static.blog.csdn.net/css/blog_detail.css">
<!--172.16.140.15-->
<!-- Baidu Button BEGIN -->
<script type="text/javascript" id="bdshare_js" data="type=tools&uid=1536434" src="http://bdimg.share.baidu.com/static/js/bds_s_v2.js?cdnversion=413818"></script>
<script type="text/javascript">
document.getElementById("bdshell_js").src = "http://bdimg.share.baidu.com/static/js/shell_v2.js?cdnversion=" + Math.ceil(new Date()/3600000)
</script>
<!-- Baidu Button END -->
<div id="digg" articleid="47858707">
<dl id="btnDigg" class="digg digg_enable" onclick="btndigga();">
<dt>顶</dt>
<dd>3</dd>
</dl>
<dl id="btnBury" class="digg digg_enable" onclick="btnburya();">
<dt>踩</dt>
<dd>0</dd>
</dl>
</div>
<div class="tracking-ad" data-mod="popu_222"><a href="javascript:void(0);" target="_blank"> </a> </div>
<div class="tracking-ad" data-mod="popu_223"> <a href="javascript:void(0);" target="_blank"> </a></div>
<script type="text/javascript">
function btndigga() {
$(".tracking-ad[data-mod='popu_222'] a").click();
}
function btnburya() {
$(".tracking-ad[data-mod='popu_223'] a").click();
}
</script>
<ul class="article_next_prev">
<li class="prev_article"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian']);location.href='/evankaka/article/details/48009645';">上一篇</span><a href="/evankaka/article/details/48009645" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian'])">Dubbo入门基础与实例讲解</a></li>
<li class="next_article"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian']);location.href='/evankaka/article/details/48088241';">下一篇</span><a href="/evankaka/article/details/48088241" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian'])">Java二叉排序树</a></li>
</ul>
<div style="clear:both; height:10px;"></div>
<div class="similar_article" style="">
<h4>我的同类文章</h4>
<div class="similar_c" style="margin:20px 0px 0px 0px">
<div class="similar_c_t">
<label class="similar_cur">
<span style="cursor:pointer" onclick="GetCategoryArticles('5771755','Evankaka','foot','47858707');">Dubbo<em>(2)</em></span>
</label>
</div>
<div class="similar_wrap tracking-ad" data-mod="popu_141" style="max-height:195px;">
<a href="http://blog.csdn.net" style="display:none" target="_blank">http://blog.csdn.net</a>
<ul class="similar_list fl"><li><em>•</em><a href="http://blog.csdn.net/Evankaka/article/details/61617483" id="foot_aritcle_61617483undefined809651632114206" target="_blank" title="Dubbo应用启动与停止脚本,超详细解析">Dubbo应用启动与停止脚本,超详细解析</a><span>2017-03-12</span><label><i>阅读</i><b>657</b></label></li> </ul>
<ul class="similar_list fr"><li><em>•</em><a href="http://blog.csdn.net/Evankaka/article/details/48009645" id="foot_aritcle_48009645undefined6352678697525915" target="_blank" title="Dubbo入门基础与实例讲解">Dubbo入门基础与实例讲解</a><span>2015-08-27</span><label><i>阅读</i><b>3357</b></label></li> </ul>
</div>
</div>
</div>
<script type="text/javascript">
$(function () {
GetCategoryArticles('5771755', 'Evankaka','foot','47858707');
});
</script>
</div>
0 0
- DUBBO+ZK
- dubbo+zk实现demo
- ZK+dubbo 例子
- dubbo zk应用
- Dubbo+ZK占坑
- zk
- zk
- zk
- ZK
- zk
- zK
- ZK
- Dubbo&ZK分布式服务化改造(四)——Dubbo多注册中心 & 服务迁移
- Dubbo&ZK分布式服务化改造(四)——Dubbo多注册中心 & 服务迁移
- 短文了解系统dubbo客户端通过zk调用另一个系统的dubbo服务端
- Dubbo&ZK分布式服务化改造(四)——Dubbo多注册中心 & 服务迁移
- Dubbo&ZK分布式服务化改造(三)——Dubbo服务高级特性及服务划分原则
- IDEA修炼之spring boot开发dubbo服务(zk windows 单机版)
- poj 3685 二分法(边界条件)
- 泛型的使用
- 【BZOJ1010】【HNOI2008】玩具装箱toy(dp+斜率优化)
- StandardSerializer
- CCF CSP 编程题目和解答-----试题名称:窗口-------201403-2
- DUBBO+ZK
- switch语句
- JavaScript基础
- angualrjs实现分页查询
- 15. 3Sum
- Android面试题整理-3
- 腾讯多元化战略特征
- javascript更换背景
- 人生的缓冲带