zookeeper jar包下载war包在哪

>> zookeeper树形菜单管理界面
zookeeper树形菜单管理界面
所属分类:
下载地址:
gavinage-zk-ui-master.zip文件大小:519.05 kB
分享有礼! 》
请点击右侧的分享按钮,把本代码分享到各社交媒体。
通过您的分享链接访问Codeforge,每来2个新的IP,您将获得0.1 积分的奖励。
通过您的分享链接,每成功注册一个用户,该用户在Codeforge上所获得的每1个积分,您都将获得0.2 积分的分成奖励。
应用背景关键技术
zookeeper ui 管理页面
实现功能: 页面中添加节点, 删除节点,修改节点数据 节点树形菜单异步加载.
zookeeper 地址与 登录的用户名密码 在conf.properties文件中
connectString=192.168.1.34:2181 我的测试地址
auth=admin:admin 用户名:密码
启动后访问地址:&&进行登录 不想直接使用的可以下载war包部署
使用框架为:springmvc4.1.2 + curator2.8 zookeeper 测试版本为3.4.6
Sponsored links
源码文件列表
温馨提示: 点击源码文件名可预览文件内容哦 ^_^
LICENSE10.01 kB 09:12
983.00 B 09:12
5.34 kB 09:12
2.52 kB 09:12
1.22 kB 09:12
3.72 kB 09:12
1.55 kB 09:12
1.91 kB 09:12
6.24 kB 09:12
2.95 kB 09:12
251.00 B 09:12
2.09 kB 09:12
380.00 B 09:12
999.00 B 09:12
1.18 kB 09:12
conf.properties49.00 B 09:12
log4j.properties269.00 B 09:12
4.44 kB 09:12
Copy2.56 kB 09:12
506.00 B 09:12
1.52 kB 09:12
936.00 B 09:12
3.05 kB 09:12
2.41 kB 09:12
52.00 B 09:12
3.26 kB 09:12
2.16 kB 09:12
2.28 kB 09:12
1.19 kB 09:12
2.28 kB 09:12
2.32 kB 09:12
3.21 kB 09:12
1.28 kB 09:12
2.13 kB 09:12
2.22 kB 09:12
2.80 kB 09:12
1.49 kB 09:12
2.20 kB 09:12
2.44 kB 09:12
1.15 kB 09:12
2.53 kB 09:12
5.37 kB 09:12
1.19 kB 09:12
1.58 kB 09:12
2.85 kB 09:12
1.94 kB 09:12
1.59 kB 09:12
2.49 kB 09:12
1.67 kB 09:12
2.78 kB 09:12
3.95 kB 09:12
1.46 kB 09:12
2.95 kB 09:12
2.37 kB 09:12
18.08 kB 09:12
2.85 kB 09:12
2.55 kB 09:12
1.64 kB 09:12
4.68 kB 09:12
2.85 kB 09:12
3.14 kB 09:12
3.16 kB 09:12
analytics.tsv2.69 kB 09:12
4.39 kB 09:12
2.22 kB 09:12
1.84 kB 09:12
1.24 kB 09:12
13.14 kB 09:12
2.02 kB 09:12
4.96 kB 09:12
2.39 kB 09:12
1.89 kB 09:12
1.70 kB 09:12
7.43 kB 09:12
1.59 kB 09:12
9.57 kB 09:12
11.98 kB 09:12
2.30 kB 09:12
5.13 kB 09:12
5.06 kB 09:12
2.41 kB 09:12
2.22 kB 09:12
vml-radial-gradient.png23.70 kB 09:12
skies.jpg42.38 kB 09:12
snow.png4.57 kB 09:12
sun.png3.84 kB 09:12
2.21 kB 09:12
7.60 kB 09:12
3.22 kB 09:12
8.70 kB 09:12
21.47 kB 09:12
131.10 kB 09:12
56.52 kB 09:12
98.32 kB 09:12
3.71 kB 09:12
13.59 kB 09:12
6.94 kB 09:12
1.90 kB 09:12
6.26 kB 09:12
4.25 kB 09:12
4.24 kB 09:12
4.38 kB 09:12
1.75 kB 09:12
1.70 kB 09:12
8.56 kB 09:12
21.00 kB 09:12
644.00 B 09:12
1.06 kB 09:12
1.06 kB 09:12
158.00 B 09:12
datePicker.gif1.02 kB 09:12
3.64 kB 09:12
img.gif1.54 kB 09:12
bg.jpg307.00 B 09:12
3.84 kB 09:12
img.gif1.64 kB 09:12
644.00 B 09:12
573.00 B 09:12
572.00 B 09:12
33.00 B 09:12
158.00 B 09:12
datePicker.gif1.02 kB 09:12
4.89 kB 09:12
img.gif1.54 kB 09:12
bg.jpg307.00 B 09:12
5.08 kB 09:12
img.gif1.64 kB 09:12
93.54 kB 09:12
1.88 kB 09:12
4.15 kB 09:12
1.40 kB 09:12
1.91 kB 09:12
line_conn.png933.00 B 09:12
loading.gif381.00 B 09:12
metro.gif4.57 kB 09:12
metro.png5.16 kB 09:12
6.42 kB 09:12
1_close.png601.00 B 09:12
1_open.png580.00 B 09:12
2.png570.00 B 09:12
3.png762.00 B 09:12
4.png399.00 B 09:12
5.png710.00 B 09:12
6.png432.00 B 09:12
7.png534.00 B 09:12
8.png529.00 B 09:12
9.png467.00 B 09:12
line_conn.gif45.00 B 09:12
loading.gif381.00 B 09:12
zTreeStandard.gif5.43 kB 09:12
zTreeStandard.png10.91 kB 09:12
6.08 kB 09:12
117.27 kB 09:12
59.28 kB 09:12
54.37 kB 09:12
28.29 kB 09:12
20.98 kB 09:12
10.73 kB 09:12
41.92 kB 09:12
20.25 kB 09:12
40.90 kB 09:12
10.21 kB 09:12
5.17 kB 09:12
(提交有效评论获得积分)
评论内容不能少于15个字,不要超出160个字。
评价成功,多谢!
下载gavinage-zk-ui-master.zip
CodeForge积分(原CF币)全新升级,功能更强大,使用更便捷,不仅可以用来下载海量源代码马上还可兑换精美小礼品了
您的积分不足,优惠套餐快速获取 30 积分
10积分 / ¥100
30积分 / ¥200原价 ¥300 元
100积分 / ¥500原价 ¥1000 元
订单支付完成后,积分将自动加入到您的账号。以下是优惠期的人民币价格,优惠期过后将恢复美元价格。
支付宝支付宝付款
微信钱包微信付款
更多付款方式:、
您本次下载所消耗的积分将转交上传作者。
同一源码,30天内重复下载,只扣除一次积分。
鲁ICP备号-3 runtime:Elapsed:172.378ms - init:0.1;find:2.1;t:0.6;tags:0.3;related:30.6;comment:0.2; 5.8
登录 CodeForge
还没有CodeForge账号?
Switch to the English version?
^_^"呃 ...
Sorry!这位大神很神秘,未开通博客呢,请浏览一下其他的吧【图文】Zookeeper统一配置管理_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Zookeeper统一配置管理
大小:1.48MB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢52071人阅读
Java(67)
zookeeper(1)
尽管zookeeper在编程上有很多的阱陷,API也非常的难用,但zookeeper服务本身可以说是很牢靠的了,所以在网上貌似关于运维的文章比较少。
但省心并不代表不会出麻烦,下面总结下zookeeper运维相关的东东。
重要的参考资料
这里有一个很好的Pdf,介绍了很多zookeeper的东东,作者是zookeeper的committer之一:
q.com/presentations/Misconfiguration-ZooKeeper
另外,这里有一个总结:.pl/blog//zookeeper-tips/
配置zookeeper开机启动
首先修改bin/zkEnv.sh,配置ZOO_LOG_DIR的环境变量,ZOO_LOG_DIR是zookeeper日志输出目录,ZOO_LOG4J_PROP是log4j日志输出的配置:
if [ &x${ZOO_LOG_DIR}& = &x& ]
ZOO_LOG_DIR=&$ZOOBINDIR/../logs&
if [ &x${ZOO_LOG4J_PROP}& = &x& ]
ZOO_LOG4J_PROP=&INFO,ROLLINGFILE&
再在/etc/init.d目录下增加zookeeper1文件,并加个可执行权限:
cd /etc/init.d
touch zookeeper1
chmod +x zookeeper1再修改zookeeper1的内容为:
#chkconfig:
# description:
zookeeper1
case $1 in
start) su zookeeper /home/zookeeper/zookeeper345_1/bin/zkServer.;
stop) su zookeeper /home/zookeeper/zookeeper345_1/bin/zkServer.;
status) su zookeeper /home/zookeeper/zookeeper345_1/bin/zkServer.;
restart) su zookeeper /home/zookeeper/zookeeper345_1/bin/zkServer.;
echo &require start|stop|status|restart&;
esac最后用chkconfig -add zookeeper1 增加服务。这样就搞定了。注意用su zookeeper来切换到zookeeper用户。
如果是想配置Upstart方式的启动,可以参考:http://blog.csdn.net/hengyunabc/article/details/
zookeeper VIRT虚拟内存占用过大的问题:
这个和zookeeper的实现有关,参考这里:http://zookeeper-user.578899./setting-zookeeper-heap-size-td6983511.html
线上的zookeeper的VIRT有30多G,查看了data, dataLog,总共才几百M。不过一直没什么问题。
Unreasonable length的问题:
https://issues.apache.org/jira/browse/ZOOKEEPER-1513
目前线上用的是345版本,而zookeeper最后的release版本就是这个,有大概一年多没更新了。。
这个问题有可能是client尝试向zookeeper上放超过1M的数据时,出现的。
想修改这个默认配置,则可以修改&jute.maxbuffer&这个环境变量。参考:http://zookeeper.apache.org/doc/r3.3.3/zookeeperAdmin.html
但是我们线上是因为端口扫描工具造成的,这个就相当地诡异了。停止端口扫描工具之后,就没有这个问题了。
watches数量多的问题:
dubbo对于每个结点都会watch,导致watch数很多,随便都几千个。
用wchs,wchc,wchp这些命令可以查看watches的信息,包括总数,每条路径上的watch的数量。每个client的。
查找不能成功启动原因:
zookeeper会有很多原因启动不成功,可以通过:
./zkServer.sh start-foreground来查看启动时报的是什么异常,同时也可以查看运行过程中的异常。
另外,通过:
./zkServer.sh print-cmd可以查看zookeeper启动的各个参数,包括java路径等,也可以便于查找问题。
配置自动清理日志:
从3.4.0开始,会自动清理日志了,所以这个通常不用配置。
配置autopurge.snapRetainCount 和 autopurge.purgeInterval 参数。
保留的snapshop的数量,默认是3个,最小也是3.
autopurge.snapRetainCount=3
autopurge.purgeInterval=1参考这里:http://nileader./156&
另外要注意的是,zookeeper重启会自动清除zookeeper.out日志,所以如果出错要注意先备份这个文件。
配置zookeeper.out的位置及log4j滚动日志输出
今天发现线上的bin/zookeeper.out 居然有6G大小。看了下zkServer.sh的代码,这个zookeeper.out实际上是nohup的输出。
而nohup的输出实际上是stdout,stderr的输出,所以还是zookeepe本身的日志配置的问题。
研究了下bin/zkServer.sh和conf/log4j.properties,发现zookeeper其实是有日志相关的输出的配置,只要定义相关的变量就可以了。
主要是ZOO_LOG_DIR和ZOO_LOG4J_PROP这两个环境变量:
zkServer.sh里的:
if [ ! -w &$ZOO_LOG_DIR& ] ; then
mkdir -p &$ZOO_LOG_DIR&
_ZOO_DAEMON_OUT=&$ZOO_LOG_DIR/zookeeper.out&
nohup $JAVA &-Dzookeeper.log.dir=${ZOO_LOG_DIR}& &-Dzookeeper.root.logger=${ZOO_LOG4J_PROP}& \
-cp &$CLASSPATH& $JVMFLAGS $ZOOMAIN &$ZOOCFG& & &$_ZOO_DAEMON_OUT& 2&&1 & /dev/null &
log4j.properties里的:
# Add ROLLINGFILE to rootLogger to get log file output
Log DEBUG level and above messages to a log file
log4j.appender.ROLLINGFILE=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLINGFILE.Threshold=${zookeeper.log.threshold}
log4j.appender.ROLLINGFILE.File=${zookeeper.log.dir}/${zookeeper.log.file}
而zkServer.sh会加载zkEnv.sh。
因此,其实修改下bin/zkEnv.sh就可以了:
if [ &x${ZOO_LOG_DIR}& = &x& ]
ZOO_LOG_DIR=&$ZOOBINDIR/../logs&
if [ &x${ZOO_LOG4J_PROP}& = &x& ]
ZOO_LOG4J_PROP=&INFO,ROLLINGFILE&
还可以修改下conf/log4j.properties,设置滚动日志最多为10个:
# Max log file size of 10MB
log4j.appender.ROLLINGFILE.MaxFileSize=10MB
# uncomment the next line to limit number of backup files
log4j.appender.ROLLINGFILE.MaxBackupIndex=10
Too many connections from 错误
这个错误是因为同一个IP的zookeeper socket 连接数大于60了。zookeeper server默认限制每个IP最多60个连接。
这个在测试服务器上出现的,因为测试服务器上太多进程在跑了。。
maxClientCnxns=150
http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_advancedConfiguration
This ZooKeeper instance is not currently serving requests 的错误提示
当集群里的结点只剩下一台,或者不足半数时,就会出现这个错误提示。
通常在,只启动第一台zookeeper时会报这个错误。
在zookeeper server的日志里,会有类似的日志:
Exception causing close of session 0x0 due to java.io.IOException: ZooKeeperServer not running
Zookeeper连接速度很慢,Dubbo初始化很慢,应用启动很慢的问题
发现线下环境迁移到新机器后,应用启动变得很慢,本来十几秒启动的应用,变成几分钟才能启动。
启动过程没有报错,只是Dubbo的注册信息日志一直在比较慢地刷。
开始怀疑是网络问题,但是检查了iptables没有开启,用iptraf查看流量,也不高。机器的空闲内存也足够。
再检查Zookeeper的配置,磁盘的空间,应用的dubbo配置,jvm配置,发现都没有问题。
没办法了,用jprofiler来测试下,发现“org.I0Itec.zkclient.ZkClient$1.call”,这个调用耗时比较大。
这样确认是zookeeper本身比较慢,不是应用的问题。
用下面的zookeeper benchmark工具测试了下性能,发现read速度还可能,create/write速度非常慢,qps只有个位数。
于是问了下运维的同事,原来新机器是用共享磁盘的,所以速度很慢。
而zookeeper每次write请求都要写到log日志,并刷到磁盘里,所以非常的慢。
后来运维的同事换为本地磁盘,一切恢复正常。
管理工具:
Zookeeper官方自带的管理员工具:
http://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html & &官方的命令行工具可以胜任绝大部分工作了。
/phunt/zktop &python写的小工具,很有意思
项目地址:/alibaba/taokeeper&
淘宝出品的一个监控工具,还有可以用脚本来监控的功能。虽然开源了,但是实际上很难用,代码也很难扩展,而且有些jar包是淘宝内部的。
我修改了下,可以正常使用,代码地址在:/hengyunabc/taokeeper&
但是我们线上也没有用这个,线上只有zabbix的监控。
安装配置参考:
1.下载这两个项目:
& git clone /hengyunabc/common-toolkit.git
& git clone /nileader/zkclient.git
& 先分别执行 mvn -Dmaven.test.skip install
2.下载本项目:
& git clone /hengyunabc/taokeeper.git
& 执行 &mvn -Dmaven.test.skip clean package
& 到taokeeper-monitor/target/目录就可以看到生成的War包了。
taokeeper使用mysql数据库来保存一些配置和日志。&
导入taokeeper-build/etc/taokeeper.sql 文件,也可以从这里下载:文件:Taokeeper.sql.zip 。&
配置tomcat启动参数,增加JVM启动参数:&
&JAVA_OPTS=-DconfigFilePath=&~/taokeeper/taokeeper-monitor-config.properties&
并在上面的配置中配置好参数,例如:&
systemInfo.envName=TEST
dbcp.driverClassName=com.mysql.jdbc.Driver
dbcp.dbJDBCUrl=jdbc:mysql://localhost:3306/taokeeper
dbcp.characterEncoding=GBK
dbcp.username=root
dbcp.password=root
dbcp.maxActive=30
dbcp.maxIdle=10
dbcp.maxWait=10000
#SystemConstant
SystemConstent.dataStoreBasePath=~/taokeeper/
#SSH account of zk server
SystemConstant.userNameOfSSH=hello
SystemConstant.passwordOfSSH=hello
其中SSH用户密码要配置对,zookeeper部署的机器要开放SSH服务。&
把生成的War包改为ROOT.war,放到tomcat的webapps目录下,启动tomcat。&
如果报log4j错误,则还要配置webapps/ROOT/WEB-INF/classes/log4j.properties 文件。也可以在编绎前先修改好。&
打开 http://localhost:8080/ ,就可以看到taokeeper的界面了。&
taokeeper通过SSH连接到zookeeper部署的机器上,再在上面执行zookeeper的Four Letter Words来得到统计信息,再分析保存到mysql数据库中。&
参考:http://zookeeper.apache.org/doc/trunk/zookeeperAdmin.html#sc_zkCommands&
监控目标机器的负载,也是通过SSH连接到目标机器,再执行top等命令,再分析得到数据。&
在chrome浏览器下,“机器监控”这个功能有时会把信息显示下浏览器的下面,要拉到最后才能看到,并不是这个功能不能工作。&
这个是Netflix出品的一个监控工具,但实际上也很难用。。
Exhibitor的主要功能 监控本机的Zookeeper服务,可以自动重启挂掉的Zookeeper服务;
&定期备份数据;
&定期清理Zookeeper日志;
&提供了一个Web界面可以修改Zookeeper的数据;
&REST API。
Exhibitor安装
Exhibitor提供了三种运行方式:独立的jar文件,War包,core jar。推荐用jar方式运行,配置管理都很方便。&
安装方法可以参考这里:/Netflix/exhibitor/wiki/Building-Exhibitor,也可以从这里下载已经编绎好的jar文件:文件:Exhibitor-war-1.0-jar-with-dependencies.zip,下载后要修改后缀为jar。&
&java -jar &path&/exhibitor-xxx.jar -c file
Exhibitor自动创建配置文件,在web界面所做的配置更改都会保存到exhibitor.properties中。&
参考:/Netflix/exhibitor/wiki/Configuration-UI&
在配置“Servers”参数时,一定要注意要配置的是hostname,而不是IP。所以如果配置的是IP的话,一定要到目标机器上去检查hostname和IP是否一致。&
Exhibitor通过jps命令来判断Zookeeper服务是否运行,所以要配置好jps命令,如果没有当前没有jps命令的话,可以通过类似如下的命令创建一个软链接:
&ls -s /home/www/jdk/jdk1.7.0_15/bin/jps /usr/bin/jps
&Exhibitor会自动创建并覆盖zookeeper的配置文件,所以要在Web界面上把Zookeeper的所有参数都配置,
&否则如果Zookeeper被Exhibitor重启后,可以会出现因为配置有错误而无法启动的状况。
&在“control panel”面板中,当显示绿色,则说明Zookeeper服务正常,可以对外服务,当显示黄色或者红色,
&则Zookeeper不能对外提供服务(这个和Zookeeper进程是否存在,是两个概念,即使Zookeeper进程存在,也可能无法对外提供服务)。
&Exhibitor会定时探测Zookeeper服务是否正常,但是时间间隔默认配置为0,这个会导致机器CPU被消耗。要在Web界面中配置好“Live Check (ms)”参数。
&因为Exhibitor如果探测到Zookeeper服务没有启动,会自动启动Zookeeper进程,所以在升级Zookeeper之前,要先停掉Exhibitor。
其它的一些东东:
性能测试相关:
/brownsys/zookeeper-benchmark
这个工具输出结果比较乱,不过用起来还不错。
& & mvn -DZooKeeperVersion=3.4.5 package
& & ./runBenchmark.sh &test
然后在test文件夹下,会有生成的信息。主要在zk-benchmark.log这个文件里。
http://zookeeper.apache.org/doc/r3.4.5/zookeeperOver.html &
http://wiki.apache.org/hadoop/ZooKeeper/ServiceLatencyOverview 自带的文档里有一点,不过貌似没更新过
http://wiki.apache.org/hadoop/ZooKeeper/ServiceLatencyOverview & Hadoop里带的一个测试
https://ramcloud.stanford.edu/wiki/display/ramcloud/ZooKeeper+Performance&
/team/jm/archives/1070 &淘宝的一个测试
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1591440次
积分:11445
积分:11445
排名:第1415名
原创:129篇
转载:29篇
评论:343条
阅读:105297
(2)(1)(1)(1)(4)(2)(2)(1)(1)(7)(2)(4)(1)(3)(7)(12)(3)(3)(6)(3)(3)(8)(3)(1)(9)(7)(2)(4)(4)(5)(2)(2)(1)(4)(5)(1)(8)(17)(1)(4)(1)(2)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'博客分类:
笔者这里使用的是apache-tomcat-6.0.43,jdk1.6,dubbo-admin-2.5.4.war,zookeeper-3.4.6.tar.gz
下面先来介绍安装zookeeper:
解压zookeeper-3.4.6.tar.gz到指定目录,进入zookeeper-3.4.6\conf目录并复制zoo_sample.cfg文件改名为zoo.cfg,因为zookeeper启动时默认找zoo.cfg这个文件,修改zoo.cfg文件内容如下:
# 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:\zookeeper-3.4.6\zookeeperinstall\data
# 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
到此zookeeper安装完毕,进入zookeeper-3.4.6\bin目录,执行zkServer.cmd或者zkServer.sh脚本就可以启动zookeeper了,例如在Windows下进入cmd命令行,D:\zookeeper-3.4.6\bin&zkServer.cmd& 这里直接回车即可。
安装dubbo-admin-2.5.4.war管理控制台:
把apache-tomcat-6.0.43/webapps/ROOT目录中的所有内容全部删除掉,把dubbo-admin-2.5.4.war文件解压并把全部内容拷贝到apache-tomcat-6.0.43/webapps/ROOT目录下,如下图
修改WEB-INF目录下的dubbo.properties文件:
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
启动tomcat
访问http://127.0.0.1:8080/governance/applications/
登录的用户名和密码都是root,不是root/guest
到此为止dubbo-admin-2.5.4.war管理控制台安装完毕。
下面编写服务提供者代码:
applicationCustomer.xml文件代码如下:
&?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
/schema/dubbo
/schema/dubbo/dubbo.xsd "&
&!-- 具体的实现bean --&
&bean id="demoService" class="com.shihuan.zooshare.service.impl.CustomerServiceImpl" /&
&!-- 提供方应用信息,用于计算依赖关系 --&
&dubbo:application name="shihuan_customer"
&!-- 使用multicast广播注册中心暴露服务地址
&dubbo:registry address="multicast://localhost:1234" /&--&
&!-- 使用zookeeper注册中心暴露服务地址 --&
&dubbo:registry address="zookeeper://127.0.0.1:2181" /&
&!-- 用dubbo协议在20880端口暴露服务 --&
&dubbo:protocol name="dubbo" port="20880" /&
&!-- 声明需要暴露的服务接口 --&
&dubbo:service interface="com.shihuan.zooshare.service.CustomerService" ref="demoService" /&
CustomerService.java文件代码如下:
package com.shihuan.zooshare.
public interface CustomerService {
public String getName();
CustomerServiceImpl.java代码如下:
package com.shihuan.zooshare.service.
import com.shihuan.zooshare.service.CustomerS
public class CustomerServiceImpl implements CustomerService {
public String getName() {
System.out.print("shihuan print !!!");
return "print result !!!";
DubooCustomer.java文件代码如下:
package com.shihuan.zooshare.
import java.io.IOE
import org.springframework.beans.BeansE
import org.springframework.context.support.ClassPathXmlApplicationC
public class DubooCustomer {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"applicationCustomer.xml"});
context.start();
System.out.println("Press any key to exit.");
System.in.read();
} catch (BeansException e) {
System.err.println(e.getMessage());
e.printStackTrace();
} catch (IOException e) {
System.err.println(e.getMessage());
e.printStackTrace();
build.xml文件内容如下:
&?xml version="1.0" encoding="UTF-8" ?&
&project name="zooshare" default="genericjar" basedir="."&
&property name="src" value="${basedir}/src"/&
&property name="classes" value="${basedir}/bin"/&
&property name="dest" value="${basedir}/dist"/&
&property name="zooshare" value="zooshare.jar"/&
&property name="mainclass" value="com.shihuan.zooshare.main.DubooCustomer" /&
&path id="lib-classpath"&
&fileset dir="${basedir}/lib"&
&include name="**/*.jar"/&
&exclude name="**/*.bak"/&
&/fileset&
&target name="clean"&
&delete dir="${basedir}/bin" /&
&delete dir="${basedir}/dist" /&
&target name="init"&
&mkdir dir="${dest}"/&
&target name="compile" depends="init"&
&javac encoding="utf-8" srcdir="${src}" destdir="${dest}" includeantruntime="false" source="1.6" debug="yes" verbose="yes" failonerror="true" optimize="false"&
&compilerarg line="-encoding UTF-8"/&
&classpath refid="lib-classpath" /&
&copy todir="${classes}"&
&fileset dir="${src}"&
&include name="**/*.properties"/&
&include name="**/*.xml"/&
&exclude name="**/*.bak"/&
&/fileset&
&target name="antjar" depends="compile"&
&!--Create a property containing all .jar files,
prefix lib/, and seperated with a space--&
&pathconvert property="mf.classpath" pathsep=" "&
&chainedmapper&
&!-- jar包文件只留文件名,去掉目录信息 --&
&flattenmapper/&
&!-- add lib/ prefix --&
&globmapper from="*" to="lib/*"/&
&/chainedmapper&
&path refid="lib-classpath"/&
&/pathconvert&
&jar destfile="${dest}/zooshare.jar" basedir="${classes}"&
&manifest&
&attribute name="Main-class" value="${mainclass}"/&
&attribute name="Class-Path" value="${mf.classpath}"/&
&/manifest&
&target name="genericjar" depends="antjar"&&/target&
&/project&
zooshare.jar服务的结构如下图所示:
startZooshare.bat文件内容如下:
set CURR_DIR=D:\AppDynamics\dubbo+zookeeper\zooshare
cd /D %CURR_DIR%
set JAVA_HOME=D:\Java\jdk1.6.0_45
set PATH=%JAVA_HOME%\%PATH%
rem 设置变量为延迟加载
setlocal=EnableDelayedExpansion
set CLASSPATH=.;%JAVA_HOME%\%JAVA_HOME%\jre\lib
for %%j in (lib\*.jar) DO (
set CLASSPATH=!CLASSPATH!;%CURR_DIR%\%%j
echo %CLASSPATH%
echo "#############################################"
echo %CLASSPATH%
echo "#############################################"
rem set JVM_ARGS="-Xms:512m -XX:MinPermSize=128m"
rem echo JVM_ARGS=$JVM_ARGS
java -cp %CLASSPATH%;zooshare.jar com.shihuan.zooshare.main.DubooCustomer
startZooshare.sh文件内容如下:
export CURR_DIR=/home/zoodubbo/
cd $CURR_DIR
export JAVA_HOME=/usr/java/jdk1.6.0_45
#echo JAVA_HOME=$JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH
#echo PATH=$PATH
java -version
export CLASSPATH=$CURR_DIR/lib:$CURR_DIR:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
for jarfile in `ls $CURR_DIR/lib/*.jar`
export CLASSPATH=$CLASSPATH:$jarfile
#echo CLASSPATH=$CLASSPATH
JVM_ARGS="-Xms:512m -XX:MinPermSize=128m"
echo JVM_ARGS=$JVM_ARGS
ulimit -n 400000
echo "" & nohup.out
#java org.jboss.netty.bootstrap.Bootstrap
nohup $JAVA_HOME/bin/java -cp $CLASSPATH:zoodubbo-0.0.1.jar com.shihuan.zoodubbo.C3p0TestMysql &
在Windows环境中运行cmd窗口执行startZooshare.bat就可以启动zooshare服务了。
下面来介绍服务消费者代码:
dubooweb工程所需要的jar文件截图(这里要把zooshare.jar加进来)
dubooweb工程总体结构图
jdbc-context.xml文件代码如下:
&?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd" default-autowire="byName"&
&context:property-placeholder location="classpath:*.properties"/&
&!-- 自动扫描组件,需要把controller去掉,否则影响事务管理 --&
&context:component-scan base-package="com.shihuan.web"&
&context:exclude-filter type="regex" expression="com.shihuan.web.*"/&
&/context:component-scan&
springmvc-servlet.xml文件代码如下:
&?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.1.xsd"&
&bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"&
&property name="supportedMediaTypes"&
&value&text/charset=UTF-8&/value&
&/property&
&bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"&
&property name="messageConverters"&
&util:list id="beanList"&
&ref bean="mappingJacksonHttpMessageConverter" /&
&/util:list&
&/property&
&!-- 启动扫描所有的controller --&
&context:component-scan base-package="com.shihuan.web"/&
主要作用于@Controller,激活该模式
下面是一种简写形式,完全可以手动配置替代这种简写形式;
它会自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter 两个bean,
是spring MVC为@Controllers分发请求所必须的
&mvc:annotation-driven/&
&!-- 这里拦截器还有一种配置方法【针对路径进行配置】 推荐使用这个,方便直观--&
&mvc:interceptors&
&mvc:interceptor&
&mvc:mapping path="/*"/&
&bean class="com.shihuan.web.interceptor.DubboWebInterceptor"&&/bean&
&/mvc:interceptor&
&/mvc:interceptors&
&!-- 全局配置
&mvc:interceptors&
&bean class="com.olm.website.server.web.interceptor.MyInterceptor"&&/bean&
&/mvc:interceptors&
&!-- 配置js,css等静态文件直接映射到对应的文件夹,不被DispatcherServlet处理 --&
&mvc:resources location="/resources/**" mapping="/resources"/&
&!-- jsp页面解析器,当Controller返回XXX字符串时,先通过拦截器,然后该类就会在/WEB-INF/views/目录下,查找XXX.jsp文件--&
&bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&
&property name="prefix" value="/"&&/property&
&property name="suffix" value=".jsp"&&/property&
applicationConsumer.xml文件代码如下:
&?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
/schema/dubbo
/schema/dubbo/dubbo.xsd "&
&!-- 消费方应用名,用于计算依赖关系,不是匹配条件,不要与提供方一样 --&
&dubbo:application name="consumer-of-shihuan-app" /&
&!-- 使用multicast广播注册中心暴露发现服务地址 --&
&dubbo:registry
protocol="zookeeper" address="zookeeper://127.0.0.1:2181" /&
&!-- 生成远程服务代理,可以和本地bean一样使用demoService --&
&dubbo:reference id="demoService" interface="com.shihuan.zooshare.service.CustomerService" /&
logging.properties文件代码如下:
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################
org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = error-debug.
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter =java.util.logging.SimpleFormatter
web.xml文件代码如下:
&?xml version="1.0" encoding="UTF-8"?&
&web-app version="2.5"
xmlns="/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/javaee
/xml/ns/javaee/web-app_2_5.xsd"&
&display-name&dubboweb&/display-name&
&context-param&
&param-name&dubbowebRootKey&/param-name&
&param-value&dubboweb.root&/param-value&
&/context-param&
&context-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath:jdbc-context.xml,classpath:applicationConsumer.xml&/param-value&
&/context-param&
&listener&
&listener-class&org.springframework.web.context.ContextLoaderListener&/listener-class&
&/listener&
&servlet-name&spring-mvc&/servlet-name&
&servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class&
&init-param&
&param-name&contextConfigLocation&/param-name&
&param-value&classpath:springmvc-servlet.xml&/param-value&
&/init-param&
&load-on-startup&1&/load-on-startup&
&/servlet&
&servlet-mapping&
&servlet-name&spring-mvc&/servlet-name&
&url-pattern&/&/url-pattern&
&/servlet-mapping&
&filter-name&encodingFilter&/filter-name&
&filter-class&org.springframework.web.filter.CharacterEncodingFilter&/filter-class&
&init-param&
&param-name&encoding&/param-name&
&param-value&UTF-8&/param-value&
&/init-param&
&init-param&
&param-name&forceEncoding&/param-name&
&param-value&true&/param-value&
&/init-param&
&filter-mapping&
&filter-name&encodingFilter&/filter-name&
&url-pattern&/*&/url-pattern&
&/filter-mapping&
&welcome-file-list&
&welcome-file&index.jsp&/welcome-file&
&/welcome-file-list&
&/web-app&
index.jsp文件代码如下:
&%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%&
String path = request.getContextPath();
&!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&
&title&index.jsp starting page&/title&
&meta http-equiv="Content-Type" content="text/ charset=utf-8"&
&form action="&%=path%&/duboo1.do" method="post"&
&input type="submit" value="submit" /&
DubboWebInterceptor.java文件代码如下:
package com.shihuan.web.
import javax.servlet.http.HttpServletR
import javax.servlet.http.HttpServletR
import org.springframework.web.servlet.ModelAndV
import org.springframework.web.servlet.handler.HandlerInterceptorA
public class DubboWebInterceptor extends HandlerInterceptorAdapter {
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
super.afterCompletion(request, response, handler, ex);
public void postHandler(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
super.postHandle(request, response, handler, modelAndView);
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String url = request.getRequestURI();
System.out.println("ConsumerInterceptor.preHandle()" + url);
return super.preHandle(request, response, handler);
DubboWebController.java文件代码如下:
package com.shihuan.web.
import org.springframework.beans.factory.annotation.A
import org.springframework.stereotype.C
import org.springframework.web.bind.annotation.RequestM
import com.shihuan.zooshare.service.CustomerS
@Controller
@RequestMapping(value="/")
public class DubboWebController {
@Autowired
public CustomerService demoS
@RequestMapping(value="duboo1")
public String duboo1(){
System.out.println("come into WebController ......");
String zoosharestr = demoService.getName();
System.out.println(zoosharestr);
return "index";
@RequestMapping(value="duboo1")
public String duboo1(){
System.out.println("jinru......");
return "index";
到此为止服务消费者代码编写完毕。
把dubboweb工程部署到tomcat6的webapps目录下即可。
【注】:各个模块的启动顺序不能错。
第一步:启动zookeeper服务
第二步:启动zooshare.jar服务,控制台应该输出"Press any key to exit."
第三步:启动tomcat6
第四步:访问http://127.0.0.1:8080/governance/applications/
第五步:访问http://127.0.0.1:8080/dubooweb/
第六步:查看tomcat6控制台和zooshare.jar服务控制台是否有正确输出,tomcat6控制台应该输出"come into WebController ......"和"print result !!!",zooshare.jar服务控制台应该输出"shihuan print !!!"
都启动好了后,操作截图如下:
笔者的源代码在邮箱网盘的原创作品里。
这个邮箱我已经把源代码包发给你了,请查收。已收到,谢谢
& 上一页 1
shihuan830619
浏览: 313011 次
来自: 上海
可以发一份源码给我学习么 多谢了
邮箱网盘在哪,没找到。能给份源 ...
能分享一份源码吗?

我要回帖

更多关于 zookeeper 安装包 的文章

 

随机推荐