先看图,总览一下:
上图的架构是这几个月来开发的总结,照一列一列来看,从右到左
先看右边两列,可归为一类,这一部分可以叫做依赖,作为公共部分。在设计架构之时,要先考虑每一个组件的应用框架,把这些框架的基本部分写好,封装成依赖包,给业务系统调用。这些基础的部分包括以下:
- 缓存:redis redis的地址、端口、线程配置从配置文件读取,把redis的连接释放都做成工具,只提供使用接口
- 日志:推荐用log4j
- 消息中间件:kafka集群,封装工厂配置、提供生产者、消费者接口
- core:权限认证、拦截检查
- 文件系统:ftp/fdfs,管理文件,提供上传下载接口
- 数据库: mysql
- 持久层框架用的mybatis:service提供接口
- 工具类:base64、map、email…
右边第三列作为业务,根据需求,垂直切分业务,对外提供接口的做一个业务子系统、逻辑处理的作为一个子系统、底层运算作为一个子系统,中间通过kafka通信。那么这里就涉及到一个问题,部署的时候,每个业务子系统