# dubbo学习
**Repository Path**: ycfrank/dubbo-use
## Basic Information
- **Project Name**: dubbo学习
- **Description**: 搭建简单的dubbo服务
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-02-06
- **Last Updated**: 2024-02-06
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
### 什么是协议
Client(Consumer端)与Server(Provider端)在传输数据时双方的约定。

#### Dubbo3中常见的协议
- 1.dubbo协议
- 2.rest协议
- 3.triple协议
- 4.grpc协议
- 5.thirft协议
- 6.webservice协议
- 7.rocketmq协议
- 8.redis协议
- 9.memacached协议
- ...等等
**不同协议的通信效率对比**
dubbo官方提供的不同协议之间通信效率的对比如下:

### Dubbo协议
- 1.Dubbo的默认协议,自己定义的`私有协议`,基于TCP层,默认的通信方式是Netty4;
- 2.Dubbo采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,反之,Dubbo缺省协议不适合传送大数据量的服务,比如传文件、传视频等。
官方提供的Dubbo协议结构图:

### Dubbo协议的使用
#### 准备——zookeeper的安装
服务端: https://archive.apache.org/dist/zookeeper/
客户端: https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip
#### 创建项目
父项目maven文件中对依赖版本进行管理
至于 dubbo 相关依赖说明 参考 https://juejin.cn/post/7327725061162254386
```xml
8
8
UTF-8
3.2.0
2.7.12
5.3.25
org.apache.dubbo
dubbo-bom
${dubbo.version}
pom
import
org.springframework.boot
spring-boot-dependencies
${spring-boot.version}
pom
import
```
引入相关依赖
```xml
org.springframework.boot
spring-boot-starter
org.springframework.boot
spring-boot-starter-test
test
org.apache.dubbo
dubbo-spring-boot-starter
org.apache.dubbo
dubbo-dependencies-zookeeper-curator5
${dubbo.version}
pom
zookeeper
org.apache.zookeeper
org.apache.zookeeper
zookeeper
3.4.9
org.projectlombok
lombok
1.18.22
org.springframework
spring-aop
${spring.version}
org.springframework
spring-beans
${spring.version}
org.springframework
spring-context
${spring.version}
org.springframework
spring-core
${spring.version}
org.springframework
spring-expression
${spring.version}
org.springframework
spring-jcl
${spring.version}
org.springframework
spring-test
${spring.version}
```