准备
zookeeper-3.4.9.tar.gz
tomcat-7.0.72.tar.gz
安装配置zookeeper
wget http://mirrors.cnnic.cn/apache/zookeeper/zookeeper-3.4.9/zookeeper-3.4.9.tar.gz
tar -xvf zookeeper-3.4.9.tar.gz
cd /usr/local/zookeeper-3.4.9/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
dataDir=/usr/local/zookeeper-3.4.9/data
vim /etc/profile
exportZOOKEEPER_HOME=/usr/local/zookeeper-3.4.9
export PATH=$PATH:$ZOOKEEPER_HOME/bin
./zkServer.sh start
./zkServer.sh status
安装tomcat
下载tomcat-7.0.72.tar.gz
tar xvf tomcat-7.0.72.tar.gz
cd /usr/local/ tomcat-7.0.72/webapps/ROOT/
rm –rf *
编译dubbo2.4.11
下载
https://github.com/alibaba/dubbo/archive/dubbo-2.4.11.zip
dubbo-dubbo-2.4.11.zip
解压
dubbo-dubbo-2.4.11
问题:opensesame
https://github.com/alibaba/opensesame
下载pom.xml放到opensesame目录
mvn clean install -Dmaven.test.skip
修改pom.xml重新编译
<groupId>com.alibaba</groupId>
<artifactId>opensesame</artifactId>
<!--2.0修改为1.0 -->
<version>1.0</version>
<packaging>pom</packaging>
mvn clean install -Dmaven.test.skip
问题:fastjson
修改dubbo-dubbo-2.4.11\pom.xml
找到<fastjson_version>1.1.8</fastjson_version>
将1.1.8修改为1.1.39
修改dubbo-dubbo-2.4.11\pom.xml
注释以下内容:
<!--
<repositories>
<repository>
<id>opensesame.releases</id>
<url>http://code.alibabatech.com/mvn/releases</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
-->
问题:hessian-lite
https://github.com/alibaba/dubbo/tree/master/hessian-lite
下载hessian-lite,放入dubbo-dubbo-2.4.11目录
修改dubbo-dubbo-2.4.11\pom.xml
<modules>
<!-- 增加 hessian-lite-->
<module>hessian-lite</module>
<module>dubbo-common</module>
<module>dubbo-container</module>
<module>dubbo-remoting</module>
<module>dubbo-rpc</module>
<module>dubbo-filter</module>
<module>dubbo-cluster</module>
<module>dubbo-registry</module>
<module>dubbo-monitor</module>
<module>dubbo-config</module>
<module>dubbo</module>
</modules>
修改dubbo-dubbo-2.4.11\hessian-lite\pom.xml
<parent>
<groupId>com.alibaba</groupId>
<artifactId>dubbo-parent</artifactId>
<!--<version>2.5.4-SNAPSHOT</version>
<version>2.4.11</version>
</parent>
修改dubbo-dubbo-2.4.11\dubbo-admin\pom.xml
<parent>
<groupId>com.alibaba</groupId>
<artifactId>dubbo-parent</artifactId>
<!--<version>2.4.10</version> 版本号修改为2.4.11 -->
<version>2.4.11</version>
</parent>
修改dubbo-dubbo-2.4.11\pom.xml
<modules>
<!-- 增加 hessian-lite-->
<module>hessian-lite</module>
<!-- 增加 dubbo-admin-->
<module>dubbo-admin</module>
<module>dubbo-common</module>
<module>dubbo-container</module>
<module>dubbo-remoting</module>
<module>dubbo-rpc</module>
<module>dubbo-filter</module>
<module>dubbo-cluster</module>
<module>dubbo-registry</module>
<module>dubbo-monitor</module>
<module>dubbo-config</module>
<module>dubbo</module>
</modules>
编译
进入dubbo-dubbo-2.4.11目录
set MAVEN_OPTS=-Xmx1024m-XX:MaxPermSize=512m
mvn clean install -Dmaven.test.skip
Eclipse支持
mvn eclipse:eclipse
进入dubbo-dubbo-2.4.11\dubbo-admin\target目录
上传dubbo-admin-2.4.11.war到/usr/local/ tomcat-7.0.72/webapps/ROOT/
jar -xvf dubbo-admin-2.4.11.war
rm -f dubbo-admin-2.4.11.war
启动dubbo
cd /usr/local/tomcat-7.0.72/bin
./startup.sh
访问dubbo
root/root
开发dubbo demo
所需lib直接引用dubbo-dubbo-2.4.11\dubbo-admin\target\dubbo-admin-2.4.11\WEB-INF\lib目录下所有即可。
Provider端:
Hello.java
package org.leveret.dubbo.demo.provider;
publicinterfaceHello {
public String sayhello(Stringk);
}
HelloImpl.java
package org.leveret.dubbo.demo.provider;
publicclassHelloImplimplementsHello{
public String sayhello(Stringk) {
return"hello "+k;
}
}
spring-provider.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<beanid="hello"class="org.leveret.dubbo.demo.provider.HelloImpl"/>
<dubbo:applicationname="leveret_provider" />
<dubbo:registryaddress="zookeeper://cancer02:2181"/>
<dubbo:protocolname="dubbo"port="20880"/>
<dubbo:serviceinterface="org.leveret.dubbo.demo.provider.Hello"ref="hello"/>
</beans>
Client.java
package org.leveret.dubbo.demo.provider;
import org.springframework.context.support.ClassPathXmlApplicationContext;
publicclassClient {
publicstaticvoid main(String[]args) throws Exception {
ClassPathXmlApplicationContextcontext=newClassPathXmlApplicationContext(new String[] {"spring-provider.xml"});
context.start();
System.in.read();
}
}
Consumer端:
spring-consumer.xml
<?xmlversion="1.0"encoding="UTF-8"?>
<beansxmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://code.alibabatech.com/schema/dubbo
http://code.alibabatech.com/schema/dubbo/dubbo.xsd">
<dubbo:applicationname="leveret_consumer"/>
<dubbo:registryaddress="zookeeper://cancer02:2181"/>
<dubbo:referenceid="hello"interface="org.leveret.dubbo.demo.provider.Hello"/>
</beans>
Client.java
package org.leveret.dubbo.demo.consumer;
import org.leveret.dubbo.demo.provider.Hello;
import org.springframework.context.support.ClassPathXmlApplicationContext;
publicclassClient {
publicstaticvoid main(String[]args) throws Exception {
ClassPathXmlApplicationContextcontext=newClassPathXmlApplicationContext(new String[] {"spring-consumer.xml" });
context.start();
HellodemoService= (Hello)context.getBean("hello");
Stringhello=demoService.sayhello("tom");
System.out.println(hello);
System.in.read();
}
}