网站项目开发,网站制作软件是什么,爱用建站正规吗,鹤壁网络推广哪家好摘要
2021年6月#xff0c;我所在的公司中标某集团保险大数据平台一体化研发项目#xff0c;该项目总投资2000万人民币#xff0c;项目周期为2年#xff0c;通过该项目#xff0c;搭建该集团保险大数据平台#xff0c;一方面将全国所有保险业务全部入库并保存#xff0…摘要
2021年6月我所在的公司中标某集团保险大数据平台一体化研发项目该项目总投资2000万人民币项目周期为2年通过该项目搭建该集团保险大数据平台一方面将全国所有保险业务全部入库并保存另一方面将全国使用该集团的网站系统、app客户的行为日志全部入湖并保存通过分析用户的行为日志以及购买记录为集团业务人员提供精准营销、挖掘潜在客户帮助集团实现保险业务的快速增长。我有幸作为此次项目的负责人以及架构师参与了项目的搭建以及开发过程。该项目时间紧、任务重、涉及人员组织多直接相关集团保险公司内部40个部门共计400多人。该项目于2023年5月完成系统上线2023年6月通过最终验收得到了用户的一致好评顺利达成了既定目标。本人重点结合项目实际经验以该项目为例主要论述软件的可靠性设计在项目中的实际运用。 正文
2021年6月我作为项目负责人以及架构师主持了某集团全国保险大数据搭建项目。该项目历时2年时间紧、任务重具有相当大的挑战。一是需要配合改造的部门多所有保险种类的平台都要接入我们大数据平台任何用户的操作行为以及产生的订单都需要入湖并进行保存我们需要定义统一的数据格式以及规范还要跟集团各个保险应用沟通沟通成本大大提高。二是技术含量高。该集团保险数据每年都在进行递增且有些数据入湖之后还要进行大量的解析并且这些数据也需要存储用户操作行为的日志每天都是几百个G极限的情况下每天的处理量能达到1000G左右。这对于数据存储来说是极大的挑战。所以对于该系统来说如何保证系统的可靠性成为该系统的一个主要技术难点。 查阅大量的资料得知目前业界比较主流的软件可靠性设计主要有软件容错技术、检错技术、降低复杂度设计等技术。
常用的软件容错技术主要有3种分别是恢复块设计、N版本程序设计、冗余设计。恢复块设计就是选择一组操作作为容错单元设计从而把普通的程序块变成恢复块。一个恢复块包含若干个功能相同、设计差异的程序块文本每一时刻有一个文本处于运行状态。一旦该文本出现故障则用备份文本加以替换从而构成“动态冗余”。N版本程序设计是一种静态的故障屏蔽技术其设计思想是用N个具有相同功能的程序段同时执行一项计算结果通过多数表决来执行。其中N个版本的程序必须由不同的人独立设计使用不同的方法、开发语言、开发环境和工具来实现其目的是减少N个版本在表决点上相关错误的概率。冗余设计实现的原理是在一套完整的软件系统之外设计一种不同路径、不同算法或不同实现方法的模块或系统作为备份在出现故障时可以使用冗余的部分进行替换从而维持软件系统的正常运行。
检错技术实现的代价一般低于容错技术和冗余技术但有一个明显的缺点就是不能自动解决故障出现故障后如果不进行人工干预将最终导致软件系统不能正常运行。检错技术常见的实现方式最直接的一种实现方式时判断返回结果如果返回结果超出正常范围则进行异常处理计算运行时间也是一种常用技术如果某个模块或函数运行时间超过预期时间可以判断出现故障还有置状态标志位等多种方法自检的实现方式需要根据实际情况来选用。
降低复杂度设计的思想就是在保证实现软件功能的基础上简化软件结构缩短程序代码长度优化软件数据流向降低软件复杂度从而提高软件可靠性。 参照上面主流的软件可靠性设计技术结合项目实际情况我们在项目中主要使用了以下措施来提高软件的可靠性
1.采用集群容错技术。 为了提高系统的可靠性我们在系统中大量的采用了集群容错技术。这里的集群容错技术应用到了多个组件当中包括负载均衡nginx集群技术、前端服务器集群、后端服务器集群因为我们采用的是前后端分离项目、中间件kafka集群技术等基本上每种组件我们都提供了集群以确保某一个节点挂了之后另外一个节点可以马上接管提供程序24小时不间断运行。
2.数据库采用了多主多从容错技术。 我们在大数据平台对数据进行解析之后会将一些有用的数据存储在mysql中供业务人员使用、分析、查询和修改当业务发现某些解析的数据不对时可以支持手动修改该笔数据。在面对大量业务人员操作的场景我们使用了多主多从的架构即多个主节点多个从节点并在多主多从的架构上实现了读写分离主节点主要负责写入数据从节点主要负责读数据节点之后不相互影响。当系统在运行时如果某一个主节点或从节点挂掉时可以由另外一个主节点或从节点替换从而提高系统的可靠性。
3.冗余技术。
在具体的数据湖接入框架中我们引入了Hadoop框架利用Hadoop的高容错性提高了系统的可靠性。HDFS(Hadoop分布式文件系统)是Hadoop的核心组件之一也是Hadoop的默认文件系统。Hadoop是一个分布式计算框架而HDFS则是Hadoop用于存储和管理大规模数据集的分布式文件系统。在本次项目实施过程中我们使用到了HDFS的纠删码技术。纠删码技术是一种数据保护技术最早用于通信行业中数据传输中的数据恢复,是一种编码容错技术。他通过在原始数据中加入新的校验数据,使得各个部分的数据产生关联性。在一定范围的数据出错情况下,通过纠删码技术可以进行恢复。默认的纠删码策略可以节省50的存储空间同时还可以承受更多的存储故障。同时对于一些重要的数据我们也使用了数据备份技术将数据备份到云服务端保障系统在发生不可抗力的时候数据丢失的情况。运用这两种技术成功提高了分布式存储系统的可靠性使得系统更加稳定、高效的运行。
4.降低复杂度设计
在项目具体实施过程中我们使用了降低复杂度设计将一些模块进行合理的划分尽量保证软件的各个模块之间实现高内聚、低耦合优化软件结构并通过具体的异步、批处理、多线程等技术手段实现某些复杂的功能从而提高软件的可靠性。
经过我和团队的不懈努力历时2年项目终于于 2023年6月顺利通过了验收并得到了一致好评运行至今用户反馈良好集团公司的再保险业务运营水平得以提升。但是在实施过程中也暴露了一些具体问题例如HDFS上面存储过多的小文件一方面会大量占用NameNode的内存空间另一方面就是元数据文件过多使得寻址索引速度变慢影响机器性能等等这些问题通过应急处理和协调都得到了妥善解决没有影响到项目的总体进度。我们已经把这些经验和教训总结到了工作总结里面向其他技术人员分享为今后系统架构设计提供帮助。相信通过不断持续学习改进加强自己的系统分析与设计能力努力工作提升工作水平为社会和公司多贡献一点自己的价值。