上面一篇关于客户营销系统业务模型已经将业务-场景-能力三层的架构的构建过程进行说明(就是我们常说的业务架构),下面我们针对业务架构的描述进行详细的描述,并映射我们的技术架构。
一、业务架构和微服务架构映射
围绕业务-场景-能力三层构建了业务架构,经过技术异构、敏态和动态分离、安全、团队等因素映射成可独立执行的模块单元(微服务或者调度进程),同样对微服务进行自下而上的归纳和构建,形成系统的微服务架构。
二、营销微服务架构
1、构建系统流程
围绕业务流程构建系统的执行流程,业务流程主要描述营销管理员和一线客户经理2类角色的工作开展,系统流程主要在业务流程的基础下,将2类角色的工作进行线上化,并对工作开展的好坏以及工作的决策进行数字化的评估和决策的数据支撑。
2、系统功能架构
更加系统的流程,构建市场指标查询、标签管理、客群圈选等12个领域核心功能,对系统的边界进行分析,形成数据入格、产品素材管理、客户数据管理等4个支撑核心功能建设的4个支撑功能模块,对系统的技术和业务进行解耦合,对通用的功能进行提取,形成工作流、规则、调度等5个通用功能模块。
3、系统的技术架构
围绕功能架构,构建系统的技术架构;通过核心功能模型映射到微服务,因为画像和推荐查询伴随一起,可以构建成一个服务,指标数据查询因为涉及到数据抽取、指标计算、指标查询、可视化配置等技术异构,可以拆解成多个服务,剩余的服务1:1进行映射。
交互层:使用vue作为前端框架,elementUI做图表、地图相关组件使用百度地图;
网关层:业务方在网关上配置域名+路径进行网关接口配置,网关负责完成权限认证、限流、熔断、安全等一些和业务不相关的通用技术问题;
微服务层:基于SpringCloud框架,构建的业务逻辑层,负责营销业务的核心逻辑;
中间件层:系统的中间件,包括缓存、消息、调度等中间件,完成微服务和外部系统、存储工具之间的通信、数据传递等;
数据存储层:事务性的数据存放在Mysql、客群和标签的清单数据存储在ClickHouse、指标数据存储在Hbase。
4、系统的部署架构
负载层:采用HA进行负载,通过vip+keepalive进行负载的高可用;应用负载使用nginx;
服务层:采用异地双机房的部署策略,从而增加服务的高可用;
中间件层:redis集群+主从模式、Kafka集群模式+分区双副本、调度采用集群;
数据存储层:Mysql主从模式;ClickHouse单机主备模式;Hbase集群模式;