# 德木 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` - 模版处理服务 - 根据业务需求动态生成文档 - **单据模版**:支持单据模版功能,包括单据模版、单据生成等功能。 --- ## 回调服务 > 🔄 **回调机制说明** - 消费者端定义服务回调接口 - 服务端成功执行后触发回调消费者服务