dubbo集成spring Posted 2021-03-03 空山新雨后
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dubbo集成spring相关的知识,希望对你有一定的参考价值。
dubbo集成spring
1.项目依赖
<dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo</artifactId> <version>2.7.5</version> </dependency> <dependency> <groupId>org.apache.dubbo</groupId> <artifactId>dubbo-dependencies-zookeeper</artifactId> <version>2.7.5</version> <type>pom</type> </dependency> <dependency> <groupId>cn.wjs</groupId> <artifactId>dubbo-xml-interface</artifactId> <version>1.0-SNAPSHOT</version> </dependency>
2.服务提供者
resource/spring下添加dubbo-provider.xml:
通过 Spring 配置引用远程服务
<dubbo:application metadata-type="remote" name="demo-provider"/> <dubbo:metadata-report address="zookeeper://127.0.0.1:2181"/> <!-- zk注册中心 --> <dubbo:registry address="zookeeper://127.0.0.1:2181"/> <dubbo:protocol name="dubbo"/> <bean id="demoService" class="cn.wjs.DemoServiceImpl"/> <dubbo:service interface="cn.wjs.DemoService" ref="demoService"/>
DemoServiceImpl:
public class DemoServiceImpl implements DemoService { private static final Logger logger = LoggerFactory.getLogger(DemoServiceImpl.class); public String sayHello(String name) { logger.info("aaa"); return "Hello " + name; } }
public class Application { public static void main(String[] args) throws Exception { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/dubbo-provider.xml"); context.start(); System.in.read(); } }
3.服务消费者
resource/spring目录下添加dubbo-consumer.xml
通过 Spring 配置引用远程服务
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://dubbo.apache.org/schema/dubbo" xmlns="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd http://dubbo.apache.org/schema/dubbo http://dubbo.apache.org/schema/dubbo/dubbo.xsd"> <dubbo:application name="demo-consumer"/> <dubbo:registry address="zookeeper://127.0.0.1:2181"/> <!-- 生成远程服务代理,可以和本地bean一样使用demoService --> <dubbo:reference id="demoService" check="false" interface="cn.wjs.DemoService"/> </beans>
applicaiton:
public class Application { /** * In order to make sure multicast registry works, need to specify ‘-Djava.net.preferIPv4Stack=true‘ before * launch the application */ public static void main(String[] args) throws Exception { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring/dubbo-consumer.xml"); context.start(); DemoService demoService = (DemoService) context.getBean("demoService"); // 获取远程服务代理 String hello = demoService.sayHello("world"); // 执行远程方法 System.out.println(hello); // 显示调用结果 } }
4.启动zookeeper注册中心
zookeeper3.4.14/bin/zkServer.sh start
5.分别启动服务端和消费端
消费者启动成功后输出: hello world
github地址:
服务端: dubbo-xml-provider
消费端: dubbo-xml-consumer
接口: dubbo-xml-interface
https://github.com/wujinsen/dubbo-learning
以上是关于dubbo集成spring的主要内容,如果未能解决你的问题,请参考以下文章
dubbo集成spring
Spring Boot 第七章 Spring Boot 集成 Dubbo
spring boot 集成dubbo
Dubbo--基于Zookeeper服务与Spring集成
玩转Spring Boot 集成Dubbo
深入Spring Boot:快速集成Dubbo + Hystrix