vivo互联网技术

其他

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

lock前的等待时间,0表示不等待直接执行锁表命令,单位是s,若超过此参数设置的时间后还存在长时间执行的查询,则Xtrabackup终止运行。--ftwrl-wait-thresholdshow
2023年12月27日
其他

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

为什么要保护JS代码JavaScript代码运行于客户端JavaScript代码是公开透明的由于这两个原因,致使JavaScript代码是不安全的,任何人都可以读、分析、复制、盗用甚至篡改。1.3
2023年12月20日
其他

vivo 容器平台资源运营实践

增加时,对应的固定权重也随之增加,旧的样本数据固定权重将相对减少。memory资源的固定权重:由于内存为不可压缩资源,而内存使用量样本对应的固定权重系数为1.0。数据点权重
2023年12月20日
其他

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

;离线增量更新场景,部分任务相较于原先Hive任务可以下降30%以上的计算资源。同时跟进用户实际使用情况,发现了一些有待优化的问题:Hudi生成文件的体积相较于原先Hive,体积偏大(平均有1.3
2023年12月13日
其他

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

服务崩溃,也不会影响整个系统的消息推送。每个应用至少分配三个缓存分片,即使其中一个分片出现问题,仍有另外两个分片在支撑,容错率更高。MT自定义能力更强,面对多变的业务需求,可以快速满足。3.1
2023年12月6日
其他

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

实例CPU异常的原因其实Elasticsearch本身是有接口提供获取实例上的热点进程,但是当时执行接口命令的时候长时间没有获取到结果,因此只能从其他方案想办法了。获取实例上的热点进程:curl
2023年11月22日
其他

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

项目主要技术栈是Vue,但是代码风格有大部分格使用的React的jsx形式进行开发;项目存在多人维护,个人技术参差不齐;导致后续学习成本增加;组件嵌套层级深,存在双向数据流:不符合Vue
2023年11月15日
其他

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

敏捷BI(1)字段配置行维:数据集维度字段放置区列维:数据集维度字段放置区指标:数据集指标字段(2)图表属性和图表样式配置支持条件格式,自定义代码样式嵌入,主题配置(3)字段过滤使用字段过滤数据
2023年11月8日
其他

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

Flood攻击指的是攻击者利用工具或者操纵僵尸主机,向目标服务器发送大量的ACK报文,服务器忙于回复这些凭空出现的第三次握手报文,导致资源耗尽,无法响应正常的请求。(4)FIN/RST
2023年10月31日
其他

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

}}(2)RouterFactory为Router的工厂类RouterFactory接口定义@SPIpublic
2023年10月25日
其他

深入理解 Netty FastThreadLocal

删除InternalThreadLocalMap中threadLocalMap和slowThreadLocalMap数据
2023年10月18日
其他

vivo 开发者大会:揭秘vivo互联网海量服务的研发之路

开放生态会场互联网技术会场(线上直播)👇本次【开发者大会-互联网技术会场】将全程通过线上直播。长按扫描下方二维码邀请进群观看同步直播或点击文末【阅读原文】查看更加详细的议程,即可报名2023
2023年10月18日
其他

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

Gang本文介绍了一次排查Dubbo线程池耗尽问题的过程。通过查看Dubbo线程状态、分析Jedis连接池获取连接的源码、排查死锁条件等方面,最终确认是因为使用了cluster
2023年10月11日
其他

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

在模拟TiDB回滚至MySQL过程中出现主键冲突问题在TiDB数据增长3倍后,切换回MySQL出现主键重复异常,具体日志内容如下:主键冲突异常日志产生该问题的主要原因为每个
2023年9月27日
其他

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

Servlet规范2.3中定义的,它能够对Servlet容器的请求和响应对象进行检查和修改,是个典型的责任链。在Servlet被调用之前检查Request对象并支持修改Request
2023年9月20日
其他

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

控制器控制器是整个网络质量监测中心的任务调度器,决定了服务器应该如何相互探测,负责PingList生成算法与下发通知,以及网络拓扑的定时更新。3.3
2023年9月13日
其他

K8s 多集群实践思考和探索

client启动k8s默认的调度器以及自研的调度算法,修改binding接口。并配置到每个member集群。podRequest请求每个集群调度模拟器,运行真实的调度算法,并计算调度结果。3.4
2023年9月6日
其他

JVM 内存大对象监控和优化实践

大对象优化后的core服务GC情况尽管优化后,因内部异常导致获取核心业务失败的异常请求数显著减少,但是依然存在。为了找到最后这一点异常产生的原因,我们打算对core服务内存中的对象大小进行监控。图7
2023年8月23日
其他

vivo 容器集群监控系统优化之道

采集的配置,例如采集频率,target内指标过滤,指标中label重命名等等操作。对于监控组件负载快速升高问题的解决,我们主要从两个方面着手,分别是指标治理以及性能优化。4.1.1
2023年8月16日
其他

高效构建 vivo 企业级网络流量分析系统

worker:在队列中拿到任务后,根据本地缓存/共享缓存内的业务信息,对采集数据进行数据清洗,打业务标签等操作,并写入另一kakfa或直接写入database。每一个角色以及节点可以通过Celery
2023年8月2日
其他

HBase Compaction 原理与线上调优实践

MajorCompaction。后台线程周期性检查的流程如图3所示。下面是该线程的关键代码://ScheduledChore的run方法会一直调用chore函数@Overrideprotected
2023年7月26日
其他

Jedis 参数异常引发服务雪崩案例分析

out的报错,可以归因为由于后端服务的响应时间过程导致nginx层和下游服务之间的读取超时。由于大量的读取超时导致nginx判断为后端的服务不可用,进而触发了no
2023年7月19日
其他

如何用Three.js + Blender打造一个web 3D展览馆

}}这样镜头的移动和碰撞检测就完成了。当我们移动到椅子、墙壁等障碍物附近时,镜头会停止移动。镜头的移动范围也被我们限制在房间里,不会穿到房间外部。三、性能调优3.1
2023年7月12日
其他

深入解析Redis的LRU与LFU算法实现

4.0版本开始就提供了8种内存淘汰策略,其中4种都是基于LRU或LFU算法实现的,本文就这两种算法的Redis实现进行了详细的介绍,并阐述其优劣特性。二、Redis的LRU实现在介绍Redis
2023年7月5日
其他

vivo 自研鲁班分布式 ID 服务实践

系统分库分表随着系统的持续运作,常规的单库单表在支撑更高规模的数量级时,无论是在性能或稳定性上都已经难以为继,需要我们对目标逻辑数据表进行合理的物理拆分,这些同一业务表数据的拆分,需要有一套完整的
2023年6月28日
其他

浅析 Jetty 中的线程优化思路

使得生产和消费任务能够在同一个线程上运行,这样做可以充分利用热缓存,避免调度延迟。这给我们做性能优化也提供了一些思路:在保证不发生线程饥饿的情况下,尽量使用同一个线程生产和消费可以充分利用
2023年6月21日
其他

“事后达尔文”—— 游戏业务效果评估方法实践

基于我们的研究人群(参与活动与未参与活动的人群),在活动前、活动期的研究指标(流水、利润)表现情况,如下图:其中:C1=A*(A4-A3*(B4/B3));
2023年6月21日
其他

vivo 游戏黑产反作弊实践

风控打击方案对用户请求设备参数进行严格校验,并结合帐号、ip信息等维度,准确识别用户身份监控领券成功数据和用券数据,及时发现漏过情况建立礼券交易情报监控体系,关注礼券交易情况3.2
2023年6月14日
其他

纠删码技术在vivo存储系统的演进【上篇】

基础知识介绍概念1:纠删码原理纠删码通用由两个参数n和k来进行配置,称为(n,k)编码。在分布式系统当中,通常将数据以固定大小的块进行组织,编码时,存储系统将k个数据块进行编码生成额外的n-k
2023年6月7日
其他

Kafka实时数据即席查询应用与实践

加载数据在完成2.3.1和2.3.2里面的内容后,接下来,我们可以使用Hive的load命令直接加载HDFS上预处理后的文件,把数据加载到对应的Hive表中,具体实现命令如下:--
2023年5月24日
其他

前端开发如何更好的避免样式冲突?级联层(CSS@layer)

red;}为了知道为什么上面的css代码能解决冲突问题,更好地理解级联层的作用,理解一些现象背后的根因,了解级联层和级联的关系,我们继续往下看。二、理解级联层的前提——级联(cascade)2.1
2023年5月24日
其他

深入浅出 OkHttp 源码解析及应用实践

的架构可以分为:应用接口层,协议层,连接层,缓存层,I/O层。不同的拦截器为各个层次的处理提供调用入口,拦截器通过责任链模式串联成拦截器链,从而完成一个Http请求的完整处理流程。如下图所示:图
2023年5月17日
其他

使用doop识别最近commons text漏洞的污点信息流

"org.apache.commons.text.TestctxTaintedParamAnnotation");为了确保方法的可达性,我们还添加了ImplicitReachable("")
2023年5月10日
其他

一种KV存储的GC优化实践

1基于这样的映射,可以直接把Tula的GC进行分配,而且基本在优化阶段2中无缝衔接。尝试基于分析得出的机制如下:图16:多Tula节点GC机制图示可以简单地描述优化之后的GC流程:①
2023年5月10日
其他

容易忽视的细节:Log4j 配置导致的零点接口严重超时

profile来区别配置,我们用的Log4j还不支持。切换日志底层框架的成本也比较高,另外早期的公司中间件与Log4j日志框架强耦合,无法简单切换,所以我们并没有采用这个方案。4.2
2023年4月19日
其他

明修"栈"道——越过Android启动栈陷阱

cls进行对比。场景012中,我们想跳转Activity2,即cls是Activity2,与Task底部的realActivity2相同,则将该Task顶部的Activity3
2023年4月12日
其他

MySQL主从复制原理剖析与应用实践

4+1+4+2+4+len(p.Name))第0-3位同样置为0,无特殊意义第4位是MySQL协议的Command_Binlog_Dump,byte值为18第5-8位是Binlog
2023年4月5日
其他

Hive 和 Spark 分区策略剖析

静态文件计算最简单的解决方案是,只要求开发者在每个写入任务的基础上,告诉Spark总共应该写入多少个文件。这种方式需要给开发者一些其他方法来获取具体的数字,可以通过这种方式来替代昂贵的计算。5.4.
2023年3月29日
其他

Android系统服务DropBoxManagerService详解与实践应用

文件添加完成之后通过发送广播通知,广播分为实时广播和延迟广播,延迟广播用来通知优先级较低的文件。//低优先级的可以发送延时广播mHandler.maybeDeferBroadcast(tag,
2023年3月22日
其他

非侵入式入侵 —— Web缓存污染与请求走私

通用防御措施禁用代理服务器与后端服务器之间的TCP连接重用。使用HTTP/2能够避免请求边界判定标准不一致的问题。前后置服务器使用同样的web服务器程序,保证对请求边界的判断标准是一致的。4.2
2023年3月8日
其他

广告流量反作弊风控中的模型应用

广告流量反作弊定义广告流量作弊,即媒体通过多种作弊手段,获取广告主的利益。作弊流量主要来自于:模拟器或者被篡改了设备的广告流量;真设备,但通过群控控制的流量;真人真机,但诱导产生无效流量等。1.2
2023年2月15日
其他

vivo官网App模块化开发方案-ModularDevTool

File('E:/AndroidCode/module_name_1/code/')project(':module_name_2').projectDir
2023年2月8日
其他

vivo 自研Jenkins资源调度系统设计与实践

Scheduler设计该系统我们从两大部分进行了设计,首先,我们不采用原生的Jenkins部署方案,而是采用全master的方式。第二,设计并开发了一套用于管理Jenkins集群的调度系统。五、底层
2023年2月8日
其他

用户行为分析模型实践(三)——H5通用分析模型

第N日留存。通常意义上的留存分析指的是:用户在APP产生行为后,在固定的第N日继续访问或使用APP的用户;包括活跃用户留存和新用户留存为满足不同业务的分析需求。此次留存模型包含
2023年2月1日
其他

100 行 shell 写个 Docker

完整脚本脚本一共用130行代码,完成了上面的功能,也算符合我们此次的标题了。为了大家可以更深入的理解脚本内容,这里就不再对脚本进行拆分讲解,以下是完整脚本。#!/usr/bin/env
2023年2月1日
其他

Dubbo 中 Zookeeper 注册中心原理分析

为分布式应用提供了高效且可靠的分布式协调服务,提供了诸如统一命名服务、配置管理和分布式锁等分布式的基础服务。在解决分布式数据一致性方面,ZooKeeper
2023年1月30日
其他

Node.js 应用全链路追踪技术——全链路信息存储

架构官方文档上的架构如下图所示:为了更好的理解,我这边对架构图进行了简化,简化架构图如下所示:从上图可以看到,分为三个部分:第一部分:全链路信息获取,我们不使用
2023年1月30日
其他

委派模式——从SLF4J说起

Driver和数据库建立连接发起transaction(必要的话),创建statement执行statement并读取返回,塞入ResultSet处理ResultSet关闭ResultSet,
2023年1月11日
其他

2022年vivo互联网技术最受欢迎文章TOP25

互联网技术共推送了100篇技术干货内容,涉及数据库、云计算、容器、前端、OKR等领域。今天小编整理了2022年公众号最受欢迎的25篇技术文章(根据阅读量和点赞筛选)。01Redis
2023年1月4日
其他

vivo 故障定位平台的探索与实践

计算异常波动范围(4)时间点标记:红线与时间线第一次相交的时间点是波动开始时间,红线与时间线最后一次相交的时间点是波动结束时间,起始时间和波动结束时间关于波动开始时间对称,如下图:图11
2023年1月4日