首页IT科技dubbo spring boot starter(如何基于 Spring Boot 快速开发一个 Dubbo 微服务应用)

dubbo spring boot starter(如何基于 Spring Boot 快速开发一个 Dubbo 微服务应用)

时间2025-04-29 21:28:51分类IT科技浏览4630
导读:Dubbo 还提供了包括XML、API等多种启动与接入方式,更多开发方式和配置细节可参见配置手册。...

Dubbo 还提供了包括XML            、API等多种启动与接入方式            ,更多开发方式和配置细节可参见配置手册            。

下载示例代码

完整示例代码在 dubbo-samples 中                  。

下载源码 git clone -b master https://github.com/apache/dubbo-samples.git 进入示例目录 cd dubbo-samples/1-basic/dubbo-samples-spring-boot ls # 查看目录结构

快速运行示例

编译 Provider

在 dubbo-samples-spring-boot 目录执行 maven 命令 mvn clean package

运行 Provider

进入 dubbo-samples-spring-boot-provider/target 目录并启动 java 进程 cd

./dubbo-samples-spring-boot-provider java -jar ./target/dubbo-samples-spring-boot-provider-1.0-SNAPSHOT.jar 运行 consumer

进入 dubbo-samples-spring-boot-consumer 目录并启动 java 进程 java -jar ./target/dubbo-samples-spring-boot-consumer-1.0-SNAPSHOT.jar 查看结果

在 consumer 侧会输出如下信息: result: Hello World

在 provider 侧会输出如下信息:

Hello World, request from consumer: xxx.xxx.xxx.xxx

至此就把 Dubbo 的基本功能都实现了                  ,可以在 Dubbo 的基础上进行更多的开发      。

示例核心流程

关于示例的更详细解读可参见 注解配置

1. 定义服务接口

dubbo-samples-spring-boot-interface/DemoService.java

package org.apache.dubbo.samples.basic.api; public interface DemoService { String sayHello(String name); }

2. 提供方实现接口并暴露服务

dubbo-samples-spring-boot-provider/DemoServiceImpl.java

@DubboService public class DemoServiceImpl implements DemoService { @Override public String sayHello(String name) { System.out.println("Hello " + name + ", request from consumer: " + RpcContext.getContext().getRemoteAddress()); return "Hello " + name; } }

3. 配置 application.yml 文件

dubbo-samples-spring-boot-provider/resources/application.yml

dubbo: application: name: dubbo-springboot-demo-provider protocol: name: dubbo port: -1 registry: id: zk-registry address: zookeeper://127.0.0.1:2181 config-center: address: zookeeper://127.0.0.1:2181 metadata-report: address: zookeeper://127.0.0.1:2181

4. 定义 Spring Boot 主函数

dubbo-samples-spring-boot-provider/ProviderApplication.java

@SpringBootApplication @EnableDubbo public class ProviderApplication { public static void main(String[] args) throws Exception { new EmbeddedZooKeeper(2181, false).start(); SpringApplication.run(ProviderApplication.class, args); System.out.println("dubbo service started"); new CountDownLatch(1).await(); } }

其中      ,@EnableDubbo 必须配置      。

5. 引用远程服务

dubbo-samples-spring-boot-consumer/ConsumerApplication.java

public class ConsumerApplication { @DubboReference private DemoService demoService; }

6. 定义 application.yml

dubbo-samples-spring-boot-consumer/application.yml

dubbo: application: name: dubbo-springboot-demo-consumer protocol: name: dubbo port: -1 registry: id: zk-registry address: zookeeper://127.0.0.1:2181 config-center: address: zookeeper://127.0.0.1:2181 metadata-report: address: zookeeper://127.0.0.1:2181

7. 加载 Spring 配置      ,并调用远程服务

dubbo-samples-spring-boot-consumer/ConsumerApplication.java

@SpringBootApplication @Service @EnableDubbo public class ConsumerApplication { @DubboReference private DemoService demoService; public String doSayHello(String name) { return demoService.sayHello(name); } public static void main(String[] args) { ConfigurableApplicationContext context = SpringApplication.run(ConsumerApplication.class, args); ConsumerApplication application = context.getBean(ConsumerApplication.class); String result = application.doSayHello("world"); System.out.println("result: " + result); } }

其中                  ,@EnableDubbo 必须配置                  。

原文首于 Dubbo 官网:https://cn.dubbo.apache.org/zh/overview/quickstart/

欢迎在 https://github.com/apache/dubbo 给 Dubbo Star            。

搜索关注官方微信公众号:Apache Dubbo            ,了解更多业界最新动态      ,掌握大厂面试必备 Dubbo 技能

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
如何解决win10电脑键盘被锁住无法打开网页(如何解决win10电脑键盘被锁住无法打开?) mac任务栏透明(macOS Big Sur系统时间和日期在哪里设置?)