SpringBoot整合Dubbo

本文介绍了Dubbo应用程序的三种开发方式,以Zookeeper为注册中心,详细阐述了基于Spring Boot开发Dubbo应用的步骤。包括创建maven项目及子项目,定义接口、实现服务提供者和消费者,修改配置文件,添加注解等,最终实现服务的远程调用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Dubbo官方文档中提到有三种方式来开发Dubbo的应用程序,分别是

基于XML配置实现
继续注解实现(常用 / 推荐)
基于API实现
本文用的注册中心是zookeeper,所以需要下载并安装zookeeper。安装zookeeper的示例网上有很多了,也很简单,自行安装就好啦。启动zookeeper之后如下图:
安装步骤
https://blog.csdn.net/qiunian144084/article/details/79192819?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160420469019724813211865%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=160420469019724813211865&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-1-79192819.pc_search_result_cache&utm_term=windouw%E5%AE%89%E8%A3%85zookeeper&spm=1018.2118.3001.4449
在这里插入图片描述

在这里插入图片描述

创建一个空的maven项目,命名为dubbo-springboot

<?xml version="1.0" encoding="UTF-8"?>


4.0.0

com.bazooka
dubbo-springboot
1.0-SNAPSHOT

dubbo-springboot-api dubbo-springboot-consumer dubbo-springboot-provider

创建dubbo-springboot-api子项目
整个子项目其实什么也没有做,只是单纯的定义一个接口。
package com.bazooka.api.service;

public interface HelloDubboService {

String sayHello(String name);
}
创建dubbo-springboot-provider子项目
这个子项目主要是以服务提供者的身份编写HelloDubboService的实现,来供服务消费者远程调用。

pom如下

com.alibaba.boot dubbo-spring-boot-starter 0.2.0 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.junit.vintage junit-vintage-engine com.bazooka dubbo-springboot-api 0.0.1-SNAPSHOT compile

编写服务提供者的实现
@Service
@Component
public class HelloDubboServiceImpl implements HelloDubboService {

@Override
public String sayHello(String name) {
return “欢迎” + name + “使用Dubbo。”;
}
}
@Service是Dubbo提供的注解
修改application.properties
#当前服务/应用的名字
dubbo.application.name=dubbo-springboot-provider
#注册中心的协议和地址
dubbo.registry.protocol=zookeeper
dubbo.registry.address=127.0.0.1:2181
#通信规则(通信协议和接口)
dubbo.protocol.name=dubbo
dubbo.protocol.port=20880
#连接监控中心
dubbo.monitor.protocol=registry
添加@EnableDubbo注解
这个注解的含义主要是来扫描包,实现Dubbo的自动装配,相当于配置dubbo.scan.base-packages。

@SpringBootApplication
@EnableDubbo
public class ProviderApplication {

public static void main(String[] args) {
SpringApplication.run(ProviderApplication.class, args);
}
}
一切就绪之后启动ProviderApplication。

创建dubbo-springboot-consumer子项目
这个子项目主要是来远程调用服务提供者的实现。

pom保持一致就可以啦。
定义一个ConsumerService并实现它。
这里的@Service是import org.springframework.stereotype.Service
@Reference来代替 @Autowired
@Service
public class ConsumerServiceImpl implements ConsumerService {

@Reference
HelloDubboService helloDubboService;

@Override
public String sayHello(String message) {
return helloDubboService.sayHello(message);
}
}
修改application.properties
server.port=8081

dubbo.application.name=order-service-consumer
dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.monitor.protocol=registry
同样的需要在main方法上添加@EnableDubbo注解
@SpringBootApplication
@EnableDubbo
public class ConsumerApplication {

public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}
创建一个HelloDubboController如下:
@RestController
public class HelloDubboController {

@Autowired
ConsumerService consumerService;

@GetMapping("/sayHello")
public String sayHello(@RequestParam(“name”) String name) {
return consumerService.sayHello(name);
}
}
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值