Kafka Streams 在监控场景的应用与实践

12 月 19 日
阅读 12 分钟
75
在当今大数据时代,实时数据处理变得越来越重要,而监控数据的实时性和可靠性是监控能力建设最重要的一环。随着监控业务需求的变化和技术的发展,需要能够实时处理和分析庞大的数据流。作为一种流式处理平台,Kafka Streams 为处理实时数据提供了强大的支持。本文将重点介绍如何利用 Kafka Streams 进行实时数据处理,包...

RocksDB 内存超限问题剖析

12 月 12 日
阅读 7 分钟
115
在使用 RocksDB 存储引擎的过程中,有部分开发者遇到了内存使用超出预期的情况。本文针对这一问题展开了深入分析,从内存使用原理、RocksDB 内存管理机制、常见内存使用问题等方面进行了详细探讨,并提出了相应的解决方案和优化建议,希望能够帮助开发者更好地理解和优化 RocksDB 的内存使用情况,提升系统性能和稳定性。

OceanBase 的探索与实践

12 月 5 日
阅读 7 分钟
302
本文总结了目前我们遇到的痛点问题并通过 OceanBase 的技术方案解决了这些痛点问题,完整的描述了 OceanBase 的实施落地,通过迁移到 OceanBase 实践案例中遇到的问题与解决方案让大家能更好的了解 OceanBase 功能与特性,最后总结了 OceanBase 优缺点与展望。

分布式锁的实现原理

11 月 28 日
阅读 17 分钟
220
分布式锁,顾名思义,就是在分布式环境下使用的锁。众所周知,在并发编程中,我们经常需要借助并发控制工具,如 mutex、synchronized 等,来保障线程安全。但是,这种线程安全仅作用在同一内存环境中。在实际业务中,为了保障服务的可靠性,我们通常会采用多节点进行部署。在这种分布式情况下,各实例间的内存不共享,线...

vivo 企业云盘服务端实现简介

11 月 25 日
阅读 6 分钟
238
vivo 企业云盘是一个企业级文件数据管理服务,解决办公数据的存储、共享、审计等文件管理需求;同时便于团队成员快速共享、管理文件,帮助集中管理企业数字资产,提升办公效率,实现内部数据资源的共享以及与外部客户之间的文件安全交换。

vivo 游戏中心包体积优化方案与实践

11 月 14 日
阅读 7 分钟
344
安装包大小与下载转化率的关系大致是成反比的,即安装包越大,下载转换率就越差。Google 曾在 2019 的谷歌大会上给出过一个统计结论,包体积体大小每上升 6MB,应用下载转化率就会下降 1%,在不同地区的表现可能会有所差异。

glibc 内存分配与释放机制详解

11 月 7 日
阅读 10 分钟
334
本文以一次线上故障为基础介绍了使用 glibc 进行内存管理可能碰到问题,进而对库中内存分配与释放机制进行分析,最后提供了相应问题的解决方案。

浅谈TiKV集群运维问题排查与修复——磁盘空间占用问题

10 月 31 日
阅读 7 分钟
3.5k
在业务快速扩张的年代,vivo 内部的很多业务为了可以快速上线,给现网功能提供支撑,在 KV 类型的选型下许多场景都选用了轻量快速的 Redis 集群。但是随着业务的不断发展与稳定,当数据量级达到一定程度的时候,数据性质开始发生变化:有的历史 Redis 集群热度下沉,但是依然基于 Redis 集群作为载体进行 KV 存储。这种...

浅谈活动中台系统技术债管理实践

10 月 24 日
阅读 6 分钟
306
在项目研发过程中,由于时间、能力等因素往往会出现设计方案没有做到最好或最优、编码质量不够好等问题,技术债的出现是不可避免的,并且随着时间的推移,技术债对系统的影响会越来越大,同时使得对代码和架构设计的更改越来越困难,想要进一步提升效能必须要对技术债进行管理,本文通过在活动中台系统的技术债实践经验...

游戏推荐业务中基于 sentinel 的动态限流实践

10 月 17 日
阅读 7 分钟
266
随着互联网的发展及业务的增长,系统的流量和请求量越来越大,针对高并发系统,如果不对请求量进行限制,在流量突增时可能会导致系统崩溃或者服务不可用,影响用户体验。因此,系统需要引入限流来控制请求的流量,保证系统的可用性和稳定性。当前推荐业务使用公司vsentinel 限流工具,主要使用 QPS 限流和热点参数限流。

一次基于AST的大规模代码迁移实践

9 月 26 日
阅读 14 分钟
432
在研发项目过程中,我们经常会遇到技术架构迭代更新的需求,通过技术的迭代更新,让项目从新的技术特性中受益,但由于很多新的技术迭代版本并不能完全向下兼容,包含了很多非兼容性的改变(Breaking Changes),因此我们需要设计一款工具,帮助我们完成大规模代码自动迁移问题。本文简单阐述了基于 AST 的代码迁移概念和...

vivo 全链路多版本开发测试环境落地实践

9 月 19 日
阅读 7 分钟
310
软件系统中全链路指的是从用户请求发起,到最终返回响应的整个过程中所涉及到的所有环节和组件。在微服务软件架构风格盛行的今天,因为微服务独立部署、松耦合等特性,往往一个业务系统由数目较多的服务组成,较多的服务往往带来一系列操作上的复杂性。

Redis集群slot迁移改造实践

9 月 12 日
阅读 6 分钟
332
Redis 集群经常需要进行在线水平扩缩容,实际操作过程中发现迁移期间服务时延剧烈抖动,业务侧感知明显,为了应对以上问题对原生 Redis 集群 slot 迁移功能进行优化改造。

Cookie的secure属性引起循环登录问题分析及解决方案

9 月 5 日
阅读 4 分钟
736
单点登录作为公共组件,在各个公司内部被各个系统所广泛使用,但是在使用过程中我们会遇到各种各样的问题,其中循环登录问题就是一个比较经典的问题。本文主要分析单点登录和权限系统设计的基本原理,然后结合实际案例来分析循环登录的原因,并给出具体的解决办法。

TimeWheel算法介绍及在应用上的探索

8 月 29 日
阅读 9 分钟
310
本文从追溯时间轮算法的出现,介绍了时间轮算法未出现前,基于队列的定时任务实现,以及基于队列的定时任务实现所存在的缺陷。接着我们介绍了时间轮算法的算法思想及其数据结构,详细阐述了三种时间轮模型的数据结构和优劣性。

MySQL 亿级数据平滑迁移实战

8 月 22 日
阅读 9 分钟
1.1k
预约业务是 vivo 游戏中心的重要业务之一。由于历史原因,预约业务数据表与其他业务数据表存储在同一个数据库中。当其他业务出现慢 SQL 等异常情况时,可能会直接影响到预约业务,从而降低系统整体的可靠性和稳定性。为了尽可能提高系统的稳定性和数据隔离性,我们迫切需要将预约相关数据表从原来的数据库中迁移出来,单...

高性能无锁队列 Disruptor 核心原理分析及其在i主题业务中的应用

8 月 15 日
阅读 22 分钟
585
本文首先介绍了 Disruptor 高性能内存队列的基本概念、使用 Demo、高性能原理及源码分析,最后通过两个例子介绍了 Disruptor 在i主题业务中的应用。

MySQL 5.7 DDL 与 GH-OST 对比分析

8 月 8 日
阅读 5 分钟
381
本文首先介绍MySQL 5.7 DDL以及GH-OST的原理,然后从效率、空间占用、锁阻塞、binlog日志产生量、主备延时等方面,对比GH-OST和MySQL5.7 DDL的差异。

缓存框架 Caffeine 的可视化探索与实践

7 月 26 日
阅读 16 分钟
294
Caffeine缓存是一个高性能、可扩展、内存优化的 Java 缓存库,基于 Google 的 Guava Cache演进而来并提供了接近最佳的命中率。

基于 Three.js 的 3D 模型加载优化

7 月 19 日
阅读 4 分钟
605
作为一个3D的项目,从用户打开页面到最终模型的渲染需要经过多个流程,加载的时间也会比普通的H5项目要更长一些,从而造成大量的用户流失。为了提升首屏加载的转化率,需要尽可能的降低loading的时间。这里就分享一些我们在模型加载优化方面的心得。

HBase 在统一内容平台业务的优化实践

7 月 11 日
阅读 6 分钟
294
HBase是一款开源高可靠性、扩展性、高性能和灵活性的分布式非关系型数据库,本文围绕数据库选型以及使用HBase的痛点展开,从四个方面对HBase的使用进行优化,取得了一些不错效果。

数据特征采样在 MySQL 同步一致性校验中的实践

7 月 4 日
阅读 8 分钟
526
在 MySQL 的使用过程中,经常会因为如集群拆分、数据传输、数据聚合等原因产生流动和数据复制。而在通常的数据复制过程中,因为涉及到目标的写入不可控、服务应用的未知问题、人为导致的异常缺陷等,很难保证复制产生的数据与源完全一致。除了通过完善流程与服务应用的能力和可靠性来保障数据一致性外,也需要提供快速有...

vivo 互联网自研代码评审 VCR 落地实践

6 月 27 日
阅读 13 分钟
1.6k
本文介绍了vivo工程效能团队基于 Gitlab、Gerrit等开源工具搭建的VCR平台,代码评审idea插件开发及开发过程中遇到的挑战、困难,并分享了相应的应对策略和优化方案。

海量数据处理利器 Roaring BitMap 原理介绍

6 月 20 日
阅读 10 分钟
1.3k
本文结合个人理解梳理了BitMap及Roaring BitMap的原理及使用,分别主要介绍了Roaring BitMap的存储方式及三种container类型及Java中Roaring BitMap相关API使用。

TiKV 源码分析之 PointGet

6 月 13 日
阅读 14 分钟
640
TiDB是一款具有HTAP能力(同时支持在线事务处理与在线分析处理 )的融合型分布式数据库产品,具备水平扩容或者缩容等重要特性。TiDB 采用多副本+Multi-Raft 算法的方式将数据调度到不同的机器节点上,具备较高的可靠性和容灾能力。TiDB中的存储层TiKV组件,能够独立于TiDB作为一款分布式KV数据库使用,目前已经捐赠给CNCF...

前端生成海报图技术选型与问题解决

6 月 6 日
阅读 6 分钟
784
本篇文章主要聚焦海报图分享这个形式,探讨纯前端在H5&小程序内,合成海报到下载到本地、分享至社交平台整个流程中可能遇到的问题,以及如何解决。

vivo 制品管理在 CICD 落地实践

5 月 30 日
阅读 7 分钟
723
在DevOps实践中,制品管理是一个重要的组成部分,它可以帮助团队快速交付高质量、高可靠性的软件,本文将介绍在 DevOps 领域,vivo CICD是如何进行管理制品,阐述了 CICD 制品管理的演进过程与落地实践,希望能为读者提供一些实践经验和思路。

分布式任务调度内的 MySQL 分页查询优化

5 月 24 日
阅读 10 分钟
573
本文主要通过图示介绍了用主键进行分片查询的过程,介绍了主键分页查询存在SQL性能问题,如何去创建高效的索引去优化主键分页查询的SQL性能问题

有隙可乘 - Android 序列化漏洞分析实战

5 月 16 日
阅读 10 分钟
451
本文主要描述了FileProvider,startAnyWhere实现,Parcel不对称漏洞以及这三者结合产生的漏洞利用实战,另外阐述了漏洞利用的影响和修复预防措施,这个漏洞波及了几乎所有的Android手机,希望能带给读者提供一些经验和启发。

HBase Meta 元信息表修复实践

5 月 9 日
阅读 11 分钟
410
HBase是一款开源高可靠、高可扩展性、高性能的分布式非关系型数据库,广泛应用于大数据处理、实时计算、数据存储和检索等领域。在分布式集群中,硬件故障是一种常态,硬件故障可能导致节点或者集群级别服务中断、meta表损坏、RIT、Region空洞、重叠等问题,如何快速修复故障恢复业务尤其重要,本文章主要是围绕HBase met...