dubbo框架搭建,测试成功。
dubbo的介绍就不说了,下面直接进入主题。
新建两个项目,一个服务端dubbos项目,一个消费端dubboc项目。
先部署服务端。
首先新建接口DubboServer和实现类DubboServerImpl.随便新建一个接口,以便测试。
DubboServer.java
public interface DubboServer { public String testDubboServer(); public String testHelloDubboServer(String str); }
DubboServerImpl.java
public class DubboServerImpl implements DubboServer { public String testDubboServer() { return "This is DubboServer."; } public String testHelloDubboServer(String str) { return "Hello Dubbo "+str; } }
服务端引入配置文件
spring-config-dubbo.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="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 id="dubboServer" class="com.jiacl.DubboServerImpl"></bean> <!-- 提供方应用信息,用于计算依赖关系 --> <dubbo:application name="xw-dubbo-server" /> <!-- 消息中心地址 --> <dubbo:registry address="zookeeper://localhost:2181" check="false"/> <!-- 用dubbo协议在20880端口暴露服务 --> <dubbo:protocol name="dubbo" port="20880" /> <!-- 声明接口 --> <dubbo:service interface="com.jiacl.DubboServer" ref="dubboServer" /> </beans>
然后安装启动zookeeper,具体安装可以搜别的博客。
public class ZooKeeperMain { public static void main(String[] args) throws InterruptedException { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"spring-config-dubbo.xml"}); context.start(); System.out.println("--------------------------dubbo Service Start-----------------------------------"); while (true) { Thread.sleep(5000); } } }
在这里会有一个问题,就是xml里面的dubbo标签识别不了,所以解决办法:
http://www.cnblogs.com/tietazhan/p/5458150.html
然后部署消费端
消费端其实只需要在zookeeper取出服务端暴露的接口就行了。使用配置文件testConfig.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:p="http://www.springframework.org/schema/p" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"> <dubbo:application name="xw-dubbo-client" /> <!-- 消息中心地址 --> <dubbo:registry address="zookeeper://localhost:2181" check="false"/> <!-- 声明接口 --> <dubbo:reference id="dubboServer" interface="com.jiacl.DubboServer" /> </beans>
再写一个测试main。
public class DubboClientTest { public static void main(String[] args) throws Exception { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( new String[] { "testConfig.xml" }); context.start(); DubboServer demoService = (DubboServer) context.getBean("dubboServer"); String s = demoService.testDubboServer(); System.out.println(s); String ss = demoService.testHelloDubboServer(s); System.out.println(ss); } }
然后运行main函数,不报错就说明项目部署完成。
在项目中引入的jar包参考
<dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>4.2.5.RELEASE</version> </dependency> <!-- SPRING--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>4.2.5.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>4.2.5.RELEASE</version> </dependency> <!-- ZOOKEEPER --> <dependency> <groupId>org.apache.zookeeper</groupId> <artifactId>zookeeper</artifactId> <version>3.5.1-alpha</version> </dependency> <dependency> <groupId>com.github.sgroschupf</groupId> <artifactId>zkclient</artifactId> <version>0.1</version> </dependency> <!-- DUBBO --> <dependency> <groupId>com.alibaba</groupId> <artifactId>dubbo</artifactId> <version>2.5.3</version> </dependency>