Dubbo在Spring下的使用
来源:互联网 发布:linux 使用socket通信 编辑:程序博客网 时间:2024/06/06 12:25
环境:
zookeeper(10.10.36.126:2181)
dubbo-admin(10.10.36.128:8080)
1、公共接口
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.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.wz</groupId> <artifactId>dubbo-interface</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>dubbo-interface</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> </dependencies></project>
DubboServivce.java
package com.wz.dubbo_interface;public interface DubboServivce {String sayHello(String name);}
2、服务提供方
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.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.wz</groupId> <artifactId>dubbo-provider</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>dubbo-provider</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>com.wz</groupId> <artifactId>dubbo-interface</artifactId> <version>0.0.1-SNAPSHOT</version> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>1.4</version></dependency><dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version></dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.6.1</version></dependency><dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.6.1</version></dependency><dependency> <groupId>org.javassist</groupId> <artifactId>javassist</artifactId> <version>3.15.0-GA</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-aop</artifactId><version>3.1.4.RELEASE</version></dependency><dependency> <groupId>org.springframework</groupId> <artifactId>spring-asm</artifactId> <version>3.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-beans</artifactId><version>3.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>3.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-core</artifactId><version>3.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-expression</artifactId><version>3.1.4.RELEASE</version></dependency><dependency><groupId>org.springframework</groupId><artifactId>spring-web</artifactId><version>3.1.4.RELEASE</version></dependency><dependency><groupId>org.jboss.netty</groupId><artifactId>netty</artifactId><version>3.2.5.Final</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>dubbo</artifactId><version>2.5.3</version><exclusions><exclusion><groupId>org.springframework</groupId><artifactId>spring</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.5</version></dependency><dependency><groupId>com.101tec</groupId><artifactId>zkclient</artifactId><version>0.10</version></dependency> </dependencies></project>
dubbo-provider.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:context="http://www.springframework.org/schema/context"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://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"><context:component-scan base-package="com.wz.dubbo_provider"></context:component-scan><!-- 提供方应用信息,用于计算依赖关系 --><dubbo:application name="dubbo-provider" /><!-- 使用zookeeper注册中心暴露服务地址 --><dubbo:registry address="zookeeper://10.10.36.126:2181" /><!-- 用dubbo协议在20880端口暴露服务 --><dubbo:protocol name="dubbo" port="20880" /><!-- 声明需要暴露的服务接口 --><dubbo:service interface="com.wz.dubbo_interface.DubboServivce" ref="dubboService" /></beans>
DubboServivceImpl.java:
package com.wz.dubbo_provider;import org.springframework.stereotype.Service;import com.wz.dubbo_interface.DubboServivce;@Service("dubboService")public class DubboServivceImpl implements DubboServivce {@Overridepublic String sayHello(String name) {System.out.println("Hello Dubbo: "+name);return "Hello Dubbo: "+name;}}
3、测试提供方
TestProvider.java:
package com.wz.test;import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestProvider {public static void main(String[] args) {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:dubbo-provider.xml");context.start();synchronized (TestProvider.class) {while (true) {try {TestProvider.class.wait();} catch (InterruptedException e) {System.out.println("== synchronized error:" + e);}}}}}
访问http://10.10.36.128:8080/可以看到提供者“dubbo-provider”
4、服务消费方
pom.xml与服务提供方一样
dubbo-consumer.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:context="http://www.springframework.org/schema/context"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://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://code.alibabatech.com/schema/dubbo http://code.alibabatech.com/schema/dubbo/dubbo.xsd"><context:component-scan base-package="com.wz.dubbo_consumer"></context:component-scan><!-- 提供方应用信息,用于计算依赖关系 --><dubbo:application name="dubbo-consumer" /><!-- 使用zookeeper注册中心发现服务地址 --><dubbo:registry address="zookeeper://10.10.36.126:2181" /><!-- 生成远程服务代理,可以和本地bean一样使用dubboService --><dubbo:reference id="dubboService" interface="com.wz.dubbo_interface.DubboServivce" /> </beans>
DubboConsumer.java:
package com.wz.dubbo_consumer;import javax.annotation.PostConstruct;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import com.wz.dubbo_interface.DubboServivce;@Componentpublic class DubboConsumer {@Autowiredprivate DubboServivce dubboServivce;@PostConstructpublic void localSayHello(){dubboServivce.sayHello("wangzi");}}
5、测试消费方
TestConsumer.java:
package com.wz.test;import org.springframework.context.support.ClassPathXmlApplicationContext;public class TestConsumer{public static void main(String[] args) {ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:dubbo-consumer.xml");context.start();synchronized (TestConsumer.class) {while (true) {try {TestConsumer.class.wait();} catch (InterruptedException e) {System.out.println("== synchronized error:" + e);}}}}}
访问http://10.10.36.128:8080/可以看到消费者“dubbo-consumer”
源码下载:点击打开链接
0 0
- Dubbo在Spring下的使用
- spring的InitializingBean在dubbo中的使用
- spring下的dubbo+zookeeper的helloworld
- 在jdk8环境下使用dubbo-admin
- Dubbo在Spring和Spring Boot中的使用
- Dubbo在Spring和Spring Boot中的使用
- Dubbo在Spring和Spring Boot中的使用
- dubbo+zookeeper+spring+springMVC+mybatis的使用
- dubbo+zookeeper+spring+springMVC+mybatis的使用
- 使用spring-boot集成dubbo的日志
- 在Spring的环境下使用SpringMVC
- Spring+Struts2+Dubbo框架下使用webservice接口服务
- 在Spring项目中集成使用dubbo实现分布式服务
- dubbo 在Spring、SpringMvc、Springboot中混合使用
- 在Spring的环境下使用Spring MVC
- spring+zookeeper+dubbo使用实例
- Dubbo与spring-boot使用
- spring 4.x 使用dubbo http协议的一个问题
- JavaWeb项目中调用dll动态链接库
- 策略模式(行为型)
- Unity3D 使用陀螺仪 检查手机方向 设置固定的旋转角度
- 带EditText的AlertDialog 白色主题 拿来就用
- theano tutorial -- 用theano实现逻辑回归LR(三)theano实现LR算法
- Dubbo在Spring下的使用
- xv6分析--mkfs源代码注释
- 电话拨号器(案例)
- 函数参数三种传递方式的区别
- 超声波引导系统开源(八)工程代码
- 给 Android 开发者的 RxJava 详解
- 三、VMware虚拟机下Ubuntu网络配置(桥接模式)
- 解决Navicat 报错:1130-host ... is not allowed to connect to this MySql server,MySQL
- 利用dispatch_once创建单例