揭露 FileSystem 引起的线上 JVM 内存溢出问题

4 月 26 日
阅读 9 分钟
55
内存泄漏定义(memory leak):一个不再被程序使用的对象或变量还在内存中占有存储空间,JVM不能正常回收改对象或者变量。一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。内存溢出(out of memory):是指在程序运行过程中,由于分配的内存空间不足或使用不当等原因,导致程序无法继续执行的一种...

用户行为分析模型实践(四)—— 留存分析模型

4 月 19 日
阅读 10 分钟
50
本文详细介绍了留存分析模型的概念及基本原理,并阐述了其在产品中具体实现。针对在实际使用过程问题,探索了基于ClickHouse留存分析模型实践方案。

Redis Pipelining 底层原理分析及实践

4 月 11 日
阅读 31 分钟
70
Redis是一种基于客户端-服务端模型以及请求/响应的TCP服务。在遇到批处理命令执行时,Redis提供了Pipelining(管道)来提升批处理性能。本文结合实践分析了Spring Boot框架下Redis的Lettuce客户端和Redisson客户端对Pipeline特性的支持原理,并针对实践过程中遇到的问题进行了分析,可以帮助开发者了解不同客户端对Pipelin...

MySQL 主从 AUTO_INCREMENT 不一致问题分析

4 月 7 日
阅读 13 分钟
120
本文介绍了 MySQL5.7 中常见的replace into 操作造成的主从auto_increment不一致现象,一旦触发了主从切换,业务的正常插入操作会触发主键冲突的报错提示。

vivo 消息中间件测试环境项目多版本实践

3 月 28 日
阅读 6 分钟
116
在2022年8月份 vivo 互联网中间件团队完成了互联网在线业务的MQ引擎升级,从RabbitMQ 到 RocketMQ 的平滑升级替换。

Java 8 内存管理原理解析及内存故障排查实践

3 月 21 日
阅读 14 分钟
99
介绍Java8虚拟机的内存区域划分、内存垃圾回收工作原理解析、虚拟机内存分配配置,介绍各垃圾收集器优缺点及场景应用、实践内存故障场景排查诊断,方便读者面临内存故障时有一个明确的思路和方向。

vivo统一接入网关VUA转发性能优化实践

3 月 14 日
阅读 5 分钟
79
本文将探讨如何通过使用Intel QuickAssist Technology(QAT)来优化VUA的HTTPS转发性能。我们将介绍如何使用QAT通过硬件加速来提高HTTPS转发的性能,并探讨QAT在不同应用场景中的表现。最后,我们将讨论如何根据实际情况进行优化,以获得最佳转发性能。

Sharding-JDBC源码解析与vivo的定制开发

3 月 7 日
阅读 62 分钟
164
Sharding-JDBC是在JDBC层提供服务的数据库中间件,在分库分表场景具有广泛应用。本文对Sharding-JDBC的解析、路由、改写、执行、归并五大核心引擎进行了源码解析,并结合业务实践经验,总结了使用Sharding-JDBC的一些痛点问题并分享了对应的定制开发与改造方案。

vivo 在离线混部探索与实践

2 月 29 日
阅读 8 分钟
332
伴随 vivo 互联网业务的高速发展,数据中心的规模不断扩大,成本问题日益突出。在离线混部技术可以在保证服务质量的同时,极大的提升数据中心资源利用率,降低成本。混部技术涉及任务调度、资源隔离、运维观测等一系列技术难题,本文将介绍 vivo 在混部技术方面的实践和探索,为读者提供借鉴和参考

vivo 短视频体验与成本优化实践

2 月 22 日
阅读 9 分钟
609
在线点播场景,播放体验提升与成本优化是同等重要的两件事,并在部分场景体验优化与成本优化存在一定的互斥关系。vivo短视频深入分析播放链路的每个环节、并结合大数据统计,探索出了多种的体验优化策略;同时针对成本优化,上线了转码、PCDN、共享闲时带宽等多种策略用于降低带宽成本。基于技术优化和业务发展的要求,v...

vivo 海量基础数据计算架构应用实践

1 月 25 日
阅读 7 分钟
255
本文介绍了vivo在万亿级数据增长驱动下,基础数据架构建设的演进过程,在实时和离线计算过程中,如何基于业务发展,数据质量,计算成本等方面的挑战,构建稳定,可靠,低成本、高性能的双活计算架构。

vivo 智能活动中台 - 悟空系统建设之路

1 月 18 日
阅读 6 分钟
296
本文根据冯伟、姜野老师在“2023 vivo开发者大会"现场演讲内容整理而成。【vivo互联网技术】公众号回复【2023 VDC】获取互联网技术分会场议题相关资料。

vivo 海量微服务架构最新实践

1 月 11 日
阅读 10 分钟
316
vivo微服务平台为全球5亿+用户背后的全网十万级机器、万级微服务提供服务,在高效实践过程中,vivo中间件平台团队输出了一套业务适用的微服务架构最佳实践--架构能力矩阵、高效的开源中间件组件全生命周期管理策略,走出了一条从开源到开源+自研的技术演进路径,通过微服务引擎升级和统一平台建设较好解决了面临的问题与...

Spring 七种事务传播性介绍

1 月 4 日
阅读 6 分钟
347
作者:vivo 互联网服务器团队 - Zhou Shaobin本文主要介绍了Spring事务传播性的相关知识。Spring中定义了7种事务传播性:PROPAGATION_REQUIRED PROPAGATION_SUPPORTSPROPAGATION_MANDATORYPROPAGATION_REQUIRES_NEWPROPAGATION_NOT_SUPPORTEDPROPAGATION_NEVERPROPAGATION_NESTED在Spring环境中,含有事务的方法嵌套调用...

vivo 数据库备份恢复系统演化

1 月 2 日
阅读 11 分钟
188
vivo互联网领域拥有的数据库组件分别为 MySQL、MongoDB、TiDB 等,其中MySQL集群占比绝大部分,  MongoDB 集群占比小部分, TiDB 集群占比更小。为了介绍方便,本文把改造前的数据库备份恢复系统称为旧备份恢复系统,改造后的数据库备份恢复系统称为新备份恢复系统。我们将从旧的架构系统开始,发现其不足,慢慢的优化形...

前端 JS 安全对抗原理与实践

2023-12-22
阅读 8 分钟
459
如今这个时代,数据已经变得越来越重要,网页和APP是主流的数据载体,如果获取数据的接口没有设置任何的保护措施的话,数据就会被轻易地窃取或篡改。

vivo 容器平台资源运营实践

2023-12-21
阅读 6 分钟
309
作者:vivo 互联网服务器团队 - Chen Han容器平台针对业务资源申请值偏大的运营问题,通过静态超卖和动态超卖两种技术方案,使业务资源申请值趋于合理化,提高平台资源装箱率和资源利用率。一、背景在Kubernetes中,容器申请资源有request和limit概念来描述资源请求的最小值和最大值。requests值在容器调度时会结合节点...

Hudi 在 vivo 湖仓一体的落地实践

2023-12-14
阅读 6 分钟
287
在增效降本的大背景下,vivo大数据基础团队引入Hudi组件为公司业务部门湖仓加速的场景进行赋能。主要应用在流批同源、实时链路优化及宽表拼接等业务场景。

RocksDB 在 vivo 消息推送系统中的实践

2023-12-08
阅读 15 分钟
304
本文主要介绍了 RocksDB 的基础原理,并阐述了 RocksDB 在vivo消息推送系统中的一些实践,通过分享一些对 RocksDB 原生能力的探索,希望可以给使用RocksDB的读者带来启发。

线上ES集群参数配置引起的业务异常案例分析

2023-11-23
阅读 8 分钟
376
作者:vivo 互联网数据库团队- Liu Huang本文介绍了一次排查Elasticsearch node_concurrent_recoveries 引发的性能问题的过程。一、故障描述1.1 故障现象1. 业务反馈业务部分读请求抛出请求超时的错误。2. 故障定位信息获取故障开始时间19:30左右开始故障抛出异常日志错误日志抛出timeout错误。故障之前的几个小时业务是...

BI 数据可视化平台建设(2)—筛选器组件升级实践

2023-11-16
阅读 6 分钟
586
本文主要介绍了BI数据可视化平台建设中比较核心的筛选器组件, 涉及组件分类、组件库开发等升级实践经验,通过分享一些对交互和业务耦合度高的组件开发迭代的思考,希望可以给正在做组件重构解耦的读者带来启发。

BI 数据可视化平台建设(1)—交叉表组件演变实战

2023-11-09
阅读 8 分钟
277
作者:vivo 互联网大数据团队 - Zhu Jianchen本文是vivo互联网大数据团队《BI数据可视化平台建设》系列文章第1篇 - 交叉表组件。交叉表在数据分析里应用广泛,通过本文,你将了解到:交叉表的基本概念,以及BI可视化平台常见术语。我们的表格类组件的演化过程,以及如何通过技术调研和优化实现大数据量下渲染性能,一步...

vivo 网络端口安全建设技术实践

2023-11-03
阅读 10 分钟
1.5k
随着互联网业务的快速发展,网络攻击的频率和威胁性也在不断增加,端口是应用通信中的门户,它是数据进出应用的必经之路,因此端口安全也逐渐成为了企业内网的重要防线之一,然而网络端口因其数量庞大、端口开放和关闭的影响评估难度大,业务影响程度高、以及异常识别技术复杂度高等特点给网络端口安全治理带来了一定挑...

Dubbo 路由及负载均衡性能优化

2023-10-26
阅读 15 分钟
152
本文主要介绍在vivo内部针对Dubbo路由模块及负载均衡的一些优化手段,主要是异步化+缓存,可减少在RPC调用过程中路由及负载均衡的CPU消耗,极大提升调用效率。

深入理解 Netty FastThreadLocal

2023-10-23
阅读 14 分钟
235
本文以线上诡异问题为切入点,通过对比JDK ThreadLocal和Netty FastThreadLocal实现逻辑以及优缺点,并深入解读源码,由浅入深理解Netty FastThreadLocal。

记一次Redis Cluster Pipeline导致的死锁问题

2023-10-12
阅读 10 分钟
341
本文介绍了一次排查Dubbo线程池耗尽问题的过程。通过查看Dubbo线程状态、分析Jedis连接池获取连接的源码、排查死锁条件等方面,最终确认是因为使用了cluster pipeline模式且没有设置超时时间导致死锁问题。

MySQL到TiDB:Hive Metastore横向扩展之路

2023-09-28
阅读 10 分钟
475
本文介绍了vivo在大数据元数据服务横向扩展道路上的探索历程,由实际面临的问题出发,对当前主流的横向扩展方案进行了调研及对比测试,通过多方面对比数据择优选择TiDB方案。其次分享了整个扩展方案流程、实施遇到的问题及解决方案,对于在大数据元数据性能上面临同样困境的开发者本篇文章具有非常高的参考借鉴价值。

开源框架中的责任链模式实践

2023-09-21
阅读 21 分钟
511
在GoF 的《设计模式》一书中对责任链模定义的:将请求的发送和接收解耦,让多个接收对象都有机会处理这个请求。将这些接收对象串成一条链,并沿着这条链传递这个请求,直到链上的某个接收对象能够处理它为止或者所有接收对象处理一遍。

vivo数据中心网络链路质量监测的探索实践

2023-09-14
阅读 4 分钟
234
网络质量监测中心是一个用于数据中心网络延迟测量和分析的大型系统。通过部署在服务器上的Agent发起5次ICMP Ping以获取端到端之间的网络延迟和丢包率并推送到存储与分析模块进行聚合和分析与存储。控制器负责分发PingList并通过数据中心内部消息通道将PingList下发至每台服务器上的Agent,而PingList就是每个Agent需要发...

K8s 多集群实践思考和探索

2023-09-07
阅读 9 分钟
565
本文主要讲述了一些对于K8s多集群管理的思考,包括为什么需要多集群、多集群的优势以及现有的一些基于Kubernetes衍生出的多集群管理架构实践。