文档章节

dubbo-spring-boot-starter

xionghuiCoder
 xionghuiCoder
发布于 2017/01/14 22:40
字数 536
阅读 4031
收藏 9

dubbo-spring-boot-starter的maven项目托管在https://github.com/alibaba/dubbo-spring-boot-starter;同时也可以在https://www.oschina.net/p/spring-boot-starter-dubbo上了解它的简单介绍。

dubbo-spring-boot-starter是dubbo的spring boot starter,它可以无缝地对接spring boot和dubbo,方便大家使用dubbo组件。

需要注意的是dubbo-spring-boot-starter支持的jdk版本为1.6或者1.6+。

如何发布dubbo服务

  • 添加spring-boot-starter-dubbo依赖:
  • <dependency>
    	<groupId>com.alibaba.spring.boot</groupId>
    	<artifactId>dubbo-spring-boot-starter</artifactId>
    	<version>1.0.0</version>
    </dependency>

    在application.properties内添加dubbo的相关配置信息,demo配置如下:

  • # dubbo配置
    spring.dubbo.appname=provider-test
    spring.dubbo.protocol=dubbo
    # 此处也可使用其它协议,比如zookeeper://xxxx:xx
    spring.dubbo.registry=multicast://224.0.0.0:1111
    spring.dubbo.port=20800
    spring.dubbo.group=test
    spring.dubbo.version=1.0.0

    接下来在Spring Boot Application上添加@EnableDubboConfiguration,表示要开启dubbo功能。

  • /**
     * Provider启动类 <br />
     *
     * 如果没有web容器,需要hold住服务,否则进程会退出,参考以下代码:
     *
     * <pre>
     * synchronized (DubboProviderLauncher.class) {
     *   while (true) {
     *     try {
     *       DubboProviderLauncher.class.wait();
     *     } catch (InterruptedException e) {
     *       // swallow it
     *     }
     *   }
     * }
     * </pre>
     *
     * @author xionghui
     * @since 1.0.0
     */
    @SpringBootApplication
    @EnableDubboConfiguration
    public class DubboProviderLauncher {
    
      public static void main(String[] args) {
        SpringApplication.run(DubboProviderLauncher.class, args);
      }
    }

    编写hello服务,只需要在发布的服务实现上添加@Service注解 ,其中interfaceClass是要发布服务的接口。

  • import com.alibaba.dubbo.config.annotation.Service;
    
    @Component
    @Service(interfaceClass = IHelloService.class)
    public class HelloServiceImpl implements IHelloService {
    
      @Override
      public String hello() {
        return "hi, you!";
      }
    
    }

    启动Spring Boot应用。

如何消费Dubbo服务

  • 添加依赖
  • <dependency>
    	<groupId>com.alibaba.spring.boot</groupId>
    	<artifactId>dubbo-spring-boot-starter</artifactId>
    	<version>1.0.0</version>
    </dependency>

    在application.properties添加dubbo的相关配置信息,demo配置如下:

  • # dubbo配置
    spring.dubbo.appname=consumer-test
    spring.dubbo.protocol=dubbo
    # 此处也可使用其它协议,比如zookeeper://xxxx:xx
    spring.dubbo.registry=multicast://224.0.0.0:1111
    spring.dubbo.port=20801
    spring.dubbo.group=test
    spring.dubbo.version=1.0.0

    接下来在Spring Boot Application上添加@EnableDubboConfiguration,表示要开启dubbo功能。

  • /**
     * Consumer启动类
     *
     * @author xionghui
     * @since 1.0.0
     */
    @SpringBootApplication
    @EnableDubboConfiguration
    public class DubboConsumerLauncher {
    
      public static void main(String[] args) {
        SpringApplication.run(DubboConsumerLauncher.class, args);
      }
    }

    通过@Reference注入需要使用的interface:

  • /**
     * Consumer Controller
     *
     * @author xionghui
     * @since 1.0.0
     */
    @RestController
    @RequestMapping("/")
    public class ConsumerController {
      // timeout表示dubbo超时时间,单位为ms
      @Reference(timeout = 1000)
      private IHelloService iHelloService;
    
      @RequestMapping(value = "hello", method = RequestMethod.GET)
      @ResponseBody
      public String hello() {
        return this.iHelloService.hello();
      }
    }

    启动Spring Boot应用。

  • 可以通过http://localhost:port/health监控服务信息:
  • {
    	status: "UP",
    	dubbo: {
    		status: "UP",
    		ClassIdBean [clazz=interface org.test.IHelloService, group=test, version=1.0.0]: true
    	},
    	diskSpace: {
    		status: "UP",
    		total: 487955914752,
    		free: 455584600064,
    		threshold: 10485760
    	}
    }

    最后通过http://localhost:port/hello调用RPC服务,返回结果:

  • hi, you!

     

参考文档

© 著作权归作者所有

共有 人打赏支持
上一篇: 开源协议
下一篇: 2.0 - 1.1和1.0 - 0.1
xionghuiCoder
粉丝 86
博文 34
码字总数 31340
作品 4
海淀
程序员
私信 提问
加载中

评论(4)

蚂蚁小Y
请问使用2.0.0,消费者和提供者正常调用出结果,但是管理界面只看得见提供者,看不见消费者,这是什么情况呢?
xionghuiCoder
xionghuiCoder

引用来自“kl2422”的评论

你好 我maven的pom里面直接导入spring-boot-starter-dubbo 报错,提示加载不了这个starter,请问是不是还要配置parent之类的
hi,spring-boot-starter-dubbo已升级,改名为dubbo-spring-boot-starter;且发布到中央仓库,请知悉
xionghuiCoder
xionghuiCoder

引用来自“kl2422”的评论

你好 我maven的pom里面直接导入spring-boot-starter-dubbo 报错,提示加载不了这个starter,请问是不是还要配置parent之类的
需要clone下来发布到本地仓库,目前未发布到中央仓库
kl2422
kl2422
你好 我maven的pom里面直接导入spring-boot-starter-dubbo 报错,提示加载不了这个starter,请问是不是还要配置parent之类的
dubbo-spring-boot-starter小试牛刀

序 本文主要展示一下dubbo-spring-boot-starter的使用。 maven service-impl application.yml EnableDubboConfiguration EchoServiceImpl consumer application.yml EnableDubbo Reference 小......

go4it
2018/08/05
0
0
深入 Spring Boot : 快速集成 Dubbo + Hystrix

背景 Hystrix 旨在通过控制那些访问远程系统、服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力。Hystrix具备拥有回退机制和断路器功能的线程和信号隔离,请求缓存和请求打包,以...

小致dad
2018/07/02
0
0
官方 Dubbo Spring Boot Starter 1.0.0 公测版即将发布

据阿里开发团队宣布,Dubbo Spring Boot Starter 1.0.0 公测版已开发完毕,即将发布至 Maven 公有仓库,目前正在内部测试中。 Dubbo Spring Boot Starter 致力于简化 Dubbo 应用在 Spring B...

王练
2018/01/23
9.5K
50
Dubbo Spring Boot 0.1.0,Dubbo 的 Spring Boot 简化整合

Dubbo Spring Boot 0.1.0 已发布,Dubbo Spring Boot Starter 致力于简化 Dubbo 应用在 Spring Boot 环境中的开发,主要包括自动装配(Auto-Configure)、外部化配置(Externalized-Configur...

淡漠悠然
2018/03/20
2K
7
高效开发 Dubbo?用 Spring Boot 可得劲!

不仅简化了 Dubbo 基于 xml 配置的方式,也提高了日常开发效率,甚至提升了工作幸福感。 为了节省亲爱的读者您的时间,请根据以下2点提示来阅读本文,以提高您的阅读收获效率哦。 如果您只有...

中间件小哥
01/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

前嗅ForeSpider脚本教程:标准对象(一)

今天,小编主要为大家介绍一下:前嗅ForeSpider脚本中的标准对象:爬虫链接类url,urltext采集的所有状态及属性类,html标签节点类domItem和(html)dom类dom。具体内容如下: 一.爬虫链接类...

forespider
27分钟前
1
0
javax.net.ssl.SSLException: closing inbound before receiving peer's close_notify

在使用spring boot整合jpa时出现上述错误,在配置文件中,配置连接数据库的url时,加上useSSL=false url: jdbc:mysql://127.0.0.1:3306/数据库名称?serverTimezone=Asia/Shanghai&useSSL=fa...

朝如青丝暮成雪
36分钟前
1
0
JavaScript 为什么要有 Symbol 类型?

摘要: 为什么比怎么用更有意义。 原文:JavaScript 为什么要有 Symbol 类型 作者:前端小智 Symbols 是 ES6 引入了一个新的数据类型 ,它为 JS 带来了一些好处,尤其是对象属性时。 但是,它...

Fundebug
38分钟前
0
0
vs code 配置.json文件引入makefile文件实现多文件编译

背景: 之前使用VS code写c++时,没使用到多文件,所以对launch.jason和task.jason配置没过多配置,但不支持多文件间的编译,调试。 注:主要针对较大的一些工程,涉及多个文件的编译,使用到...

shzwork
38分钟前
1
0
大神教你Nginx常用基础配置方案

Nginx的fastcgi模块参数设置 Nginx 有两个配置文件fastcgi_params、fastcgi.conf,两者唯一的区别是,fastcgi.conf 多一个参数 SCRIPT_FILENAME,diff显示如下: $diff fastcgi fastcgi_param...

Linux就该这么学
44分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部