一.安装准备

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. 6周学习计划,攻克JavaScript难关(React/Redux/ES6 etc.)

    作者:余博伦链接:https://zhuanlan.zhihu.com/p/23412169来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 和大家一样,最近我也看了Jo ...

  2. win7 64位 asp+access 数据库连接出错[代码:02],请检查数据库链接文件中的连接字串

    解决办法,启用32位应用程序改为true 打开“Internet 信息服务(IIS)管理器”,在最右边的窗口中点击“应用程序池”,在用到的应用程序池上点击右键,选择“高级设置”

  3. android自定义拍照

    调用系统相机,然后在自己的surfaceview上预览,拍照,不废话,直接上源码 package com.example.customecamera; import java.io.File; imp ...

  4. 云硬盘error、error deleting、deleting状态(数据库基本操作小记)

    起因是发现云硬盘显示删光了,但还是创建不了新的云硬盘,在api节点上用cinder list可以看到已经没有硬盘了,但是创建硬盘时,还是会提示配额满了,这是因为数据库里的记录没有更新,对数据库的操作记 ...

  5. Linux 常用服务总结

    使用linux有一段时间了,把自己在身边经常听到,使用linux经常遇到的linux常见服务总结出来,这样遇到问题会有更多的解决问题的办法,听别人摆这些专业术语时,才不会不知所云. 服务: 1.NFS ...

  6. 推荐一篇好文:OSG OSGearth vs2010编译

    链接:http://weibo.com/p/2304189447a8480102v2c2 此文作者把用到的相关代码包放在:http://pan.baidu.com/s/1qW9a4zU 按照步骤操作完 ...

  7. npm 安装本地包

    npm install ../xxx 就行 如果报错,比如 1`Refusing to install  as a dependency of itself 说明你的本地模块没npm init ,也就 ...

  8. Weblogic日志机制详解

    服务器日志  每个 WebLogic Server 实例将来自子系统和应用程序的所有消息写入位于本地主机上的服务器日志文件.默认情况下,服务器日志文件位于服务器实例根目录下的 logs 目录中:例如, ...

  9. Android setVisibility()

    android view setVisibility(): 有三个参数:Parameters:visibility One of VISIBLE, INVISIBLE, or GONE,想对应的三个常 ...

  10. Hibernate的映射组件属性

    组件属性 如果持久化类的属性并不是基本数据类型,也不是一个日期或者字符串常量,而是一个复合类型的对象,例如 private Name name; 那么这就是一个组件属性. 组件属性可以是任何普通的ja ...