基础模块定义是在框架开发过程中起始步骤,好的模块划分分工明确,促进任务开发迭代。
但是我们在搭建框架的过程中怎么去定义模块,用什么标准去定义,怎么划分具体的模块点,
不用的人员有不同的考量,只能找最适合企业的开发框架。
划分标准
划分标准是一个框架划分的基础准则,有不同的方法论支撑框架的合理性划分,为建企业级框架做出建模标准,下面是最基础的一些设计原则:
- 稳定性:需要考虑到项目规模,可承受的数据量和容错能力,不能根据需求频繁的变更
- 高内聚:模块实现应该完成强关联的相关内容
- 低耦合:通过约定基于接口开发,不依赖具体实现,避免项目依赖产生的问题
- 开闭原则:将同一模块的内容打包在一起,每次变更只影响一个服务
- 模块自治:与其他团队尽量协作少的开发,来开发和部署服务
- 可测试性:都有完整的单元测试,而且达到一定的覆盖率,不能引入其它组件
模块分类
不同的框架的模块定义都会有一些细微的差别,但是大体都是差不多的,,目的都是为了减少模块之间的依赖,减少沟通成本,和高可用架构。
- 公共组件:定义全局所需要的功能,提供最底层的支持服务,通过基础组件支撑上层框架
- 基础服务:将微服务框架可运维可独立部署,为框架提供业务服务的这一类定义基础服务
- 交易框架:定义整个开发框架的开发模式,集成基础组件,提供服务开发便利的应用框架
- 业务框架:基于交易框架框架做开发,将企业特色的业务功能封装成业务框架
基础组件
基础组件提供应用框架的公共功能,这一部分极其重要,版本一旦稳定就不会轻易的去做变更,如果变更的话,不仅应用框架的升级,还会影响业务框架,规模大的项目升级是很麻烦的。
- 日志组件:日志集成,配置,性能日志,日志脱敏
- 数据库组件:数据源集成,ORM映射框架集成,分库分表
- 缓存组件:Redis集成、缓存工具类、应用级缓存、接口级缓存
- 异步消息组件:RocketMq集成、消息发布、消息监听
- 异常处理组件:信息码定义、错误异常分类、异常处理
- 公共api组件:定义组件API、常量
- 通用工具类:提供系统级的工具类
基础服务
微服务架构需要一些可独立部署的支撑服务搭建一个高可用框架,基础框架基础组件,其它的能力让应用服务提供。
- 应用网关:请求过滤、权限认证、限流熔断、灰度,报文转换
- 消息平台:短信、邮件、站内信处理
- 定时任务:轮询任务、批处理,分布式定时任务
- 路由服务:单元化架构用到,用于大数据量体系单元定位
- ***服务:全局唯一***生成
交易框架
这一块的设计是框架中的主体内容,设计好了不仅能满足各种业务场景,应并发环境还能节省不少人力成本。
- 基础模型:基础报文定义、接口api定义
- 分布式事务:分布式事务处理
- 交易处理:报文处理、日志流水、前后置处理,服务调用
- 服务编排:服务组合框架使用
- 扩展机制:上下文定义、前后置处理机制