工作中用springboot搭建项目,用达博做远程调用.springboot提倡注解配置和java配置,本文是基于达博最新版本2.6.3,使用注解方式的示例。
本文假定你已经有springboot和达博的使用经验。
达博是阿里巴巴开源的分布式服务框架,一般使用达博的RPC调用。但2016年停止维护,现在使用的2.8.4版本其实是当当维护的dubbox.2017年8月阿里又重启维护达博,并从2.5.7版本开始支持注解配置。
此示例使用gradle构建,关于gradle的安装配置,请参考官方文档。
管理员作为达博服务发现的基础组件,关于管理员的安装启动,请参考官方文档。
项目结构如下
springboot-dubbo ├─settings.gradle ├─build.gradle ├─springboot-dubbo-api ││─build.gradle │└─src │└─主要 │└─java │└─组织 │└─亚伦 │└─springboot │└─达博 │└─api │DemoService.java ├─springboot-dubbo-consumer ││─build.gradle │└─src │└─主要 │├─java ││└─org ││└─亚伦 ││└─springboot ││└─达博 ││└─消费者 ││DemoController.java ││DubboConfiguration.java ││DubboConsumerApplication.java ││ │└─资源 │application.yml └─springboot-dubbo-provider │─build.gradle └─src └─主要 ├─java │└─组织 │└─亚伦 │└─springboot │└─达博 │└─提供者 │DemoServiceImpl.java │DubboConfiguration.java │DubboProviderApplication.java │ └─资源 application.yml >之前引入外部依赖
编译(“com.alibaba:达博:2.6.3”) 编译(“org.apache.zookeeper:管理员:3.4.9”) 编译(“org.apache.curator: curator-framework: 4.0.0”) 编译(“org.springframework.boot: spring-boot-starter-web”) >之前
1。生产者达博配置
@ configuration 公开课DubboConfiguration { @ bean 公共RegistryConfig RegistryConfig () { RegistryConfig RegistryConfig=new RegistryConfig (); registryConfig.setAddress(“管理员://127.0.0.1:2181”); registryConfig.setClient(“策展人”); 返回registryConfig; } @ bean 公共ApplicationConfig ApplicationConfig () { ApplicationConfig ApplicationConfig=new ApplicationConfig (); applicationConfig.setName (“sprintboot-dubbo-provider”); 返回applicationConfig; } @ bean 公共ProtocolConfig ProtocolConfig () { ProtocolConfig ProtocolConfig=new ProtocolConfig (); protocolConfig.setPort (12021); protocolConfig.setName(“达博”); 返回protocolConfig; } } >之前2。消费者达博配置
@ configuration 公开课DubboConfiguration { @ bean 公共RegistryConfig RegistryConfig () { RegistryConfig RegistryConfig=new RegistryConfig (); registryConfig.setAddress(“管理员://127.0.0.1:2181”); registryConfig.setClient(“策展人”); 返回registryConfig; } @ bean 公共ApplicationConfig ApplicationConfig () { ApplicationConfig ApplicationConfig=new ApplicationConfig (); applicationConfig.setName (“sprintboot-dubbo-consumber”); 返回applicationConfig; } @ bean 公共ConsumerConfig ConsumerConfig () { ConsumerConfig ConsumerConfig=new ConsumerConfig (); consumerConfig.setTimeout (3000); 返回consumerConfig; } }3。定义接口
公共接口DemoService { 字符串sayHello (); } >之前4。生产者实现接口
进口com.alibaba.dubbo.config.annotation.Service; @ component @ service (interfaceClass=DemoService。类,version=" 1.0 ") 公共类DemoServiceImpl实现DemoService { @Override 公共字符串sayHello () { 返回“你好Springboot达博”; } } >之前5。消费者调用接口
springboot集成达博注解版的示例代码