七猫分布式追踪实践

Metrics(指标)、Logging(日志记录)、和Tracing(追踪)通常被称为可观测性的三大支柱。在微服务架构下,分布式追踪是一种关键工具,用于帮助排查和理解服务问题,它允许跟踪请求流程并提供关键的信息,以便更容易发现和解决问题。…

七猫消息推送系统演进之路

七猫推送系统经过近两年的开发迭代,已逐渐稳定完善,作为成本较低的拉活手段,已成为七猫越来越不可缺少的基础能力。本文将带大家一起回顾七猫推送系统从诞生到成熟稳定的演进…

系统测试中的Go代码覆盖率统计

传统软件测试技术主要基于测试人员对业务的理解,但由于经验的局限性、被测系统的复杂性以及与真实业务数据的差距,肯定存在测试不充分的情况,所以,虽然整个测试流程很规范,但最终软件质量还是不尽如人意。随着分布式、微服务架构、大数据技术的出现,软件越来越复杂,迭代越来越快,测试的挑战性越来越大。引入系统测试的代码覆盖率统计,可以帮助研发识别无效代码,辅助测试提高测试覆盖度等…

使用ARMS+LTS监控告警应用实践

鉴于之前调研的夜莺等一体化监控告警工具,我们综合总结下来,使用阿里云提供的ARMS告警系统,以减轻运维成本,目标是解决当前多而繁杂的业务系统中各式各样的告警机器人治理问题,我们需要一个聚合的,可容错的,可削峰的,可溯源的监控告警系统…

多种数据同步方案在七猫的实践

伴随着七猫的发展,大数据团队针对不同业务场景和不同数据功能,调研和运用多种技术栈和数据库来来解决了各类数据存放和使用的问题。本文将七猫大数据团队在实践过程中的一些开发技巧和代码示例进行整理,一是用于技术的沉淀记录,二是希望通过该文章能帮助大家对各种数据库同步场景所有启发。…

flink 规则引擎技术实现

当前有两类实时任务需要频繁重启:第一类任务是,实时报表新增维度,此类任务中,Flink 消费 Kafka 实时数据,处理后按照维度聚合,使用聚合函数计算出指标后写入 StarRocks ;第二类任务是实时 ETL 任务,此类任务中,Flink 消费 Kafka 实时数据,经过字段提取、数据过滤再将结果回写 Kafka。这两类实时任务加字段(维度)需求较频繁、需求重复度高、需要重启程序,影响数据的准确性、及时性以及迭代速度较慢。因此,我们实现了基于配置化的方式,在不重启作业的情况下,快速满足新增字段(维度)的需求。…

基于行为驱动开发框架Behave+Python的自动化设计与实现

七猫自有DSP项目主要由三大平台及广告引擎组成,其中平台包括效果平台、账户管家平台、管理员平台。广告引擎包括广告投放、引擎DRS(数据接收/消费等)。随着项目业务的增长、功能复杂度的提高,确保项目的稳定运行,自有DSP的自动化成为测试中必不可少的一部分。目前平台接口自动化巡检起到了一定的监控作用,可提前发现问题并及时解决问题,保证平台的可用性及稳定性。引擎接口自动化用于日常迭代测试及回归测试,可减少人工成本,提高测试效率,降低错误率,提高覆盖度保证广告投放的正确性。本文主要是介绍自有DSP项目自动化框架设计及实现方法。…

七猫多云元数据管理应用实践

当前七猫大数据在多云环境下的数据开发过程中,库表信息依赖各个云平台进行管理,缺乏统一的元数据查询工具入口,导致了寻表困难的问题。在早期的快速开发阶段,我们追求高效率,忽视了元数据的管理和维护,这给后续的数据治理带来了一定的"技术债务"。为了解决这个问题,七猫大数据团队已经开始着手多云环境下的元数据管理解决方案。该解决方案旨在提供一个统一的元数据管理平台,使用户能够方便地查找和访问各个云平台中的库表信息。通过该平台,用户可以快速搜索和浏览库表的元数据,包括表结构、字段信息、数据来源等关键信息。这将大大简化数据开发过程中的寻表工作,提高开发效率和准确性。…

Kylin5 对接 Starrocks 数据源

Apache Kylin5 是一个 OLAP 分析引擎,他通过构建引擎来读取数据源数据生成预计算索引数据。他通过查询引擎来查询预计算好的索引数据,也可以通过 Pushdown 能力,将查询下压给数据源引擎。StarRocks 是一款 MPP 架构的分析型数据库,可以高效支持大数据量级的多维分析、实时分析、高并发分析等多种数据分析场景。…

自定义封面功能

自定义封面功能,从最初的产品需求,到方案调研,到开发完成,再到功能组件化,经历了漫长的过程。开发中所依赖的fabricjs库也是我们第一次使用,它的功能还是非常强大的,帮助我们高效的开发出了一个简单的封面生成工具,不过也遇到了一些奇怪的兼容性问题,例如百分比渐变色在某些浏览器不生效等问题,目前也还在优化迭代中,如果大家有遇到类似的功能,欢迎来一起探讨。…

七猫社区Timeline Feed架构演进

七猫社区Timeline Feed架构演进是一个旨在改进和优化社区动态展示功能的项目它是书友圈中一个不可获缺的tab。2.0通过对现有架构进行演进,我们可以提升用户体验、优化性能,并满足不断增长的用户需求。…

H5调试大全

H5页面调试是移动端开发过程中不可或缺的一环,综合运用这些工具,我们可以快速定位问题、优化页面性能,并提升用户体验,随着移动端技术的发展,H5调试技术也会持续进步。我们可以期待更加智能化的调试工具,以及更加全面的性能分析功能。…

服务端测试注意点剖析

随着用户体量的增大,对性能的要求越来越高,使用到的技术栈也越来越多,测试需要考虑的点也越来越多。本文从接口测试、脚本测试、中间件、上线流程等四个方面分析一些注意点。…

基于 DolphinScheduler 的数据质量监控在七猫的实践

七猫正处于一个高速发展的阶段,数据分析和业务的发展方向非常注重数据的正确性。为了保证数据质量,我们之前的做法为在相关任务中加上自定义逻辑来检查数据是否正确。但是随着业务的快速迭代,数据量的高速增长和数据链路的复杂化,这种纯人工开发逻辑的方式已经难以跟上迭代速度,所以需要找到一个工具来帮助解决现状。…

静态页面自动化生成

业务有时需要动态生成一些简单交互的静态页面,比如协议页面,书单页面。技术有很多种方案,本文将介绍七猫前端的实现方案。…

Kylin 5 在七猫的实践及其技术原理

Apache Kylin™ 是一个开源的分析型数据仓库,为 Hadoop 等大型分布式分析平台之上的超大规模数据集(PB 级)通过标准 SQL 查询及多维分析 ( OLAP ) 功能,提供亚秒级的交互式分析能力。…

浅谈Locust:性能测试脚本

Locust是易于使用的分布式性能(压力/负载)测试框架, 实际用 locust 做压测就是在写 Python 程序,通过测试能够确定系统可以处理多少个并发用户,并且整个测试过程可以在Web的UI界面实时观察测试数据。…

StarRocks在七猫的应用(二)

之前,我们会采用多种架构来满足业务需要,比如数据报表结果存储在Clickhouse、OLAP查询使用Trino、业务数据的实时同步采用Hudi等。随着业务的迅速发展,已经越来越难满足业务的需要,为了解决这些问题,我们调研了很多款技术组件,结合我们目前的使用场景,综合考虑,我们选择了StarRocks。…

使用pyroscope+ holmes 加速找到服务瓶颈

在软件开发过程中,我们会根据需求快速迭代项目,但随着功能的增加,系统性能可能会出现瓶颈。 至今,我们已经采用了日志链路追踪和Sentry警告,在线拉pprof等解决方案来辅助问题排查。 但是在所有已知方案都无法提供解决思路的情况下,我们需要迅速地垂直拓展。这通常意味着直接拉取pprof进行分析。而且,我们可能会面临需要提高CPU和内存的压力(就如同做面食,面多了加水,水多了加面)。然而,这只是暂时的解决办法,不能从长远角度解决问题。因此,我建议大家在使用pprof在线服务时,要关注服务性能问题。…