系统架构师论文---论微服务架构及其应用

系统架构师论文—论微服务架构及其应用

tip:论文格式解析看这篇https://blog.csdn.net/lqb3732842/article/details/134081532

摘要
作为国内美容行业领先的咨询服务公司,我司于2020年5月自研开发一套基于SAAS服务的客户管理系统(以下简称SAAS系统),致力于为行业提供一套标准的客户管理流程。系统使用微服务架构实现,主要包含组织架构模块、客户引流模块、客户管理模块、商品订单模块、线下会议模块、在线合同模块及系统服务模块等7个主要功能模块。我作为系统架构师负责整个项目就技术调研及系统架构。本文主要以此项目为例论述微服务架构在项目中的实际应用,主要通过微服务架构必要性,架构设计,架构实现,三个方面展开详细论述.随着企业发展,传统单点服务在系统性能跟项目管理上很难再满足企业要求,微服务架构变得越来越必要.本系统整体架构分前端集群,后端服务中台,后端服务集群3个层级,架构实现主要通过开源构件以及自定义构件方式组合实现.历时一年项目成功上线,得到各方好评.

我司是美容行业领先的咨询服务公司,一直致力于为行业提供一套标准的客户管理系统,用于统一完善行业客户管理流程。SAAS系统就是我司根据十几年通过服务于几千家行业客户总结沉淀下来的一套美容行业的标准客户管理流程。SAAS系统是一套2b2c的客户管理系统.主要使用角色有平台管理员、商户员工、商户B端客户、商户C端客户,不同角色对应不同的应用入口,应用主要载体是app+小程序+公众号+pc管理后台.SAAS系统主要包括组织架构模块、客户引流模块、客户管理模块、商品订单模块、线下会议模块、在线合同模块及系统服务模块。商户注册后员工通过引流模块推荐文章或者视频给客户,客户管理模块将通过客户行为数据进行用户分析,完成用户画像。商户员工再根据用户画像进行产品促销或者推广。
对于B端客户可以通过线下会议模块组织线下会议,完成登记,签到及现场会销。最后通过在线合同模块完成合同的在线签署。系统服务为所有业务提供必要的功能支持,如:问卷调查、二维码生成、短信通知等。

微服务架构即是将一个庞大的系统项目拆分为多个子应用,每个应用负责一组业务功能.这些子应用即称为微服务,多个微服务共同形成一个物理独立但逻辑完整的分布式体系.微服务中每个服务是独立开发,测试及打包部署的,提高整体迭代效率,此外微服务通过分布式架构将应用水平拓展和冗余部署,解决了单体应用在拓展性和稳定性上的架构缺陷.实践中微服务架构同样也面临不少挑战,比如各模块数据一致性更难控制,数据在各个服务之间的链路跟踪变得异常复杂,服务数量多了,服务维护管理也是一个大工程等.本文以SAAS系统微服务架构为例主要从微服务架构必要性,架构设计,架构实现三方展开论述微服架构的应用.

一:微服务架构必要性
使用微服务架构并不是我们因为微服务而使用微服务,确定架构之前我们对微服务架构跟传统单体架构做了充分的对比分析,主要从性能,项目管理,项目更新等方面考虑.性能上,单体服务聚合各个功能模块,当各个模块并发峰值都很高时对整体项目的并发要求就会非常非常高,此时单单通过负载均衡很难达到系统要求,只有通过业务拆分,分摊流量才能满足系统的并发要求保证系统可用性.项目管理上,随着项目的变大人员的增加项目管理将变得杂乱,低效,尤其是公司团队可能在不同的城市,共同开发一个项目,交流管理成本会非常高.微服务把项目拆分为多个服务,每个服务独立打包,部署,由各自团队独立负责,服务之间通过接口调用,无需额外过多沟通,大大提高系统开发效率.项目更新上,单体项目迭代更新牵一发而动全身,可能只是某个功能模块的小修改,但是也要重新打包整个项目,无关的功能模块也会受到影响,拆分为多个服务后,单个服务更新迭代不影响整个系统其他模块的使用,可以大大提高系统可用性.最终经过项目组一致认定SAAS系统使用微服务架构是必要的也是合适的.

二:微服务架构设计
确定使用微服务架构后,我们开始架构设计任务.
SAAS系统整体为微服务架构,分为前端集群,后端服务中台,后端业务服务集群3个层级.前端集群通过nginx 实现负载均衡,当用户访问前端web页面时首先通过nginx负载均衡到前端web服务集群,web服务集群返回web网页给前端,之后前端通过ajax方式获取数据.后端中台是微服务的核心,主要包括网关应用集群,注册,配置中心,服务发现及管理,服务负载功能等核心功能.前端访问数据直接通过调用网关API接口,网关首先通过注册中心获取已注册可用的服务,注册中心按照负载均衡原则返回可用服务地址,之后网关根据服务地址调用各个需要的服务完成数据聚合返回给前端.后端业务服务集群则是各个独立的微服务应用集群,每个服务上线后都需要通过接口注册到注册中心,服务之间也会从注册中心获取需要的可用服务.整体架构有四大集群,web页面集群,网关集群,注册中心集群,业务服务集群通过平台中台协调完成系统各功能.

三:微服务架构实现
完成架构设计后主要任务是实现和组装系统构件。本着不重复造轮子及技术兼容的为主的观点,我们尽可能的使用开源可用的组件来完成架构组建.
网关是整个系统核心应用,考虑到性能和开发效率,我们使用了主流的java 组件zuul作为网关应用,包含了服务降级,服务限流等功能,整体通过负载均衡集群方式实现.注册,配置中心,作为系统服务的核心,需要兼容各类主流技术平台,系统线下会议模块下的人脸识别签到中需要使用到人脸识别,检测等服务是通过python语言实现提供服务.最终我们选择阿里巴巴开源的nacos作为注册配置中心.nacos原生分布式架构,可以根据性能需求调整节点,包含服务注册,服务发现,服务负载均衡功能等核心能力,所有功能都通过api操作,可兼容各类技术语言.服务容器跟容器编排管理则选用了主流的docker 跟k8s搭配,具体的服务实现根据服务负责团队的技术需求各自实现,只要打包运行后能跟注册中心连接就可以.服务通信协议则选择了grpc,tcp层协议,完成服务之间的数据交互.系统也根据需求自定义了一些组件,如网关令牌桶限流组件,消息编解码组件等,通过各组件的组装测试,最终实现了系统分布式架构设计.

总结
经过微服务的架构设计,实现,项目于2021年6月完成上线,经过2年多的运营,现在系统拥有商户1500+,C端客户总数800w以上,系统多次支持了百万级用户秒杀,抢购活动,得到公司与用户的一致好评.在系统架构实现中也经历了很多问题,如分布式事务一致性保证问题,服务接口文档不统一,不完善等问题.通过消息事务补偿机制解决了分布式事务问题,搭建系统文档中心及文档插件工具使用解决了服务接口文档效率低下不完善的问题.此次系统架构,也让我看到自己的很多不足,在未来会不断地更新知识,完善系统在各方面的设计.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值