dubbo & zookeeper & springMVC
一.安装准备
1.环境简介
| 名称 | 版本 |
|---|---|
| OS | Mac OS X 10.11.5 |
| JDK | 1.8.0_51 |
| dubbo | 2.5.4 |
| tomcat | 8.0.35 |
| Zookeeper | 3.4.8 |
| maven | 3.3.9 |
2.小插曲
想用wget进行下载,发现mac默认是没有安装的。用惯了别的Linux环境,相使用个自动安装工具来安装wget。让后就找到了Homebrew。下面首先安装Homebrew,这个类似CentOS的yum和Ubuntu的apt-get,安装方法很简单,执行下面就可以了:
ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
执行上面并安装成功后,下面让我们测试下安装wget:
brew install wget 完美,安装完毕。
3.编译dubbo示例
根据网站官方教程:
http://dubbo.io/Administrator+Guide-zh.htm#AdministratorGuide-zh-%E7%A4%BA%E4%BE%8B%E6%8F%90%E4%BE%9B%E8%80%85%E5%AE%89%E8%A3%85
发现直接下载assembly的地址已经无效了,到其他地址下吧。发现在github中有demo代码,fork到自己账户下,克隆到本地。这个是用maven管理的,所以还要准备好maven环境,关于maven环境的搭建此处省略。
cd dubbo
mvn install -Dmaven.test.skip=true
编译完成后,进入到demo到目录下将制作好的组件找个地方放置。压缩包名字为:
目录dubbo/dubbo-demo/dubbo-demo-provider/target下面:
dubbo-demo-provider-2.5.4-SNAPSHOT-assembly.tar.gz
目录dubbo/dubbo-demo/dubbo-demo-consumer/target下面:
dubbo-demo-consumer-2.5.4-SNAPSHOT-assembly.tar.gz
目录dubbo/dubbo-simple/dubbo-monitor-simple/target下面:
dubbo-monitor-simple-2.5.4-SNAPSHOT-assembly.tar.gz
目录dubbo/dubbo-admin/target下面:
dubbo-admin-2.5.4-SNAPSHOT.war
二.Zookeeper注册中心安装
注册中心有多种选择,我选择zookeeper作为注册中心。
wget http://apache.fayea.com/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gz
tar -zxvf zookeeper-3.4.8.tar.gz
cd zookeeper-3.4.8
cp conf/zoo_sample.cfg conf/zoo.cfg
不配置集群,直接启动
./bin/zkServer.sh start
三.安装dubbo示例
1.示例提供者安装
tar -zxvf dubbo-demo-provider-2.5.4-SNAPSHOT-assembly.tar.gz
cd dubbo-demo-provider-2.5.4-SNAPSHOT
配置
vi conf/dubbo.properties
将其中
dubbo.registry.address=zookeeper://127.0.0.1:2181
去掉注释,注释multicast那个
启动
./bin/start.sh
连接到provider
telnet 127.0.0.1 20880
输入help,查看提供的操作
2.示例消费者安装
tar -zxvf dubbo-demo-consumer-2.5.4-SNAPSHOT-assembly.tar.gz
cd dubbo-demo-consumer-2.5.4-SNAPSHOT
配置
vi conf/dubbo.properties
将其中
dubbo.registry.address=zookeeper://127.0.0.1:2181
去掉注释,注释multicast那个
./bin/start.sh
3.监控中心安装
tar -zxvf dubbo-monitor-simple-2.5.4-SNAPSHOT-assembly.tar.gz
cd dubbo-monitor-simple-2.5.4-SNAPSHOT 配置
vi conf/dubbo.properties
将其中
dubbo.registry.address=zookeeper://127.0.0.1:2181
去掉注释,注释multicast那个
./bin/start.sh
http://127.0.0.1:8080

4.管理控制台安装
将编译好的dubbo-admin-2.5.4-SNAPSHOT.war拷贝到tomcat下面。配置server.xml,避免和前面监控中心的端口产生冲突。启动tomcat。
发现报错:
Bean property ‘URIType’ is not writable or has an invalid setter method.
具体错误及解决方案参考这里:
https://github.com/alibaba/dubbo/issues/50
按照以下4步操作报错就消失了
1、webx的依赖改为3.1.6版;
<dependency>
<groupId>com.alibaba.citrus</groupId>
<artifactId>citrus-webx-all</artifactId>
<version>3.1.6</version>
</dependency>
2、添加velocity的依赖,我用了1.7;
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
3、对依赖项dubbo添加exclusion,避免引入旧spring
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>${project.parent.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
</exclusions>
</dependency>
4、webx已有spring 3以上的依赖,因此注释掉dubbo-admin里面的spring依赖
<!--<dependency>-->
<!--<groupId>org.springframework</groupId>-->
<!--<artifactId>spring</artifactId>-->
<!--</dependency>-->
确定war包解压后lib目录没有spring 3 以下的依赖就行。然后运行正常了。
这里不需要额外配置,dubbo.properties中默认就是zookeeper的配置。
我的访问地址是:
http://127.0.0.1:8888

四.通过SpringMVC加入服务提供者和消费者
dubbo与SpringMVC的集成,我参考了这段:
http://dubbo.io/User+Guide-zh.htm#UserGuide-zh-%E6%B3%A8%E8%A7%A3%E9%85%8D%E7%BD%AE
新建两个工程:
| dubbo application |
|---|
| test-consumer |
| test-provider |
上两张张加入后管理控制台的截图,后面那张消费者为什么有三个表示不理解,需要继续研究:


在搭建的过程中遇到了两个问题:
问题一: dubbo.xsd文件找不到
将dubbo.xsd下载到本地后,通过以下步骤操作加入,我用的是eclipse:
windows->preferrence->xml->xmlcatalog
add->catalog entry ->file system 选择刚刚下载的文件路 径
修改key值和配置文件的http://code.alibabatech.com/schema/dubbo/dubbo.xsd 相同
问题的解决方案出处在这里,感谢作者~
http://blog.csdn.net/lxb15959168136/article/details/50225057
问题二: 在dubbo启动的过程中报错误:java.lang.ClassNotFoundException: javassist.ClassPath
我的做法:
由于我是用的maven构建,所以在工程pom.xml中直接加入以下:
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.18.2-GA</version>
<scope>runtime</scope>
</dependency>
最后是编写的服务提供者和消费者的代码
https://github.com/mingbozhang/leandubbo
dubbo & zookeeper & springMVC的更多相关文章
- 精华【分布式、微服务、云架构、dubbo+zookeeper+springmvc+mybatis+shiro+redis】分布式大型互联网企业架构!
平台简介 Jeesz是一个分布式的框架,提供项目模块化.服务化.热插拔的思想,高度封装安全性的Java EE快速开发平台. Jeesz本身集成Dubbo服务管控.Zookeeper注册中心.Redis ...
- 分布式架构真正适用于大型互联网项目的架构! dubbo+zookeeper+springmvc+mybatis+shiro+redis
分类: 分布式技术(3) 目录(?)[+] 平台简介 Jeesz是一个分布式的框架,提供项目模块化.服务化.热插拔的思想,高度封装安全性的Java EE快速开发平台. Jeesz本身集成D ...
- Dubbo+Zookeeper+SpringMVC+Maven整合实现微服务项目
互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...
- dubbo+zookeeper+springmvc+mybatis+shiro+redis架构
内容管理(CMS)系统,包括内容管理,栏目管理.站点管理.公共留言.文件管理.前端网站展示等功能: 在线办公(OA)系统,主要提供简单的流程实例. Jeesz提供了常用工具进行封装,包括日志工具.缓存 ...
- Dubbo+zookeeper+SpringMVC搭建最简单的分布式项目
Dubbo 是什么 一款分布式服务框架 高性能和透明化的RPC远程服务调用方案 SOA服务治理方案 Dubbo 架构流程图 Provider:服务提供方 Consumer:服务消费者 Registry ...
- dubbo+zookeeper+springMVC +maven
pom: <dependency> <groupId>com.github.sgroschupf</grou ...
- MAC环境下idea:maven+Spring+Dubbo+Zookeeper简单工程搭建
: 一:安装软件:tomcatZookeeperDubbo+admin 二:工程: 总工程 API Pom.xml:不用引用任何东西 Provider Pom.xml:要denpend ...
- Dubbo+zookeeper构建高可用分布式集群(二)-集群部署
在Dubbo+zookeeper构建高可用分布式集群(一)-单机部署中我们讲了如何单机部署.但没有将如何配置微服务.下面分别介绍单机与集群微服务如何配置注册中心. Zookeeper单机配置:方式一. ...
- 搭建一个dubbo+zookeeper平台
本篇主要是来分享从头开始搭建一个dubbo+zookeeper平台的过程,其中会简要介绍下dubbo服务的作用. 首先,看下一般网站架构随着业务的发展,逻辑越来越复杂,数据量越来越大,交互越来越多之后 ...
随机推荐
- struts2 jquery ajaxFileUpload 异步上传文件
网上搜集的,整理一下. 一.ajaxFileUpload 实现异步上传文件利用到了ajaxFileUpload.js这个文件,这是别人开发的一个jquery的插件,可以实现文件的上传并能够和strut ...
- 使用Python统计深圳市公租房申请人省份年龄统计
使用Python,HtmlParser来统计深圳市保障房申请人的原籍省份分布,年龄分布等.从侧面可以反映鹏城人的地域分布.以下python代码增大了每一次获取的记录数,从而少提交几次请求.如果按照WE ...
- Jquery EeasyUI等框架中图标的处理方法
在使用Query EasyUI.Ext等框架开发项目的时候,经常会用到很多小的图标,常见几个图片应用方式总结如下: 一.在jQuery Easyui中添加小图标 1.添加图标的两小步: 先到theme ...
- SQLServer游标(Cursor) (B)
游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次以行或者多行前进或向后浏览数据的能力.我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许 ...
- 获取当前正在执行的Javascript脚本文件的路径
获取当前JavaScript脚本文件的路径,在特定场景下可能需要,比如写模块加载器,或者进行日志记录.下面这段脚本适用于所有浏览器来获取正在执行js文件的路径,但是该方法只适用于脚本加载过程中执行的情 ...
- nodejs的初学
1.启服务器.先server.js,再命令行输入命令node server.js,打开浏览器输入http://127.0.0.1:2016可以看到有内容输出. server.js代码如下: var h ...
- Dynamics AX 2012 R2 通过数据源保存记录时触发的方法
我们都知道,在窗体上保存记录时,会像在表上保存时一样,触发很多方法.这里Reinhard找到了一个流程图,看看都触发了哪些方法,并且这些方法是以怎样的顺序被触发的. 窗体上数据源的Validate() ...
- sass心得
1.sass的安装:(1)下载安装Ruby,记得安装的时候勾选第二项,(2)打开控制面板gem install sass(人品好的话,一下子就能安装成功)(3)如果(2)安装不成功进行一下步骤:gem ...
- 【转】创建SVN仓库的步骤
转载地址:http://www.cnblogs.com/ivan0626/p/3783053.html 今天在客户现场联调,两个开发人员之间的代码想用SVN来管理,所以就临时在本地机器上搭建一个S ...
- [课程设计]Scrum 3.5 多鱼点餐系统开发进度(修复Bug&美化页面)
Scrum 3.5 多鱼点餐系统开发进度(修复Bug&美化页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅 ...