当前位置: 首页 > 后端技术 > PHP

运行三年,日活数百万的微服务数据分析架构,architecture

时间:2023-03-29 22:47:56 PHP

architecture中使用的语言知识这几年发展很快。数据分析发展迅速。我们还构建了一个微数据分析工具。该产品已成功运行三年,满足企业百万日活。产品结构非常简单,使用世界上最简单的语言php,最常见的数据库mysql,服务器可以选择apache或者nginx,一切看你自己的喜好。一、微服务架构图整个流程图:1.SDK向服务端上传数据。如果安装了redis做缓存,会先将数据发送到redis,然后再定时抽取数据到dbserver。借助redis,可以大大提高并行数据处理能力。2.数据库采集原始数据,存储过程根据不同维度统计各个指标的数据,同时将数据汇总成表。3、前台报表显示、实时报表、小时报表、日报表数据显示。最好实现读写分离。2.功能架构功能架构主要包括功能、角色和权限三部分。功能就是企业服务,用户使用的每一个功能就是企业的每一个服务。角色是用户操作的分类、功能与角色的对应关系、权限。了解系统架构的当前状态,从功能架构开始。3.应用架构应用架构的内容包括现有架构图、Web应用状态和界面架构。其中,界面是应用层的关键,是程序之间交互的部分。主要包括clientdata、usinglog、event、errorlog等接口。SDK定时通过接口向后台发送数据。应用架构列出前后端调用关系。四、数据设计两个数据库,大概一百张表。数据库的设计依赖于业务数据,业务数据的分类导致数据设计的E_R图的绘制。数据设计完成后,最终的数据库设计就出来了。只要数据库早点设计好,就可以很容易的进行扩容和拆分。统计类主要分为统计维度,以及用户、设备、错误信息。1.数据处理能力为每天百万活动,启动数量约两百万,活动数量和浏览量至少在三五百万之间,平均每小时数据量为50万。在运行过程中,**客户数据量集中在早晚高峰。根据客户的特殊情况,会在闲暇时间安排一些任务,如日任务、周任务、月任务等安排在清晨。良好的硬件配置是数据处理的好帮手。更大的内存和更快的硬盘绝对可以使数据流执行得更快。2、数据清洗和读写分离。数据库中存储了大量的原始数据。经过处理,这些数据都是垃圾数据。所有的报表数据统计并写入各个维度表后,需要定期清除数据。前端报表展示数据最好和存储分析数据库分开。5.物理架构微服务的物理架构需要的机器很少,单机即可运行。分析统计主要是对数据处理能力要求高。需要两台数据库服务器,一台网络终端就足够了。多年运行的结果是,并发量和数据库处理能力是统计分析的最大瓶颈。六、持续优化的方向1.数据读写分离,数据清洗。2.并发。7、客户最关心的数据:每个客户最关心的是用户列表、用户添加情况、用户活跃情况、用户留存情况。不同的客户对用户有不同的要求。需要判断用户是否在刷机,以及用户、设备号和用户ID(用户号)之间的映射关系。事件数据也很重要,关系转化率。页面访问与事件同等重要。错误数据可以检测应用程序中的错误。不同的客户、不同的使用场景对指标有不同的要求。本文首发于CobubRazor官网博客,作者qhzhang,转载请注明出处!