StarRocks在七猫的应用(二)

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

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

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

Android端有声书字幕交互实现及优化全解析

目前在七猫免费小说 App 端,音频内容主要有 TTS 和有声书两种类型,TTS 由于天然存在文字内容,可以满足用户边听边读的需求,而有声书目前则只能输出声音。为了丰富用户的有声书使用体验,所以我们考虑为有声书增加字幕功能。在交互形态上,字幕功能存在一些比较特别的点,本文记录下它们实现和优化的过程,在迭代工作中大家遇到的需求各不相同,这里我们屏蔽掉大部分业务细节,主要聚焦于解决问题思路的形成及对方案的优化过程,希望能给大家带来一点收获。…

通过Prometheus+grafana搭建可视化监控

有时候我们想知道项目里面各个api的qps和耗时,或者请求第三方服务的qps、成功率、失败率等等。统计这个其实有很多方案,比如:envoy、sls、prometheus等。经过讨论之后,我们决定使用Prometheus,然后在运维平台的grafana中接入,再画出需要的图。本文简单的介绍下大致的流程。…

春天的周末

周末的春天,我们的部门进行了一次团建活动。活动中,我们不仅体验了热血和激情,更感受到了彼此之间的温暖。让大家从熟悉到更熟悉、从团结变得更团结,充满了奇妙水的快乐能量。…

春游:逃离城市计划

一次说走就走的团建旅行,为期两天的团建内容可谓行程满满,这是一次从从无到有,从大家熟悉到更熟悉的过程,无论景点还是娱乐环节还是参观活动,都让我们在轻松的氛围下得到凝聚与朝气和活力,"每一次成功都勇于一次大胆的尝试",不论是8公里的山路还是海拔296米的高空都像工作时一样不惧阻碍直面挑战,在紧张的工作之余有机会互相了解、配合、支持,感受到了彼此的重要性。公司也十分注重员工的生活质量,这次团建活动也让我们有机会放松身心,远离工作的烦恼,更好地调整自己的状态。…

Pytest框架下pageobject实现作家专区自动化创建数据

一直以来在测试书籍相关业务的过程中,创建测试书籍都是必不可少的。创建测试书籍不仅种类繁多,流程复杂,书籍状态随流程的不同变化多样,手动添加不仅耗时费力而且测试完成后处理不当极易产生测试垃圾影响线上业务。本文提供了一套在Pytest框架下使用Pageobjrect实现UI自动化操作书籍创建签约的方案。使用Pytest的主要原因有二,一是Pytest的文档丰富,属于较为成熟的测试框架。二是Pytest基于python的框架相较于其他的框架安装方便。Pytest的其他优势及使用方法已有其他人进行过充分的介绍,本文不在赘述,本文主要针对Pageobject设计思路,搭建的UI自动化框架的介绍。…

Apache Superset 数据安全管理

目前各业务团队的产品经理、产品运营、数据分析师都在使用 Apache Superset 来查询数据仓库中的数据。Superset 能够基于 Hive、ClickHouse、Trino、StarRocks 中的数据进行数据探索和自助制作报表。…

ADX 流批一体架构的演进

随着商业化业务的快速发张,业务人员对 ADX 后台系统的使用要求也提高了,ADX 的技术架构进行了一轮重构来满足新的业务需求,其中也包括 ADX 数据架构的升级。本文从业务需求出发,结合七猫数据现状,进行技术选型,升级到了新一代流批一体的数据架构。…

Flink 数据处理通用代码开发

Flink 在七猫大数据发展过程中,一直扮演着重要角色。Flink 作为实时计算引擎,经历了多个发展阶段,实时计算平台也在不断地迭代完善。在七猫内部,主要以 Flink Jar 包任务为主,并逐步引入 Flink Sql ,不断的降低了使用门槛和提高了任务的开发效率;从起初基础的 Flink 任务开发,发展到跨网络、跨云厂商的任务多版本任务开发,满足了业务发展的需求。…

Go单元测试综合指南

为了保证软件开发的质量,我们需要借助单元测试来确保代码的正确性,从而及早发现并修复代码中的错误。此外,单元测试还可以帮助开发人员更快地完成软件开发,并减少软件开发过程中的错误,同时也可以为新人提供指导。…

StarRocks在七猫的应用(一)

之前七猫采用的是clickhouse用于存储明细和聚合数据。随着业务的快速发展,已经越来越不满足用户的需求,主要表现为以下几点:1、使用门槛高,不支持标准sql,做分片后关联需要注意sql写法。2、并发能力差,join性能不理想。3、运维成本高,故障恢复难度高。4、数据快速膨胀,查询性能达到瓶颈。5、clickhouse去重效果差。为了解决以上问题,我们研究了StarRocks,使用下来,较好的解决了以上一些问题,整体较满意。…

七猫中文网首页性能优化

七猫中文网首页重新改版,并且实现前后端分离,之前的首页是php渲染的静态页面,前后端分离后是nuxt框架实现的服务端渲染。…

七猫中文网阅读器

七猫中文网阅读器页面实现前后端分离,除了要保留原有页面功能(皮肤切换、字号、字体设置),还需要支持vip用户在登录后可以正常阅读vip章节。…

浅谈PHP性能优化-APCu

提到PHP,大家的第一印象都是简单易用好上手。只需几个小时即可大致了解它的结构,然后几分钟的时间即可搞定一个web服务,这就是PHP的魅力。凭借这一点PHP成为七猫飞速发展的见证者,在开山之初立下汗马功劳。但提到性能,就不禁唉了一声,于是各种性能优化呼之欲出,便有了APCu。…

Clickhouse bitmap实现标签筛选功能

随着业务的发展,运营对报表的要求越来越多,为了满足运营需求,我们使用clickhouse bitmap实现了数据打标签功能,方便其对数据进行各维度的聚合、查询。本文记录了详细的实现过程,希望对大家有所帮助。…

我在七猫做阅读器——排版篇

随着产品不断迭代,阅读器作为一个占据用户99%使用时长的模块,承载了愈加复杂的业务功能。开发一个能供人看书的阅读软件并不困难,但是如何打造一个高可用的阅读器却是门道颇深。本篇文章结合本人阅读器新架构实操经验,为大家阐述开发设计中的诸多细节,希望能对大家有所帮助。…

IP库-IP段生成Trie树过程的剪枝实现

APP需支持IPv6 访问,所以需要研究下怎样能同时支持IPv4和IPv6的高并发访问。查找资料的过程中发现多篇论文提到Trie树,结合之前实现禁词库的经验,深入研究之后发现可行。该处就将IP段生成Trie树过程的剪枝实现进行简单的讨论。…

IP库-ip2region结构分析和实现

ip2region 是一个准确率99.9%的ip地址定位库。 0.0x毫秒级查询,数据库文件大小只有1.5M,提供了java, php, c, python查询客户端和Binary,B树,内存三种查询算法。…