142 lines
7.6 KiB
Markdown
142 lines
7.6 KiB
Markdown
# 德木 JsonRpc 协议数据对接文档
|
||
|
||
---
|
||
## 关于Hyperf
|
||
|
||
Hyperf 是一款基于 Swoole 协程服务器的 PHP 微服务框架,其主要特点如下:
|
||
- **高性能**:基于 Swoole 协程服务器,支持高并发、低延迟的处理能力。
|
||
- **灵活可扩展**:支持多种协议,如 HTTP、WebSocket、RPC 等,同时支持自定义协议。
|
||
- **组件化**:提供了丰富的组件,如缓存、数据库、队列等,方便开发者快速搭建应用。
|
||
- **易用性**:提供了简单易用的 API,方便开发者快速开发应用。
|
||
- **社区活跃**:拥有活跃的社区,提供了丰富的文档和资源,方便开发者学习和使用。
|
||
|
||
## 关于JsonRpc
|
||
JsonRpc 是一种轻量级的远程过程调用协议,其主要特点如下:
|
||
- **轻量级**:协议简单,易于实现和维护。
|
||
- **跨语言**:支持多种语言,如 PHP、Java、Python 等。
|
||
- **支持异步**:支持异步调用,提高系统的并发能力。
|
||
- **支持多种传输协议**:支持 HTTP、WebSocket、TCP 等多种传输协议。
|
||
- **支持多种序列化方式**:支持 JSON、XML、Protobuf 等多种序列化方式。
|
||
- **支持多种认证方式**:支持 Basic Auth、OAuth、Token 等多种认证方式。
|
||
- **支持多种错误处理方式**:支持自定义错误处理方式,方便开发者调试和定位问题。
|
||
|
||
## 关于本项目
|
||
本项目是基于 Hyperf 框架实现的 JsonRpc 协议数据对接文档,其主要特点如下:
|
||
- **基于 Hyperf 框架**:基于 Hyperf 框架,提供了丰富的组件和工具,方便开发者快速开发应用。
|
||
- **支持多种协议**:支持多种协议,如 HTTP、WebSocket、RPC 等,方便开发者选择合适的协议。
|
||
|
||
## 德木仓储、金融、ERP系统重构初衷
|
||
- 重构前:基于 ThinkPHP/Laravel 框架,采用 MVC 架构,代码耦合度高,扩展性差,性能瓶颈明显。技术人员没有统一框架开发,开发人员按项目独立,不能相互支援,工作分配不均衡。
|
||
- 重构后:基于 Hyperf 框架,采用微服务架构,代码解耦,扩展性强,性能提升明显。统一技术框架,统一服务部署,减少服务器资源,降低成本。
|
||
|
||
## 初次会议记录
|
||
### 会议内容
|
||
#### 1、系统目前遇到的问题:
|
||
- 独立多系统数据交互,处理同样的业务,不稳定且浪费资源。
|
||
- 框架相互独立,开发人员按项目独立,不能相互支援,工作分配不均衡。
|
||
- 框架独立,服务部署不统一,浪费服务器资源,拉高成本。
|
||
- 应用相互独立,微信等第三方服务重复对接,浪费开发资源和成本。
|
||
|
||
#### 2、讨论重构系统架构技术方案,评估需求、人力及时间成本
|
||
- 系统架构统一,服务部署统一,减少服务器。
|
||
- 重新整理业务需求,统一后端服务,独立公共服务,减少微信等第三方对接。
|
||
- 讨论技术人员的工作分配,统一框架。
|
||
|
||
#### 3、短期解决方案
|
||
- **死锁问题**:临时结束进程,释放死锁。
|
||
- **资源占用**:限制资源、临时释放资源占用大的进程。
|
||
|
||
#### 遇到问题,解决问题,原有架构修修补补导致的问题:
|
||
- 风险大,随时间增加每个项目需投入开发人员修复迭代,熟悉每个项目代码,从根本解决不了问题。
|
||
- 成本增加,服务器资源和第三方服务每个项目独立,增加服务资源成本。
|
||
|
||
### 会议纪要:
|
||
1. **业务分析**:重构 - 满足新的需求重构旧的系统;原有基础迭代 - 按原有系统架构及逻辑优化。
|
||
2. **重构**:获取客户数据,分析客户对ERP系统使用画像,若客户仅仅将其当做提货入口,则讨论重构方案,评估时间、人力成本。
|
||
3. **重构**:后端技术统一框架、抽取公共服务独立出来、统一部署。
|
||
|
||
---
|
||
|
||
## 服务中心
|
||
|
||
> 📌 **服务中心为 Nacos**
|
||
> 通过 `composer require hyperf/service-governance-nacos` 组件实现。
|
||
> 详细用法参考 [Hyperf 文档](https://hyperf.io)。
|
||
|
||
🔹 一个服务可以同时作为 **服务提供者** 或 **消费者**
|
||
🔹 作为消费者时,可提供回调服务
|
||
|
||
---
|
||
|
||
## 公共接口服务
|
||
|
||
### 🧠 AI 服务 - `AiService`
|
||
- 提供查询、数据分析等功能
|
||
- **查询功能**:支持对多种类型的数据进行高效查询,涵盖结构化数据(如数据库表)和非结构化数据(如日志文件)。用户可以根据不同的条件快速筛选和检索所需信息。
|
||
- **数据分析**:提供全面的数据分析能力,包括基础统计分析、趋势预测、聚类分析等。帮助用户从海量数据中提取有价值的见解,为决策提供有力支持。
|
||
|
||
### 📱 EasyApp 服务 - `EasyAppService`
|
||
- 提供微信、钉钉、公众号等服务
|
||
- **微信小程序服务**:支持小程序接口、消息订阅号等功能,包括消息推送、用户管理、菜单管理等。
|
||
- **钉钉服务**:支持钉钉机器人、钉钉消息推送等功能,包括消息发送、开放平台接口等。
|
||
- **公众号服务**:支持公众号消息推送、用户管理、菜单管理等功能,包括消息发送、用户管理、菜单管理等。
|
||
- **开放平台**:支持开放平台接口。
|
||
|
||
### ☁️ OSS 服务 - `OssService`
|
||
- 文件上传、签名、回调
|
||
- 文件下载、删除等常规操作
|
||
- **文件上传**:支持文件上传功能,包括文件上传、文件签名、文件回调等功能。
|
||
- **文件下载**:支持文件下载功能,包括文件下载、文件删除等功能。
|
||
- **文件签名**:支持文件签名功能,包括文件签名、文件回调等功能。
|
||
- **文件回调**:支持文件回调功能,包括文件回调、文件删除等功能。
|
||
|
||
### 🖨️ 云打印服务 - `PrintService`
|
||
- 快麦云打印机支持
|
||
- 打印回调、参数配置
|
||
- **打印回调**:支持打印回调功能,包括打印回调、打印参数配置等功能。
|
||
- **打印参数配置**:支持打印参数配置功能,包括打印参数配置、打印回调等功能。
|
||
- *后续将接入更多打印机型号*
|
||
|
||
### 📨 短信服务 - `SmsService`
|
||
- 阿里云短信发送
|
||
- 短信签名、模板配置
|
||
- **短信签名**:支持短信签名功能,包括短信签名、短信模板配置等功能。
|
||
- **短信模板配置**:支持短信模板配置功能,包括短信模板配置、短信签名等功能。
|
||
- *后续将接入更多短信服务*
|
||
|
||
### ⚙️ 系统配置服务 - `SysConfigService`
|
||
- 各系统的第三方接口对接秘钥管理
|
||
- **系统秘钥管理**:支持系统秘钥管理功能,包括系统秘钥管理、系统配置等功能。
|
||
|
||
### 👥 用户管理服务 - `UserAuthService`
|
||
- 公共用户逻辑服务
|
||
- 子系统可调用统一用户服务
|
||
- **用户管理**:支持用户管理功能,包括用户管理、用户登录、用户注册等功能。
|
||
|
||
### 🌐 WebSocket 服务 - `WebSocketService`
|
||
- 公共 WS 服务模块
|
||
- 子系统可调用统一 WS 服务
|
||
- **WebSocket 服务**:支持 WebSocket 服务功能,包括 WebSocket 服务、WebSocket 消息推送等功能。
|
||
|
||
---
|
||
|
||
## 合同服务
|
||
|
||
### 📝 e签宝合同 - `ContractService`
|
||
- 签署业务合同常规流程对接
|
||
- 支持多系统调用
|
||
- **合同服务**:支持合同服务功能,包括合同服务、合同签署等功能。
|
||
- **合同模版**:支持合同模版功能,包括合同模版、合同签署等功能。
|
||
|
||
### 📑 单据模版 - `OrderTempService`
|
||
- 模版处理服务
|
||
- 根据业务需求动态生成文档
|
||
- **单据模版**:支持单据模版功能,包括单据模版、单据生成等功能。
|
||
|
||
---
|
||
|
||
## 回调服务
|
||
|
||
> 🔄 **回调机制说明**
|
||
- 消费者端定义服务回调接口
|
||
- 服务端成功执行后触发回调消费者服务 |