在开发服务端企业应用时,应用需要支持各种不同类型的客户端,比如桌面浏览器、移动浏览器以及原生移动应用。应用还需要向第三方提供可访问的API,并通过Web Service或者消息代理与其它应用实现集成。应用通过执行业务逻辑、访问数据库、与其它系统交换信息、并返回一条HTML/JSON/XML响应,来处理请求(HTTP请求与消息)。
应用采用多层架构或者六角架构,主要由以下几类不同组件构成:
不同逻辑组件分别响应应用中的不同功能模块。
对整个平台按业务和功能进行多模块拆分
分离出通用组件,把相关的类重构到一个包里,export成一个common_package共享使用
对每个固定模块的功能进行业务范围限定, 界定功能适用范畴边界,比如数据、资源的管理
处理方式,按功能尽量标准化、规范化输入&输出,形成服务内部的分离
1)自身独有的基础功能 eg: 实体的增、删、改、查
2)与其他服务有直接交互的功能 eg: 根据XXID找到下属的子结点列表
3) 与其他服务可能存在关联的情况
从功能分析来设计接口,以restful接口+消息队列的方式提供服务, 中间产出接口文档
详细设计服务内部的数据模型和相互调用关系,使用中不断优化
考虑服务内部对于中间件的选择,redis缓存等的使用
1.明确拆分原则和拆分需求。
2.梳理出业务模块和之间的依赖关联关系。
3.按照业务为单位,拆分实体、以及应用工程单独部署。
4.按照业务为单位拆分应用服务,避免环形依赖和双向依赖。
5.抽离出公用的接口、实体,以及服务单独部署为公用服务。