javaDEMO
Java 基础 Demo 站: https://www.javastudy.cloud
Java 中高级开发博客: https://www.lixiang.red
Java 学习公众号: java 技术大本营
springboot 集成 dubbo
集成 dubbo 主要有以下几步
1.参考这篇文章配置 zookeeper
https://www.javastudy.cloud/articles/2019/11/06/1573033684821.html
2.建两个 springboot 应用, 一个做提供者, 一个做消费者(也可以用 gradle 多模块,建两个模块)这里 DEMO 使用的是多模块
3. 添加依赖
4. 配置 dubbo-zookeeper 相关信息
5. 编写接口
6.编写测试类
添加依赖
和 dubbo 相关的依赖,添加这两个就可以了, 一个是 dubbo 的, 一个是 zookeeper 的
compile group: 'org.apache.dubbo', name: 'dubbo-spring-boot-starter', version: '2.7.4.1'
compile group: 'org.apache.dubbo', name: 'dubbo-dependencies-zookeeper', version: '2.7.4.1'
另外,因为通常 provider 只是启动 dubbo 提供者,不需要 web 之类的,所以还需要引一个 springboot 的 starter
implementation 'org.springframework.boot:spring-boot-starter'
全总配置文件可见文末的 DEMO 代码
配置 dubbo 和 zookeeper 的信息
provider 端的配置
spring.application.name=dubbo-test-provider
# 这是指使用了@Service 这个注解的实现类所在的包
dubbo.scan.base-packages=com.test.dubbo.provider.service
# Dubbo Protocol
dubbo.protocol.name=dubbo
dubbo.protocol.port=12346
## Dubbo Registry
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.application.owner=lixiang
dubbo.config-center.address=zookeeper://127.0.0.1:2181
dubbo.metadata-report.address=zookeeper://127.0.0.1:2181
consumer 端的配置
spring.application.name=dubbo-consumer
## Dubbo Registry
dubbo.registry.address=zookeeper://127.0.0.1:2181
编写服务提供者
整体目录结构如下所示:
HelloService.java:
public interface HelloService {
public String hello();
}
HelloServiceImpl.java
/**
* 注意这里的service是Dubbo里面的注解,如果要在这里面调用spring的bean
* 需要再加一个@Component注解
*/
@Service
public class HelloServiceImpl implements HelloService {
@Override
public String hello() {
return "hello";
}
}
ProviderApplication.java:
/**
* 注意这里没有使用@SpringBootApplication注解
* 只需要使用@EnableAutoConfiguration这个注解就可以了
* @author https://www.javastudy.cloud
*/
@EnableAutoConfiguration
public class ProviderApplication {
public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
编写测试的类
直接用单元测试来进行测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class ConsumerApplicationTests {
@Reference
HelloService helloService;
@Test
public void contextLoads() {
String hello = helloService.hello();
System.out.println(hello);
}
}
结果输出
先启动 provider 的 man 函数,输出如下:
运行 Consumer 的测试函数输出如下:
可以在 zookeeper 中看到相应的 dubbo 注册的信息
DEMO 总评
Dubbo 做为现在国内流行常用的分布式框架,不仅仅要熟练掌握用法,而且还要深入研究一些原理,服务治理等等,平时在开发中常用到的配置有,配置超时时间,配置启动时不检查提供者等等. 后续还会有更多的 dubboDEMO 发出来,大家一起加油吧!!!
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于