好消息:Dubbo & Spring Boot要来了
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);
}
}
如何实现消费者服务
消费者服务用来消费提供者提供的服务,也就是消费者服务调用提供者的服务进行操作。
消费者需要注入提供者的接口对应的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);
}
}
先启动提供者启动类,再启动消费者启动类,通过访问消费者控制层可调用提供者服务进行消费。
更多与Spring Boot集成的新特性可参考官方文档
看完是不是觉得上手非常简单了,Spring Boot真是快速开发神器。不过,目前该项目还未正式发布,敬请期待,我们也将会持续关注,如果有更进一步消息会及时通知到大家。
推荐阅读
教程:史上最强 Spring Boot & Cloud 教程汇总
扫描关注我们的微信公众号,回复 “666” 可获取一套Java并发编程高清视频教程。
好消息:Dubbo & Spring Boot要来了的更多相关文章
- 手撕面试官系列(三):微服务架构Dubbo+Spring Boot+Spring Cloud
文章首发于今日头条:https://www.toutiao.com/i6712696637623370248/ 直接进入主题 Dubbo (答案领取方式见侧边栏) Dubbo 中 中 zookeepe ...
- spring boot 整合dubbo
dubbo与springboot的集成和使用dubbo-spring-boot-starter SpringBoot整合Dubbo2.5.10(官方的spring-boot-starter0.1.0) ...
- Spring Boot Dubbo Dubbok spring cloud
比较spring cloud和dubbo,各自的优缺点是什么 - 趁年轻再疯狂一次吧 - CSDN博客 https://blog.csdn.net/u010664947/article/details ...
- Spring Boot 2.x 基础案例:整合Dubbo 2.7.3+Nacos1.1.3(最新版)
1.概述 本文将介绍如何基于Spring Boot 2.x的版本,通过Nacos作为配置与注册中心,实现Dubbo服务的注册与消费. 整合组件的版本说明: Spring Boot 2.1.9 Dubb ...
- (转)阿里官方提供的dubbo-spring-boot-starter 1.0.1 整合的dubbo 2.6.0和spring boot 1.5.9 案例
作者:许浩_5e9f链接:https://www.jianshu.com/p/5381cc8876e3來源:简书著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. springboo ...
- Spring Boot Dubbo 应用启停源码分析
作者:张乎兴 来源:Dubbo官方博客 背景介绍 Dubbo Spring Boot 工程致力于简化 Dubbo | grep tid | grep -v "daemon" tid ...
- dubbo学习(十)spring boot整合dubbo
工程搭建与配置 生产者 1.创建一个生产者的spring boot工程,配置好依赖,并把接口实现类文件夹复制到新的工程里 2.pom.xml配置dubbo的相关依赖 <!-- Dubbo Spr ...
- Spring boot集成RabbitMQ(山东数漫江湖)
RabbitMQ简介 RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出 ...
- Spring Boot整合Dubbo2.x,解决其中遇到的坑
Dubbo了解 a high-performance, java based open source RPC framework. Dubbo官网 源码 文档 快速知道用法 本地服务 Spring 配 ...
随机推荐
- TotoiseSVN + VisualSVN Server 使用
1.SVN中 项目文件版本 分服务器的版本和本地的版本.服务器版本(SVN会自动给每个版本加版本号的)永远都是最新的. 2.svn的更新,在文件不冲突的时候,会自动将服务器的版本和本地的版本合并. ...
- 穿过代理服务器取远程用户真实IP地址
public static string GetIP() { string str = ""; //穿过代理服务器取远程用户真实IP地址: if (System.Web.HttpC ...
- Spellchecker inspection helps locate typos and misspelling in your code, comments and literals, and fix them in one click
Pycharm设置 Pycharm总是很多的拼写检查波拉线 Spellchecker inspection helps locate typos and misspelling in your cod ...
- 23、css的定位问题
1.positon:relative相对定位 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" & ...
- c# 使用NOPI 操作Excel
最近项目需要导出Excel,找来找去,微软有自己的Excel组件 using Microsoft.Office.Core;using Microsoft.Office.Interop.Excel;,但 ...
- cocos2dx 3.9 微信授权登陆后游戏进程结束解决办法
找到 Cocos2dxActivity.java 文件夹 里面的 onDestroy() 方法 if (mGLSurfaceView != null) { Cocos2dxHel ...
- 用Cygwin实现在window环境下使用Linux命令-nohup 来后台运行程序
1.安装Cygwin 下载 cygdrive-选择64或32位 http://www.cygwin.com/ 注:可以百度搜索安装步骤 2.配置它的环境变量 添加到path路径中 3.cmd 执 ...
- git Web
{ …or create a new repository on the command line echo "# Kotlin" >> README.md git ...
- delphi xe10 麦克风、摄像头操作
TakePhotoFromCameraAction1: TTakePhotoFromCameraAction; // 通过手机摄像头获取图片TakePhotoFromLibraryAction1: T ...
- 微信H5授权登陆
Controllerpackage com.iimscloud.auth.provider.controller; import org.springframework.beans.factory.a ...