一.安装准备

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的更多相关文章

  1. 精华【分布式、微服务、云架构、dubbo+zookeeper+springmvc+mybatis+shiro+redis】分布式大型互联网企业架构!

    平台简介 Jeesz是一个分布式的框架,提供项目模块化.服务化.热插拔的思想,高度封装安全性的Java EE快速开发平台. Jeesz本身集成Dubbo服务管控.Zookeeper注册中心.Redis ...

  2. 分布式架构真正适用于大型互联网项目的架构! dubbo+zookeeper+springmvc+mybatis+shiro+redis

     分类: 分布式技术(3)    目录(?)[+]   平台简介 Jeesz是一个分布式的框架,提供项目模块化.服务化.热插拔的思想,高度封装安全性的Java EE快速开发平台. Jeesz本身集成D ...

  3. Dubbo+Zookeeper+SpringMVC+Maven整合实现微服务项目

    互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,Dubbo是一个分布式服务框架,在这种情况下诞生的.现在核心业务抽取出来,作为独立的服务,使 ...

  4. dubbo+zookeeper+springmvc+mybatis+shiro+redis架构

    内容管理(CMS)系统,包括内容管理,栏目管理.站点管理.公共留言.文件管理.前端网站展示等功能: 在线办公(OA)系统,主要提供简单的流程实例. Jeesz提供了常用工具进行封装,包括日志工具.缓存 ...

  5. Dubbo+zookeeper+SpringMVC搭建最简单的分布式项目

    Dubbo 是什么 一款分布式服务框架 高性能和透明化的RPC远程服务调用方案 SOA服务治理方案 Dubbo 架构流程图 Provider:服务提供方 Consumer:服务消费者 Registry ...

  6. dubbo+zookeeper+springMVC +maven

    pom:                    <dependency>             <groupId>com.github.sgroschupf</grou ...

  7. MAC环境下idea:maven+Spring+Dubbo+Zookeeper简单工程搭建

    : 一:安装软件:tomcatZookeeperDubbo+admin 二:工程: 总工程  API    Pom.xml:不用引用任何东西  Provider    Pom.xml:要denpend ...

  8. Dubbo+zookeeper构建高可用分布式集群(二)-集群部署

    在Dubbo+zookeeper构建高可用分布式集群(一)-单机部署中我们讲了如何单机部署.但没有将如何配置微服务.下面分别介绍单机与集群微服务如何配置注册中心. Zookeeper单机配置:方式一. ...

  9. 搭建一个dubbo+zookeeper平台

    本篇主要是来分享从头开始搭建一个dubbo+zookeeper平台的过程,其中会简要介绍下dubbo服务的作用. 首先,看下一般网站架构随着业务的发展,逻辑越来越复杂,数据量越来越大,交互越来越多之后 ...

随机推荐

  1. 三分之一的程序猿之社交类app踩过的那些坑

    三分之一的程序猿之社交类app踩过的那些坑 万众创新,全民创业.哪怕去年陌生人社交不管融资与否都倒闭了不知道多少家,但是依然有很多陌生人社交应用层出不穷的冒出来.各种脑洞大开,让人拍案叫起. 下面我们 ...

  2. SQL语句 在一个表中插入新字段

    SQL语句 在一个表中插入新字段: alter table 表名 add 字段名 字段类型 例: alter table OpenCourses add Audio varchar(50)alter ...

  3. html5,表单的综合案例

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  4. 【转】移动前端不得不了解的html5 head 头标签

    来源:http://blog.csdn.net/huang100qi/article/details/42596799 本文主要内容来自一丝的常用的 HTML 头部标签和百度FEX的HTML head ...

  5. 解决VS2015启动时Package manager console崩溃的问题 - Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope

    安装VS2015,启动以后,Package manager console崩溃,错误信息如下: Windows PowerShell updated your execution policy suc ...

  6. 【实践】js实现随机不重复抽取数组中元素

    经过3个星期的时间终于用做完了学校的练习作品了,但是发现在用jq 做互动虽然很方便但却带来了不少的烦恼 所以在以后的日子里我要好好学 js 了! 然后呢在博主之前学java 里面 另我最头痛的就是做产 ...

  7. Oracle Contact By的使用

    1.概述 Oracle “CONNECT BY”是层次查询子句,一般用于树状或者层次结果集的查询 2.使用方式 2.1.通过Connect by 生成序列 Oracle 构造一个月份的天数 ) s_d ...

  8. JS验证身份证号码合法性

    <html><head><script type="text/javascript">    function validateCard(){  ...

  9. FTP连接时出现“227 Entering Passive Mode” 的解决方法

    今天从公网的服务器连接本地内网的FTP server copy文件时,系统老是提示227 Entering Passive Mode (xxx,xxx,,xxx,xxx,x),很是奇怪,于是上网找资料 ...

  10. HTML如何让文本两端对齐

    <p style="text-align:justify; text-justify:inter-ideograph;>日本驻华大使丹羽宇一郎:日中关系比夫妻还紧密日本驻华大使丹 ...