|
||
---|---|---|
.idea | ||
_media | ||
zh-cn | ||
.nojekyll | ||
README.md | ||
_sidebar.md | ||
favicon.ico | ||
index.html |
README.md
德木 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、短期解决方案
- 死锁问题:临时结束进程,释放死锁。
- 资源占用:限制资源、临时释放资源占用大的进程。
遇到问题,解决问题,原有架构修修补补导致的问题:
- 风险大,随时间增加每个项目需投入开发人员修复迭代,熟悉每个项目代码,从根本解决不了问题。
- 成本增加,服务器资源和第三方服务每个项目独立,增加服务资源成本。
会议纪要:
- 业务分析:重构 - 满足新的需求重构旧的系统;原有基础迭代 - 按原有系统架构及逻辑优化。
- 重构:获取客户数据,分析客户对ERP系统使用画像,若客户仅仅将其当做提货入口,则讨论重构方案,评估时间、人力成本。
- 重构:后端技术统一框架、抽取公共服务独立出来、统一部署。
服务中心
📌 服务中心为 Nacos
通过composer require hyperf/service-governance-nacos
组件实现。
详细用法参考 Hyperf 文档。
🔹 一个服务可以同时作为 服务提供者 或 消费者
🔹 作为消费者时,可提供回调服务
公共接口服务
🧠 AI 服务 - AiService
- 提供查询、数据分析等功能
- 查询功能:支持对多种类型的数据进行高效查询,涵盖结构化数据(如数据库表)和非结构化数据(如日志文件)。用户可以根据不同的条件快速筛选和检索所需信息。
- 数据分析:提供全面的数据分析能力,包括基础统计分析、趋势预测、聚类分析等。帮助用户从海量数据中提取有价值的见解,为决策提供有力支持。
📱 EasyApp 服务 - EasyAppService
- 提供微信、钉钉、公众号等服务
- 微信小程序服务:支持小程序接口、消息订阅号等功能,包括消息推送、用户管理、菜单管理等。
- 钉钉服务:支持钉钉机器人、钉钉消息推送等功能,包括消息发送、开放平台接口等。
- 公众号服务:支持公众号消息推送、用户管理、菜单管理等功能,包括消息发送、用户管理、菜单管理等。
- 开放平台:支持开放平台接口。
☁️ OSS 服务 - OssService
- 文件上传、签名、回调
- 文件下载、删除等常规操作
- 文件上传:支持文件上传功能,包括文件上传、文件签名、文件回调等功能。
- 文件下载:支持文件下载功能,包括文件下载、文件删除等功能。
- 文件签名:支持文件签名功能,包括文件签名、文件回调等功能。
- 文件回调:支持文件回调功能,包括文件回调、文件删除等功能。
🖨️ 云打印服务 - PrintService
- 快麦云打印机支持
- 打印回调、参数配置
- 打印回调:支持打印回调功能,包括打印回调、打印参数配置等功能。
- 打印参数配置:支持打印参数配置功能,包括打印参数配置、打印回调等功能。
- 后续将接入更多打印机型号
📨 短信服务 - SmsService
- 阿里云短信发送
- 短信签名、模板配置
- 短信签名:支持短信签名功能,包括短信签名、短信模板配置等功能。
- 短信模板配置:支持短信模板配置功能,包括短信模板配置、短信签名等功能。
- 后续将接入更多短信服务
⚙️ 系统配置服务 - SysConfigService
- 各系统的第三方接口对接秘钥管理
- 系统秘钥管理:支持系统秘钥管理功能,包括系统秘钥管理、系统配置等功能。
👥 用户管理服务 - UserAuthService
- 公共用户逻辑服务
- 子系统可调用统一用户服务
- 用户管理:支持用户管理功能,包括用户管理、用户登录、用户注册等功能。
🌐 WebSocket 服务 - WebSocketService
- 公共 WS 服务模块
- 子系统可调用统一 WS 服务
- WebSocket 服务:支持 WebSocket 服务功能,包括 WebSocket 服务、WebSocket 消息推送等功能。
合同服务
📝 e签宝合同 - ContractService
- 签署业务合同常规流程对接
- 支持多系统调用
- 合同服务:支持合同服务功能,包括合同服务、合同签署等功能。
- 合同模版:支持合同模版功能,包括合同模版、合同签署等功能。
📑 单据模版 - OrderTempService
- 模版处理服务
- 根据业务需求动态生成文档
- 单据模版:支持单据模版功能,包括单据模版、单据生成等功能。
回调服务
🔄 回调机制说明
- 消费者端定义服务回调接口
- 服务端成功执行后触发回调消费者服务