中台业务中台开发指南
视频
微服务和单体应用的区别
单体应用架构
所有的功能打包在一个 WAR 包里,基本没有外部依赖(除了容器),部署在一个 JavaEE 容器(Tomcat,JBoss,WebLogic)里,包含了 DO/DAO,Service,UI 等所有逻辑。
优点:
- 开发简单,集中式管理
- 基本不会重复开发
- 功能都在本地,没有分布式的管理和调用消耗
缺点
- 效率低:开发都在同一个项目改代码,相互等待,冲突不断
- 维护难:代码功功能耦合在一起,新人不知道何从下手
- 不灵活:构建时间长,任何小修改都要重构整个项目,耗时
- 稳定性差:一个微小的问题,都可能导致整个应用挂掉
- 扩展性不够:无法满足高并发下的业务需求
微服务架构
目的
有效的拆分应用,实现敏捷开发和部署。
如何拆分
网络上有讲根据模块拆分、根据领域模型拆分等等。
凌云中台和鸿鹄比较像是根据领域模型拆分。诸如中台的十大中心、鸿鹄的物业、空间、计费、合同等。
不要为了微服务而微服务
不要循环依赖,违背微服务的初衷
劣势
分布式事物的最终一致性
测试难度提升
运维难度提升
微服务的开发
环境准备
工具:pai-cli、IDE(IDEA,Eclipse,VS code)、JDK8+ 、Maven、Git
后端:Spring > SpringBoot > SpringCloud
前端:NodeJS、VueJS 、 ElementUI
APP:原生底座 、UniApp、UI组件库
API: Groovy
容器:Docker、Kubernetes(K8S)、 K3S
概念对齐
用户身份
- 运营企业(P端)
- 可以管理多个园区
- 入驻企业(B端)
- 入驻在某一个园区
- 公众(C端)
- 关联了当前园区的人,或归属于当前园区入驻企业的员工,都属于该园区的公众。
- 运营企业(P端)
-
- 获取当前用户所在企业的id作为租户id
- 获取当前用户所在园区的id作为租户id
- 获取当前用户所在企业的运营企业的集团id作为租户id
- 获取当前用户所在园区的运营企业的集团id作为租户id
开发中心创建套件
- 应用套件 √
- 物联套件
- API套件
- 数据大屏
应用套件的类型:
- 园区(只有运营企业才能安装)
- 企业(运营企业和入驻企业都能安装)
微应用的操作对象(类型):
园区(只有园区类型的套件才有)
企业
- 园区类型的套件此微应用可以共享共享给入驻企业使用
- 企业类型的套件此微应用只有安装企业才可以使用
公众
- 只有园区类型的套件才有
- 只有APP端
- 在可视化楼层中搭建使用
门户组件
web 端
- 只有企业类型(端B)
app端
- 只有企业类型和公众类型(C端)
- 如果是企业类型的套件,也不会有C端类型的小组件
开发部署
- 创建套件
- 通过pai-cli 命令行创建 前端、后端、小程序、大数据、原生Docker 工程
- 编译部署:源码 > 编译 > 打包 > 镜像构建(Docker) > 推送(Hobor) > 部署(K8S)
- 新增微应用
- 沙箱安装
- 测试(K8S)
调试
- 后端服务以命名空间隔离,云端服务在一个空间,本地开发在一个空间,云端服务会按需代理到开发空间(Service.yaml
metadata.labels.register:enable
)。 - 本地可以调用到云端的服务,但云端服务不能调用到本地服务。
- 本地也可能调用到小伙伴注册在本地开发空间的服务,当被调用服务是小伙伴注册的时,有可能出现调用超时情况。
- 还有一种服务调用超时的情况是,被调用接口比较复杂,1秒钟无法完成。优化被调用接口,或者适当增大fegin请求超时时间
- 测试时主要切换企业,控制台配置的企业和工作台使用的企业需一致。
- 被调用接口有路径参数,但是传了个空值过去,接口返回404。
- 查看云端服务容器日志:pai pods \ pai logs
- 查看服务运行日志:http://47.114.98.162:6005/app/kibana
基础服务的调用
基础服务的调用都有对应的SDK或前端组件。引入对应的包安装,根据说明使用即可。
权限能力
目前角色和菜单在实施阶段自定义的情况下,这个功能已经被弱化了,不建议、也不反对使用。按需。
参数管理
用户中心
存储服务(需开通)
- 前端组件上传都是临时暂存状态,须后端配合确认保存,长时间不确认保存会被认为垃圾文件将会被清理。
缓存服务(需开通)
消息订阅(需开通)
支付中心(需开通)
流水号
- 若设置不允许漏号,需后端核销。不然前端组件获取的都是同一个号码。
- 注意是否有按园区配置
消息
- 消费分应用内消息、app推送、短信、邮件,按需配置
- 目前短信接入的是阿里云短信,模版审核比较严格,注意查看阿里短信规范
- 消息跳转对接
调度能力
配合XXL-JOB使用
流程中心
- 审批任务
- 并行网关
- 互斥网关
- 条件流
- 一个流程一个表单
- 会签
- 办理填意见/附件
- 退回
- 加签
- 终止
- 补充正文
- 意见回复
流程表单更新之后,需在开发中心更新流程表单。
每次修改流程后,必须重新发布流程。
应用上架
确定发布范围(套件、工程)
确定发布版本
新增工程release-版本分支
准备SQL脚本
首次发布
升级更新
准备nacos配置
发起集成测试
- 选择测试的套件
- 选择套件中工程的分支
合并分支到master及develop
新建tag(基于master)
新增发行版
- 填写版本及发布内容
- 选择发布的工程的tag
提交审核
如果服务太多,这时候处理起来就很多很繁琐了
文档更新时间: 2022-05-30 09:19 作者:管理员