Duboo和Spring Boot都是非常优秀的框架,现在它们要结合了。为了简化Dubbo开发集成,阿里Dubbo团队将发布基于Spring Boot的版本,可快速上手Dubbo的分布式开发,并提供了一些准生产环境特性(如安全、健康检查、配置外部化等……)。

如果你还不知道什么是Dubbo,可以去Dubbo官网(http://dubbo.io)花点时间了解下。

下面来看看Dubbo & Spring Boot集成是如何做的!

用过Dubbo的都知道,分布式场景中有两个重要的角色,一个是提供者,一个是消费者。

如何实现提供者服务

1、定义一个提供者接口:DemoService

public interface DemoService {

    String sayHello(String name);

}

2、实现一个提供者,并实现DemoService接口

@Service(
version = "1.0.0",
application = "${dubbo.application.id}",
protocol = "${dubbo.protocol.id}",
registry = "${dubbo.registry.id}"
)
public class DefaultDemoService implements DemoService { public String sayHello(String name) {
return "Hello, " + name + " (from Spring Boot)";
} }

注意,提供者服务由注解@Service定义,其参数配置在application文件中,见下方定义。

3、然后在appliation文件中添加配置

# Spring boot application
spring.application.name = dubbo-provider-demo
server.port = 9090
management.port = 9091 # Base packages to scan Dubbo Components (e.g @Service , @Reference)
dubbo.scan.basePackages = com.alibaba.boot.dubbo.demo.provider.service # Dubbo Config properties
## ApplicationConfig Bean
dubbo.application.id = dubbo-provider-demo
dubbo.application.name = dubbo-provider-demo ## ProtocolConfig Bean
dubbo.protocol.id = dubbo
dubbo.protocol.name = dubbo
dubbo.protocol.port = 12345 ## RegistryConfig Bean
dubbo.registry.id = my-registry
dubbo.registry.address = N/A

4、最后再提供一个提供者服务启动类

@SpringBootApplication
public class DubboProviderDemo { public static void main(String[] args) { SpringApplication.run(DubboProviderDemo.class,args); } }

更多提供者示例代码可参考:https://github.com/dubbo/dubbo-spring-boot-project/tree/master/dubbo-spring-boot-samples/dubbo-spring-boot-sample-provider

如何实现消费者服务

消费者服务用来消费提供者提供的服务,也就是消费者服务调用提供者的服务进行操作。

消费者需要注入提供者的接口对应的Spring Bean实例。

1、定义一个消费者

@RestController
public class DemoConsumerController { @Reference(version = "1.0.0",
application = "${dubbo.application.id}",
url = "dubbo://localhost:12345")
private DemoService demoService; @RequestMapping("/sayHello")
public String sayHello(@RequestParam String name) {
return demoService.sayHello(name);
} }

@Reference注解用来注入提供者服务的Spring Bean实例,其参数配置依然在application文件中,见下方定义。

2、然后在appliation文件中添加配置

# Spring boot application
spring.application.name = dubbo-consumer-demo
server.port = 8080
management.port = 8081 # Dubbo Config properties
## ApplicationConfig Bean
dubbo.application.id = dubbo-consumer-demo
dubbo.application.name = dubbo-consumer-demo ## ProtocolConfig Bean
dubbo.protocol.id = dubbo
dubbo.protocol.name = dubbo
dubbo.protocol.port = 12345

3、最后再提供一个消费者服务启动类

@SpringBootApplication(scanBasePackages = "com.alibaba.boot.dubbo.demo.consumer.controller")
public class DubboConsumerDemo { public static void main(String[] args) { SpringApplication.run(DubboConsumerDemo.class,args); } }

更多消费者示例代码可参考:https://github.com/dubbo/dubbo-spring-boot-project/blob/master/dubbo-spring-boot-samples/dubbo-spring-boot-sample-consumer

先启动提供者启动类,再启动消费者启动类,通过访问消费者控制层可调用提供者服务进行消费。

更多与Spring Boot集成的新特性可参考官方文档

项目地址:https://github.com/dubbo/dubbo-spring-boot-project

看完是不是觉得上手非常简单了,Spring Boot真是快速开发神器。不过,目前该项目还未正式发布,敬请期待,我们也将会持续关注,如果有更进一步消息会及时通知到大家。

推荐阅读


教程:史上最强 Spring Boot & Cloud 教程汇总

工具:推荐一款在线创作流程图、思维导图软件

扫描关注我们的微信公众号,回复 “666” 可获取一套Java并发编程高清视频教程。

最新文章

  1. Ubuntu16.04下安装.NET Core
  2. 【C语言学习】《C Primer Plus》第4章 字符串和格式化输入/输出
  3. 使用chrome查看网页上效果的实现方式
  4. iOS-----类和对象,nil/Nil/NULL的区别
  5. 01背包问题:POJ3624
  6. Asp.net Core 1.0.1升级到Asp.net Core 1.1.0 Preview版本发布到Windows Server2008 R2 IIS中的各种坑
  7. 【HDU 1445】Ride to School
  8. C# 网页自动填表自动登录(转)
  9. linux fork函数浅析
  10. iOS开发中的MVC设计模式
  11. oracle 计算两个时间之间的月份差,相差几个星期,相差多少天
  12. 【C#】【SHARE】The registering of global hotkeys
  13. druid 连接kafuk
  14. 如何成为一名JAVAEE软件工程师?(前言)
  15. Taurus.MVC 支持Asp.Net Core 的过程
  16. Error: listen EADDRINUSE :::3000
  17. 解决微信浏览器无法使用window.location.reload刷新页面
  18. asp.net WebService如何去掉asmx后缀
  19. luogu 4377 Talent show 01分数规划+背包dp
  20. vue.js插槽

热门文章

  1. NX二次开发-基于MFC界面对话框与NX交互的开发
  2. Angularjs 1.3在页面中输出带Html标记的文本
  3. 杂项-Conda:Conda
  4. 剑指offer——43数据流中的中位数
  5. REST Client实际应用记录
  6. 三(1)、springcloud之Eureka服务注册与发现
  7. js面向对象(一)---基本的概念、属性、方法
  8. Spring对junit的整合
  9. opencv2.4.9+vs2012安装配置
  10. 机器学习改善Interpretability的几个技术