系统架构师论文--论可靠性设计及应用

系统架构师论文–论可靠性设计及应用

tip:论文结构解析https://blog.csdn.net/lqb3732842/article/details/134081532

摘要:
作为国内美容行业领先的咨询服务公司,2020年5月,我司自研开发一套提供SAAS服务的美容行业客户管理系统,致力于为行业提供一套标准的客户管理流程。系统主要包含组织架构模块、客户引流模块、客户管理模块、商品订单模块、线下会议模块、在线合同模块及系统服务模块等7个主要功能模块。作为系统架构师我负责整个项目的系统架构工作。本文以此项目为例,主要论述高可靠性系统设计应用,主要通过微服务架构设计,缓存设计,主从复制三方面展开详细论述.通过微服务架构将系统拆分为多个服务,每个服务通过多个实例独立部署,使系统模块松散耦合,部分服务错误,不影响整个系统功能;通过完善的缓存技术设计,保证了应用服务的良好性能,避免流量洪峰导致系统宕机;通过主从复制技术,提高数据库承载能力,并且保证数据的安全性可恢复性.最终系统顺利上线,获得公司管理层的一致好评.

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

作为SAAS服务,本系统需要7*24小时对外不间断提供服务,系统性能跟可靠性是最核心的质量属性.可靠性指系统连续不间断对外提供服务的能力,又分为容错跟健壮性.主要参考指标有平均失效等待时间(MTTF),平均失效间隔时间(MTBF),平均故障修复时间(MTTR).提高系统可靠性的主要技术手段有提高健壮性,软件异常处理,软件容错设计,多版本设计,冗余设计,数据备份恢复等.系统可靠性是一个整体的考核,并不是某一层级后者某个功能模块做好就能保证的,就像木桶效应,最短的一块木板就会导致整个木桶漏水,系统的每个构件可靠性得到保证,才能对外提高整体可靠性.本文以此SCRM系统设计为例,主要从系统架构设计,缓存设计,主从复制三个方面对可靠性设计展开详细论述.

一:系统架构设计
SAAS系统整体为微服务架构,分为前端集群,后端服务中台,后端服务聚群 3个层级.前端集群通过nginx 实现负载均衡,当用户访问前端web页面时收现通过nginx负载均衡到前端web服务集群,web服务集群返回web网页给前端,之后前端通过ajax方式获取数据.后端中台是微服务的核心,主要包括网关应用集群,注册中心,服务发现及管理,服务负载功能等核心功能.前端访问数据直接通过调用网关API,网关首先通过注册中心获取已注册可用的服务,注册中心按照负载均衡原则返回可用服务地址,之后网关根据服务地址调用各个需要的服务完成数据聚合返回给前端.后端业务服务集群则是各个独立的微服务应用集群,每个服务上线后都会通过接口注册到注册中心,服务之间也会从注册中心获取需要的可用服务.整体架构有四大集群,web页面集群,网关集群,注册中心集群,业务服务集群通过平台中台协调完成系统各功能.使用微服务架构,系统拆分为多个服务,部分服务功能异常不会影响整个系统功能.每个服务都通过多节点部署,部分节点宕机不影响整个服务的能力,大大提高了系统的整体可靠性.

二:缓存设计
SAAS系统通过三层缓存设计,主要分为前端缓存,应用端缓存,分布式缓存 .前端缓存就是前端H5页面缓存必要数据,比如文章模块加载的图片,视频等资源前端会直接缓存,再次加载时直接从本地读取资源显示.应用端缓存是应用服务器端通过使用静态内存缓存必要的数据,由于内存容量有限,这里一般缓存底层常用的数据比如我们后台管理模块的菜单,基于RBAC权限的所有权限规则等.分布式缓存通过Redis集群方式实现,集群中多个节点分别是一主一从方式,平时从节点不参与数据查询工作,只有当主节点宕机时从节点会直接替换对应主节点工作,集群内通过实时连接维护各个节点的数据同步.缓存数据以分片方式分布于各集群各节点中,每个节点只保存部分数据,但每份数据至少保存在2个以上节点中,哪怕部分节点宕机也不会影响整个数据的完整性.Reids集群是一套分布式,自动化,高可用的缓存方案.通过多层缓存架构,缓存雪崩,数据并发高等导致数据崩溃等问题得到改善,保障了系统的可靠性及稳定性.

三:数据库主从复制设计
SAAS系统除了完善的缓存系统设计,对数据库也做了冗余备份高可用方案,整体通过一主多从多冗余的主从复制冗余方案,磁盘使用RAID5阵列方式,保证数据的可靠性.正常时间主库将承担所有的数据修改,新增,删除等操作,其中多个从库将负责主要的数据读取工作,另外还有几台冗余从库处于等待就绪状态,当探测到主库宕机,备用容灾从库将会接管主库工作,并与其他从库建立新的主从关系,保证系统的可用性;当读取数据负载压力变大超过阈值时,冗余数据库会主动加入到从库列表,分担数据库读取压力,提高系统性能及稳定性.数据库数据进行了版本控制,主要通过整点备份+日志记录的方式。每天凌晨5点会对数据库进行完整的备份,之后记录当天的操作日志,万一数据被误操作删除或修改可以跟进时间快速回滚到正确的版本,保证了系统的可恢复性.通过数据库主从冗余及数据备份方案,保证了数据层的安全,可靠性,可恢复性,从而保证了系统的整体可靠性.

总结
项目于2021年6月完成上线,经过2年多的运营,现在系统拥有商户1500+,C端客户总数800w以上,完善的可靠性设计保证了系统的稳定性,可用性,系统多次支持了百万级用户秒杀,抢购活动,整体得到公司与用户的一致好评.系统运营中也遇到了很多问题,如系统不定时会受到拒绝服务攻击,系统部分数据会出现一致性错误等,通过ip黑名单设计,解决了大部分拒绝服务攻击,通过日志审查方式我们找到并修复了系统漏洞,解决了数据一致性错误.此次系统架构,也让我看到自己的很多不足,在未来会不断地更新知识,完善系统在各方面的设计.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值