栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 云计算 > 云平台

SpringBoot集成Dubbo案例

云平台 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot集成Dubbo案例

SpringBoot集成Dubbo:Case
  • 1、什么是Duubo?
  • 2、概念架构
    • 2.1 提供者
    • 2.2 消费者
    • 2.3 注册中心
  • 3、SpringBoot集成Dubbo步骤
    • :one:准备注册中心
    • :two:准备服务的公共组件
    • :three:准备一个提供者的组件
    • :four:完成消费者组件
  • 4、测试
  • 总结

1、什么是Duubo?

Dubbo是一款高性能的,由阿里巴巴开发的一款RPC远程调用框架,已交由apache组织进行维护。他使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 [1] Spring框架无缝集成。

官方网址:https://dubbo.apache.org/zh/

2、概念架构

2.1 提供者

provider:即在分布式的服务中,真正实现业务的组件。简单讲就是提供服务的

2.2 消费者

consumer:即在分布式的服务中,调用业务逻辑的组件。消费提供者提供的服务的

2.3 注册中心

registry:用于监听提供者所提供的服务变化等。Dubbo的四种主要的注册中心:

  1. ZooKeeper
  2. Redis
  3. Simple
  4. Multicast
3、SpringBoot集成Dubbo步骤
  1. 注册中心
  2. 服务提供者
  3. 服务消费者
  4. 服务公共组件
1️⃣准备注册中心

这里使用的zookeeper注册中心,安装自行去网上搜有很多,这里不再赘述,安装好后,开启zookeeper注册中心。

2️⃣准备服务的公共组件

公共组件这里采用的是普通的maven项目,主要定义一些实体类和公共接口

model

	private Integer id;
	private String name;
	private Integer age;

service

Student queryById(Integer id);
3️⃣准备一个提供者的组件

这里使用SpringBoot来创建,目录结构如下所示:

在提供者的组件中,首先先引入依赖

  1. 公共组件的依赖
  2. dubbo的依赖
  3. zookeeper的依赖

注意在引入zookeeper的依赖的时候,需要排除log4j所引发的重复引入的错误


		
		
			com.wei
			DHC_DubboProject-common
			1.0.0
		

		
		
		
			org.apache.dubbo
			dubbo-spring-boot-starter
			2.7.8
		
		
		
		
			org.apache.dubbo
			dubbo-dependencies-zookeeper
			2.7.8
			pom
			
				
					org.slf4j
					slf4j-log4j12
				
			
		

		
			org.springframework.boot
			spring-boot-starter-web
		

		
			org.springframework.boot
			spring-boot-starter-test
			test
		
	

然后完成业务的实现

@Component
@DubboService(interfaceClass = IStudentService.class,version = "1.0")
public class StudentServiceImpl implements IStudentService{

	
	@Override
	public Student queryById(Integer id) {
		Student student = new Student();
		if (1001==id) {
			student.setAge(21);
			student.setId(id);
			student.setName("张三");
		}else if (1002==id) {
			student.setAge(22);
			student.setId(id);
			student.setName("李四");
		}
		return student;
	}
}

使用注解使用注解@DubboService:来指定其具体所实现的业务接口的类及版本等

配置文件

# 配置服务名称
spring: 
  application:
    name: StudentService-provider

# 配置扫描的包
dubbo:
  scan: 
    base-packages: com.wei.service
    
  # 配置dubbo协议
#  protocol: 
#    name: dubbo
#    port: 20881
  registry: 
    address: zookeeper://localhost:2181
4️⃣完成消费者组件

消费者与提供者所依赖的包都基本一样,所以直接拷贝提供者的依赖文件

controller测试

@RestController
public class DubboController {
	
	
	@DubboReference(interfaceClass = IStudentService.class,version = "1.0")
	private IStudentService service;

	@PostMapping("/queryById/{id}")
	public Student queryById(@PathVariable("id") Integer id) {
		
		Student student = service.queryById(id);
		return student;
	}
}

配置文件

# 指定服务名称
server:
  port: 8081
spring: 
  application:
    name: consumer-application

# 指定注册中心
dubbo: 
  registry: 
    address: zookeeper://localhost:2181
4、测试
  1. 启动zookeeper
  2. 启动提供者服务
  3. 启动消费者服务
  4. postman测试


成功!!!

总结

Dubbo注解:
@DubboService:在提供者端使用,暴露服务的,放在接口的实现类上面
@Dubboreference:在消费者端使用,引用服务的,放在属性上面,用于注入服务的引用接口。
@EableDubbo:放在主程序类上面,表示当前引用启用Dubbo功能。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/895907.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号