dubbo & zookeeper & springMVC

摘要:
Dmaven博士。测验skip=true编译完成后,进入demo目录以找到放置制作组件的位置。wgethttp://apache.fayea.com/zookeeper/zookeeper-3.4.8/zookeeper-3.4.8.tar.gztar-zxvfzookeeper-3.4.8.tar.gzcdzookeeper-3.4.8cpconf/zoo_sample.cfgconf/zoo.cfg直接启动,无需配置cluster/Bin/zkServer.shstart III。安装dubbo示例1。示例提供程序安装tar-zxvfdubbo-demo-provider-2.5.4-SNAPSHOT-assembly.tar.gzcddubbo-demo-provider-2.54-SNAPSSHOT配置viconf/dubbo.properties,其中dubbo.register.address=zookeeper://127.0.0.1:2181删除注释并注释multicast/Bin/start.sh的开始连接到providertelnet127.0.0.120880并输入help以查看提供的操作。2.示例消费者安装tar-zxvfdubbo-demo-consumer-2.5.4-SNAPSHOT-assembly.tar.gzcddubbo-demo-consumer-2.54-SNAPSSHOT配置viconf/dubbo.properties,其中dubbo.register.address=zookeeper://127.0.0.1:2181删除注释并注释多播文件/Bin/start.sh3。在监控中心安装tar-zxvfdubbo-monitor-simple-2.5.4-SNAPSHOT-assembly.tar.gzcddubo-monitor-stimple-2.5.4-SNAPSHOT以配置viconf/dubbo.properties=zookeeper://127.0.0.1:2181删除注释并注释多播one/bin/start。shhttp://127.0.0.1:80804.管理控制台安装将将编译的dubbo-admin-2.5.4-SNAPSHOT.war复制到tomcat。

一.安装准备

1.环境简介

名称版本
OSMac OS X 10.11.5
JDK1.8.0_51
dubbo2.5.4
tomcat8.0.35
Zookeeper3.4.8
maven3.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

dubbo & zookeeper & springMVC第1张

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

dubbo &amp; zookeeper &amp; springMVC第2张

四.通过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 &amp; zookeeper &amp; springMVC第3张

dubbo &amp; zookeeper &amp; springMVC第4张

在搭建的过程中遇到了两个问题:

问题一: 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 &amp; zookeeper &amp; springMVC》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇设计模式演练——工厂方法模式关于《设计模式演练》系列文章结构的规范下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

ZooKeeper 应用场景

ZooKeeper 是一个高可用的分布式数据管理不系统协调框架。基于对 Paxos 算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得 ZooKeeper 解决很多分布式问题。网上对 ZK 的应用场景也有不少介绍。值得注意的是,ZK 并非天生就是为这些应用场景设计的,都是后来众多开发者根据其框架的特性,利用其提供的一系列 API...

spring MVC整合dubbo实例二

spring 整合dubbo 一、创建服务提供者 (创建多模块项目的目的是将服务的接口和实现分开) 1.1、在提供者的pom文件中添加依赖(我这里使用的是dubbo-2.5.10版本,版本不同可能依赖版本不同,这里有坑 需要注意) <!--dubbo --> <dependency> <...

Spring MVC与Dubbo的整合一

一、Dubbo是什么 一款分布式服务框架 高性能和透明化的RPC远程服务调用方案 SOA服务治理方案 每天为2千多个服务提供大于30亿次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点以及别的公司的业务中。 具体dubbo的背景和简介以及框架等基础知识参考这位大神的博客 二、提供者的Dubbo配置 首先我们先配置服务的提供者 1.给作为提供者的Spri...

服务框架Dubbo(转)

add by zhj:该开源项目已经停止更新了,不过倒是可以学学该软件的架构设计 原文:http://www.oschina.net/p/dubbo Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。 主要核心部件: Remoting:网络通信框架...

Dubbo telnet 命令能做什么?

dubbo 服务发布之后,我们可以利用telnet 命令进行调试、管理。 Dubbo2.0.5 以上版本服务提供端口支持telnet 命令 连接服务 telnet localhost 20880 //键入回车进入Dubbo 命令模式。 查看服务列表 dubbo>ls com.test.TestService dubbo>ls com.t...

Dubbo多版本

当服务提供者提供的服务接口出现不兼容升级时,可以设置版本号,使用多个版本号(version)进行过渡。 1)、服务提供者配置文件 1 <dubbo:service ref="userService"interface="cn.coreqi.service.UserService"version="1.0.0"/> 2 3...