一、基础信息配置
1、1 虚拟机硬件配置
1、2虚拟机软件配置(准备三台机器)
1、2、1 公共配置
[root@zk11 ~]# cat /etc/redhat-release CentOS release 6.7 (Final) [root@zk11 ~]# uname -r 2.6.32-573.el6.x86_64 [root@zk11 ~]# cat /etc/sysconfig/i18n LANG="en_US.UTF-8"
1、2 、2三台机器各自配置
1、2、2、1 ZK11机器
[root@zk11 ~]# hostname zk11 [root@zk11 ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=zk11 #对外提供IP,这里简称外网IP [root@zk11 ~]# ifconfig eth0|awk -F '[ :]+' 'NR==2{print $4}' 10.0.0.11 #对内提供IP,这里简称内网IP [root@zk11 ~]# ifconfig eth1|awk -F '[ :]+' 'NR==2{print$4}' 172.16.1.11
1、2、2、2 ZK12机器
[root@zk12~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=zk12 [root@zk12 ~]# ifconfig eth0|awk -F '[ :]+' 'NR==2{print $4}' 10.0.0.12 [root@zk12 ~]# ifconfig eth1|awk -F '[ :]+' 'NR==2{print$4}' 172.16.1.12
1、2、2、3 ZK13机器
[root@zk13 ~]# hostname zk13 [root@zk13 ~]# cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=zk13 [root@zk13 ~]# ifconfig eth0|awk -F '[ :]+' 'NR==2{print$4}' 10.0.0.13 [root@zk13 ~]# ifconfig eth1|awk -F '[ :]+' 'NR==2{print$4}' 172.16.1.13
1、2、3建立安装部署文件目录
#各个安装包上传目录 [root@zk11 ~]# mkdir -p /home/llyweb/tools/ #各个安装包软链接目录 [root@zk11 ~]# mkdir /application/
二、Zookeeper3.4.5部署
2、1三台机器共同配置
2、1、1上传JDK以及zookeeper
[root@zk11 tools]# pwd /home/llyweb/tools [root@zk11 tools]# ll jdk-7u79-linux-x64.tar.gzzookeeper-3.4.5.tar.gz -rw-r--r-- 1 root root 153512879 Apr 18 15:22jdk-7u79-linux-x64.tar.gz -rw-r--r-- 1 root root 16402010 Apr 18 15:19 zookeeper-3.4.5.tar.gz
2、1、2安装JDK及配置环境变量
参考“java的maven工程部署到linux的前半部分,
http://ylcodes01.blog.51cto.com/5607366/1774050”
2、1、3三台机器共同操作配置
[root@zk11 tools]# pwd /home/llyweb/tools [root@zk11 tools]# tar -zxf zookeeper-3.4.5.tar.gz [root@zk11 tools]# ls -ld zookeeper-3.4.5 drwxr-xr-x 11 root root 4096 Apr 18 15:33 zookeeper-3.4.5 [root@zk11 tools]# ln -s/home/llyweb/tools/zookeeper-3.4.5/ /application/zookeeper [root@zk11 zookeeper]# mkdir data [root@zk11 zookeeper]# ls -ld/application/zookeeper/data/ drwxr-xr-x 3 root root 4096 Apr 18 17:42/application/zookeeper/data/ [root@zk11 conf]# pwd /application/zookeeper/conf [root@zk11 conf]# cp zoo_sample.cfg zoo.cfg #编辑zoo.cfg文件 #修改dataDir为 dataDir=/application/zookeeper/data #最下面加入 server.1=10.0.0.11:2888:3888 server.2=10.0.0.12:2888:3888 server.3=10.0.0.13:2888:3888
2、2 各个机器配置
2、2、1 ZK11-10.0.0.11配置
[root@zk11 zookeeper]# echo "1" >/application/zookeeper/data/myid
2、2、2 ZK12-10.0.0.12配置
[root@zk12 tools]# echo "2" >/application/zookeeper/data/myid
2、2、3 ZK13-10.0.0.13配置
[root@zk13 ~]# echo "3" >/application/zookeeper/data/myid
2、2、4注意事项
上述三者机器的写入/application/zookeeper/data/myid中的数字1、2、3一定要对应 “2、1、3三台机器共同操作配置”中的 server.1=10.0.0.11:2888:3888 server.2=10.0.0.12:2888:3888 server.3=10.0.0.13:2888:3888
2、3测试部署
2、3、1分别启动三台机器
[root@zk11 zookeeper]# /bin/sh/application/zookeeper/bin/zkServer.sh start JMX enabled by default Using config: /application/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@zk12 tools]# /bin/sh /application/zookeeper/bin/zkServer.shstart JMX enabled by default Using config: /application/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@zk13 ~]# /bin/sh/application/zookeeper/bin/zkServer.sh start JMX enabled by default Using config: /application/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED
2、3、2检查三台机器状态
#zookeeper推荐奇数型集群配置,下述三者机器的主节点不一定是哪台,在执行下述命令的时候可能会报错,猜测是还没检测好节点,稍等一会即可看到下述成功标识。
[root@zk11 zookeeper]# /bin/sh/application/zookeeper/bin/zkServer.sh status JMX enabled by default Using config: /application/zookeeper/bin/../conf/zoo.cfg Mode: follower [root@zk12 tools]# /bin/sh/application/zookeeper/bin/zkServer.sh status JMX enabled by default Using config: /application/zookeeper/bin/../conf/zoo.cfg Mode: leader [root@zk13 ~]# /bin/sh/application/zookeeper/bin/zkServer.sh status JMX enabled by default Using config: /application/zookeeper/bin/../conf/zoo.cfg Mode: follower [root@zk11 zookeeper]# ps -ef|grep zookeeper|grep -v grep
root 2625 1 0 19:42 pts/2 00:00:01 /application/jdk/bin/java-Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp/application/zookeeper/bin/../build/classes:/application/zookeeper/bin/../build/lib/*.jar:/application/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/application/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/application/zookeeper/bin/../lib/netty-3.2.2.Final.jar:/application/zookeeper/bin/../lib/log4j-1.2.15.jar:/application/zookeeper/bin/../lib/jline-0.9.94.jar:/application/zookeeper/bin/../zookeeper-3.4.5.jar:/application/zookeeper/bin/../src/java/lib/*.jar:/application/zookeeper/bin/../conf:.:/application/jdk/lib/dt.jar:/application/jdk/lib/tools.jar-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=falseorg.apache.zookeeper.server.quorum.QuorumPeerMain/application/zookeeper/bin/../conf/zoo.cfg
[root@zk12 tools]# ps -ef|grep zookeeper|grep -v grep
root 2317 1 0 19:42 pts/1 00:00:01 /application/jdk/bin/java-Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp/application/zookeeper/bin/../build/classes:/application/zookeeper/bin/../build/lib/*.jar:/application/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/application/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/application/zookeeper/bin/../lib/netty-3.2.2.Final.jar:/application/zookeeper/bin/../lib/log4j-1.2.15.jar:/application/zookeeper/bin/../lib/jline-0.9.94.jar:/application/zookeeper/bin/../zookeeper-3.4.5.jar:/application/zookeeper/bin/../src/java/lib/*.jar:/application/zookeeper/bin/../conf:.:/application/jdk/lib/dt.jar:/application/jdk/lib/tools.jar-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=falseorg.apache.zookeeper.server.quorum.QuorumPeerMain/application/zookeeper/bin/../conf/zoo.cfg
[root@zk13 ~]# ps -ef|grep zookeeper|grep -v grep
root 2297 1 0 19:41 pts/1 00:00:01 /application/jdk/bin/java-Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp/application/zookeeper/bin/../build/classes:/application/zookeeper/bin/../build/lib/*.jar:/application/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/application/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/application/zookeeper/bin/../lib/netty-3.2.2.Final.jar:/application/zookeeper/bin/../lib/log4j-1.2.15.jar:/application/zookeeper/bin/../lib/jline-0.9.94.jar:/application/zookeeper/bin/../zookeeper-3.4.5.jar:/application/zookeeper/bin/../src/java/lib/*.jar:/application/zookeeper/bin/../conf:.:/application/jdk/lib/dt.jar:/application/jdk/lib/tools.jar-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=falseorg.apache.zookeeper.server.quorum.QuorumPeerMain/application/zookeeper/bin/../conf/zoo.cfg
2、3、3停止三台机器(仅测试)
[root@zk11 zookeeper]# /bin/sh/application/zookeeper/bin/zkServer.sh stop JMX enabled by default Using config: /application/zookeeper/bin/../conf/zoo.cfg Stopping zookeeper ... STOPPED [root@zk11 zookeeper]# ps -ef|grep zookeeper|grep -v grep [root@zk11 zookeeper]# /bin/sh/application/zookeeper/bin/zkServer.sh start JMX enabled by default Using config: /application/zookeeper/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@zk11 zookeeper]# /bin/sh/application/zookeeper/bin/zkServer.sh status JMX enabled by default Using config: /application/zookeeper/bin/../conf/zoo.cfg Error contacting service. It is probably not running. #出现2、3、2提到的情况 [root@zk11 zookeeper]# /bin/sh/application/zookeeper/bin/zkServer.sh status JMX enabled by default Using config: /application/zookeeper/bin/../conf/zoo.cfg Mode: follower
2、3、4命令测试
[root@zk11 zookeeper]# cd bin/ [root@zk11 bin]# /bin/sh zkCli.sh [zk: localhost:2181(CONNECTED) 0] ls #显示下述是表示不支持此操作 #下述是zookeeper中所有的命令 ZooKeeper -server host:port cmd args connecthost:port get path[watch] ls path[watch] set pathdata [version] rmr path delquota[-n|-b] path quit printwatches on|off create [-s][-e] path data acl stat path[watch] close ls2 path[watch] history listquotapath setAcl pathacl getAcl path sync path redo cmdno addauthscheme auth delete path[version] setquota-n|-b val path [zk: localhost:2181(CONNECTED) 1] ls /zookeeper [quota] [zk: localhost:2181(CONNECTED) 3] ls /zookeeper/quota [] [zk: localhost:2181(CONNECTED) 4] create /test1 test1 Created /test1 [zk: localhost:2181(CONNECTED) 5] get /test1 test1 cZxid = 0x600000003 ctime = Tue Apr 18 19:50:10 CST 2017 mZxid = 0x600000003 mtime = Tue Apr 18 19:50:10 CST 2017 pZxid = 0x600000003 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 5 numChildren = 0 [zk: localhost:2181(CONNECTED) 6] create /test1/test2test2 Created /test1/test2 [zk: localhost:2181(CONNECTED) 7] get /test1/test2 test2 cZxid = 0x600000004 ctime = Tue Apr 18 19:50:27 CST 2017 mZxid = 0x600000004 mtime = Tue Apr 18 19:50:27 CST 2017 pZxid = 0x600000004 cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 5 numChildren = 0 [zk: localhost:2181(CONNECTED) 8] set /test1/test2 test22 cZxid = 0x600000004 ctime = Tue Apr 18 19:50:27 CST 2017 mZxid = 0x600000005 mtime = Tue Apr 18 19:50:40 CST 2017 pZxid = 0x600000004 cversion = 0 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 6 numChildren = 0 [zk: localhost:2181(CONNECTED) 9] get /test1/test2 test22 cZxid = 0x600000004 ctime = Tue Apr 18 19:50:27 CST 2017 mZxid = 0x600000005 mtime = Tue Apr 18 19:50:40 CST 2017 pZxid = 0x600000004 cversion = 0 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 6 numChildren = 0 [zk: localhost:2181(CONNECTED) 10] create/test1/test2/test3 test3 Created /test1/test2/test3 [zk: localhost:2181(CONNECTED) 11] delete /test1 Node not empty: /test1 [zk: localhost:2181(CONNECTED) 12] delete/test1/test2/test3 [zk: localhost:2181(CONNECTED) 13] ls /test1/test2 [] [zk: localhost:2181(CONNECTED) 14] ls /test1 [test2] #zk12机器操作 [zk: localhost:2181(CONNECTED) 0] get /test1 test1 cZxid = 0x600000003 ctime = Tue Apr 18 19:50:10 CST 2017 mZxid = 0x600000003 mtime = Tue Apr 18 19:50:10 CST 2017 pZxid = 0x600000004 cversion = 1 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 5 numChildren = 1 #zk13机器操作 [zk: localhost:2181(CONNECTED) 0] get /test1/test2 test22 cZxid = 0x600000004 ctime = Tue Apr 18 19:50:27 CST 2017 mZxid = 0x600000005 mtime = Tue Apr 18 19:50:40 CST 2017 pZxid = 0x600000008 cversion = 2 dataVersion = 1 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 6 numChildren = 0 #zk11机器操作 [zk: localhost:2181(CONNECTED) 15] rmr /test1 [zk: localhost:2181(CONNECTED) 16] get /test1 Node does not exist: /test1
三、DUBBO2.5.3部署
3、1上传Tomcat和dubbo-admin.war
3、2安装部署dubbo
3、2、1部署Tomcat
参考“java的maven工程部署到linux的前半部分,
http://ylcodes01.blog.51cto.com/5607366/1774050”
3、1、2只在ZK11机器部署dubbo
3、1、2、1dubbo-admin.war说明
dubbo-admin.war可在下载dubbo源码后,通过maven编译生成对应版本的dubbo-admin.war,也可搜索出已打包好的dubbo-admin.war。
3、1、2、2部署dubbo-admin.war
[root@zk11 tools]# rm -rf/application/tomcat/webapps/ROOT/* [root@zk11 tools]# unzip dubbo-admin.war -d/application/tomcat/webapps/ROOT/ [root@zk11 WEB-INF]# pwd /application/tomcat/webapps/ROOT/WEB-INF [root@zk11 WEB-INF]# cp dubbo.propertiesdubbo.properties.ori [root@zk11 WEB-INF]# cat dubbo.properties dubbo.registry.address=zookeeper://10.0.0.11:2181?backup=10.0.0.12:2181,10.0.0.13:2181 dubbo.admin.root.password=root dubbo.admin.guest.password=guest
3、1、2、3启动Tomcat并访问dubbo
#在启动此Tomcat之前记得在/etc/hosts的最后加入127.0.0.1 zk11 [root@zk11 application]# /bin/sh/application/tomcat/bin/startup.sh >/dev/null 2>&1 [root@zk11 application]# ps -ef|grep java|grep -v grep
root 2708 1 0 19:47 pts/2 00:00:04 /application/jdk/bin/java-Dzookeeper.log.dir=. -Dzookeeper.root.logger=INFO,CONSOLE -cp/application/zookeeper/bin/../build/classes:/application/zookeeper/bin/../build/lib/*.jar:/application/zookeeper/bin/../lib/slf4j-log4j12-1.6.1.jar:/application/zookeeper/bin/../lib/slf4j-api-1.6.1.jar:/application/zookeeper/bin/../lib/netty-3.2.2.Final.jar:/application/zookeeper/bin/../lib/log4j-1.2.15.jar:/application/zookeeper/bin/../lib/jline-0.9.94.jar:/application/zookeeper/bin/../zookeeper-3.4.5.jar:/application/zookeeper/bin/../src/java/lib/*.jar:/application/zookeeper/bin/../conf:.:/application/jdk/lib/dt.jar:/application/jdk/lib/tools.jar-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.local.only=falseorg.apache.zookeeper.server.quorum.QuorumPeerMain/application/zookeeper/bin/../conf/zoo.cfg
root 2934 1 58 20:07 pts/0 00:00:49 /application/jdk/bin/java-Djava.util.logging.config.file=/application/tomcat/conf/logging.properties-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager-Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=/application/tomcat/endorsed-classpath/application/tomcat/bin/bootstrap.jar:/application/tomcat/bin/tomcat-juli.jar-Dcatalina.base=/application/tomcat -Dcatalina.home=/application/tomcat-Djava.io.tmpdir=/application/tomcat/temp org.apache.catalina.startup.Bootstrapstart
四、Java整合DUBBO
4、1服务端test1和客户端test2目录结构
4、2服务端test1代码配置
4、2、1Java代码部分
package com.unj.dubbotest.provider;
import java.util.List;
public interface DemoService {
StringsayHello(String name);
public ListgetUsers();
}
package com.unj.dubbotest.provider;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
public class DemoServiceImpl implements DemoService{
public StringsayHello(String name) {
return"Hello " + name;
}
publicList<User> getUsers() {
List<User> list = new ArrayList<User>();
User u1 =new User();
u1.setName("jack");
u1.setAge(20);
u1.setSex("男");
User u2 =new User();
u2.setName("tom");
u2.setAge(21);
u2.setSex("女");
User u3 =new User();
u3.setName("rose");
u3.setAge(19);
u3.setSex("女");
list.add(u1);
list.add(u2);
list.add(u3);
returnlist;
}
}
package com.unj.dubbotest.provider;
import java.io.Serializable;
/**
* 一定要实现序列化接口Serializable
* @author pc
*
*/
public class User implements Serializable{
private staticfinal long serialVersionUID = 1L;
private Stringname;
private Integerage;
private Stringsex;
public StringgetName() {
return name;
}
public voidsetName(String name) {
this.name =name;
}
public StringgetSex() {
return sex;
}
public voidsetSex(String sex) {
this.sex =sex;
}
public IntegergetAge() {
return age;
}
public voidsetAge(Integer age) {
this.age =age;
}
}
package com.unj.dubbotest.provider;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
public class Provider {
public staticvoid main(String[] args) throws Exception {
ClassPathXmlApplicationContext context = newClassPathXmlApplicationContext(new String[]{"applicationContext.xml"});
context.start();
System.in.read(); // 为保证服务一直开着,利用输入流的阻塞来模拟
}
}
4、2、2XML代码部分
applicationContext.xml
<?xml version="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 "> <!-- 具体的实现bean --> <beanid="demoService"class="com.unj.dubbotest.provider.DemoServiceImpl" /> <!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="xixi_provider" /> <!-- 使用multicast广播注册中心暴露服务地址 <dubbo:registry address="multicast://224.5.6.7:1234"/>--> <!-- 使用zookeeper注册中心暴露服务地址 --> <dubbo:registry address="zookeeper://10.0.0.11:2181"/> <!-- 用dubbo协议在20880端口暴露服务 --> <dubbo:protocol name="dubbo" port="20880"/> <!-- 声明需要暴露的服务接口 --> <dubbo:serviceinterface="com.unj.dubbotest.provider.DemoService"ref="demoService" /> </beans>
pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>test1</groupId> <artifactId>test1</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>test1</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.18.1-GA</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.15</version> <exclusions> <exclusion> <groupId>com.sun.jdmk</groupId> <artifactId>jmxtools</artifactId> </exclusion> <exclusion> <groupId>com.sun.jmx</groupId> <artifactId>jmxri</artifactId> </exclusion> <exclusion> <artifactId>jms</artifactId> <groupId>javax.jms</groupId> </exclusion> <exclusion> <artifactId>mail</artifactId> <groupId>javax.mail</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> <version>2.5.6.SEC03</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.6</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.5</version> <type>pom</type> </dependency> <dependency> <groupId>com.101tec</groupId> <artifactId>zkclient</artifactId> <version>0.4</version> </dependency> </dependencies> </project>
4、3客户端test2代码部分
4、3、1Java代码部分
package com.unj.dubbotest.provider;
import java.util.List;
public interface DemoService {
StringsayHello(String name);
public ListgetUsers();
}
package com.unj.dubbotest.provider;
import java.util.List;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
import com.unj.dubbotest.provider.DemoService;
public class Consumer {
public staticvoid main(String[] args) throws Exception {
ClassPathXmlApplicationContext context = newClassPathXmlApplicationContext(
newString[] {"applicationContext.xml"});
context.start();
DemoServicedemoService = (DemoService) context.getBean("demoService"); //
Stringhello = demoService.sayHello("tom"); //
System.out.println(hello); //
//
List<User> list = demoService.getUsers();
if (list !=null && list.size() > 0) {
for(int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
//System.out.println(demoService.hehe());
System.in.read();
}
}
4、3、2XML代码部分
applicationContext.xml
<?xml version="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="hehe_consumer" /> <!-- 使用zookeeper注册中心暴露服务地址 --> <!--<dubbo:registry address="multicast://224.5.6.7:1234" />--> <dubbo:registry address="zookeeper://10.0.0.11:2181"/> <!-- 生成远程服务代理,可以像使用本地bean一样使用demoService --> <dubbo:reference id="demoService" interface="com.unj.dubbotest.provider.DemoService" /> </beans>
pom.xml
<projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>test2</groupId> <artifactId>test2</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>test2</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> </dependency> <dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.18.1-GA</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.15</version> <exclusions> <exclusion> <groupId>com.sun.jdmk</groupId> <artifactId>jmxtools</artifactId> </exclusion> <exclusion> <groupId>com.sun.jmx</groupId> <artifactId>jmxri</artifactId> </exclusion> <exclusion> <artifactId>jms</artifactId> <groupId>javax.jms</groupId> </exclusion> <exclusion> <artifactId>mail</artifactId> <groupId>javax.mail</groupId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring</artifactId> <version>2.5.6.SEC03</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.6</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.1</version> </dependency> <dependency> <groupId>com.github.adyliu</groupId> <artifactId>zkclient</artifactId> <version>2.0</version> </dependency> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.4.5</version> <type>pom</type> </dependency> <dependency> <groupId>test1</groupId> <artifactId>test1</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> </dependencies> </project>
4、4运行服务
#记得一定先要clean install服务端Test1,再clean install客户端Test1
#先运行Test1服务端Provider,再运行Test2客户端Consumer
#结果为
Hello tom
com.unj.dubbotest.provider.User@4b93e13a
com.unj.dubbotest.provider.User@59a7cd99
com.unj.dubbotest.provider.User@17ab25cb
转载于:https://blog.51cto.com/ylcodes01/1917527