本文共 2932 字,大约阅读时间需要 9 分钟。
Duboo和Spring Boot都是非常优秀的框架,现在它们要结合了。为了简化Dubbo开发集成,阿里Dubbo团队将发布基于Spring Boot的版本,可快速上手Dubbo的分布式开发,并提供了一些准生产环境特性(如安全、健康检查、配置外部化等……)。
如果你还不知道什么是Dubbo,可以去Dubbo官网()花点时间了解下。
下面来看看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 applicationspring.application.name = dubbo-provider-demoserver.port = 9090management.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 Beandubbo.application.id = dubbo-provider-demodubbo.application.name = dubbo-provider-demo## ProtocolConfig Beandubbo.protocol.id = dubbodubbo.protocol.name = dubbodubbo.protocol.port = 12345## RegistryConfig Beandubbo.registry.id = my-registrydubbo.registry.address = N/A
4、最后再提供一个提供者服务启动类
@SpringBootApplicationpublic class DubboProviderDemo { public static void main(String[] args) { SpringApplication.run(DubboProviderDemo.class,args); }}
更多提供者示例代码可参考:
消费者服务用来消费提供者提供的服务,也就是消费者服务调用提供者的服务进行操作。
消费者需要注入提供者的接口对应的Spring Bean实例。
1、定义一个消费者
@RestControllerpublic 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 applicationspring.application.name = dubbo-consumer-demoserver.port = 8080management.port = 8081# Dubbo Config properties## ApplicationConfig Beandubbo.application.id = dubbo-consumer-demodubbo.application.name = dubbo-consumer-demo## ProtocolConfig Beandubbo.protocol.id = dubbodubbo.protocol.name = dubbodubbo.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); }}
更多消费者示例代码可参考:
先启动提供者启动类,再启动消费者启动类,通过访问消费者控制层可调用提供者服务进行消费。
更多与Spring Boot集成的新特性可参考官方文档
项目地址:
看完是不是觉得上手非常简单了,Spring Boot真是快速开发神器。不过,目前该项目还未正式发布,敬请期待,我们也将会持续关注,如果有更进一步消息会及时通知到大家。
面经:
工具:
分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。
转载地址:http://pfuio.baihongyu.com/