vivo互联网技术

其他

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

改造前应用服务任务消费模式示意图当前设计虽然可以做到防止内存溢出等问题,但是这样的设计也存在一定的缺陷:如果后续用户量增多,可以考虑水平扩充服务的数量,但是用于持久化任务记录的数据库会成为瓶颈。即使
8月28日 下午 8:00
其他

MySQL亿级数据平滑迁移实战

,需要转换后才可用。下图是MapperMethod.convertArgsToSqlCommandParam(Object[]
8月21日 下午 8:00
其他

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

(序号)就是用来标记生产者数据生产到哪了,消费者数据消费到哪了。Sequencer:分为单生产者和多生产者两种实现,生产者发布数据时需要先申请下可用序号,Sequencer
8月14日 下午 8:01
其他

MySQL 5.7 DDL 与 GH-OST 对比分析

metadata】:忽略【build-index】:额外需要,新增索引字段占用的空间【rebuild-table】:额外需要约两倍的表空间【copy】:额外需要约两倍的表空间【GH-OST】
8月7日 下午 8:00
其他

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

.recordStats().maximumSize(VivoConfigManager.getInteger("trade.account.white.list.cache.size",
7月24日 下午 7:59
其他

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

3D展览馆前端生成海报图技术选型与问题解决vivo
7月17日 下午 8:59
其他

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

操作进行了限流,并且通过多次测试调整Compact上文提到的两个限流的阈值,取得了非常好的效果。Compact期间的耗时下降了70%y以上。下图展示了采取限流前后的耗时对比。4.5
7月10日 下午 8:59
其他

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

实现思路而我们将要采取的分块获取数据的方式则是在这一基础上进行了优化,我们逐步介绍逻辑,首先这里假定使用的分块大小为10行–chunk_size=101.数据分块mysql>
7月3日 下午 9:00
其他

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

确认技术架构提交仓库前进行代码评审,我们使用当前成熟的代码评审Gerrit,实施过程中最大的问题是用户如何低成本切换及简单评审的问题,对于当前Gerrit评审工具遇到的问题如何解决呢?1)
6月26日 下午 8:59
其他

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

正常增删元素不会使Container直接变成RunContainer,而需要用户进行优化方法调用才会转换为最节省空间的Container。3.3
6月19日 下午 8:59
其他

TiKV 源码分析之 PointGet

thread,请求在被路由到Storage层后,会根据读写属性路由到不同的线程池中,只读语义的Get/Scan请求都会被路由到ReadPool中执行,这是一个特定用于处理只读请求的线程池。4.3
6月12日 下午 8:59
其他

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

实现方式根据海报图生成渠道的差异,可以将海报图生成分为:客户端生成、前端生成和服务端生成,以下是从技术实现、兼容性、生成速度和功能受限四个维度进行的对比:对于排版复杂的场景:
6月5日 下午 8:59
其他

vivo 制品管理在 CICD 落地实践

制品安全扫描(1)制品存在哪些安全风险制品/依赖组件存在安全漏洞:未经过扫描的制品,制品或者制品中的依赖组件存在一些安全漏洞,黑客可以利用这些漏洞入侵系统。制品中可能存在恶意代码:未经过扫描的制品,
5月29日 下午 8:59
自由知乎 自由微博
其他

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

计算数据分布从SQL过滤条件看只有is_deleted、user_type、id这三个,能预估到is_deleted和user_type区分度不高,通过SQL查看下数据的分布。mysql>
5月22日 下午 9:00
其他

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

}当然实际上不对称的类还有很多,大家可以看下网上泄露出来的漏洞利用源码,有很多这样的类,这里就不列出来了,知道了漏洞的本质是因为Parcel读写不对称,我们接下来看一下其中的原理。4.3
5月15日 下午 8:59
其他

HBase Meta 元信息表修复实践

修复)。如果出现Region分配失败,不存在RegionServer时候,手工assign都没办法恢复,如Region被分配到bogus.example.com,1,1节点只能通过切换HMaster
5月8日 下午 8:59
其他

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

user)获取时候,在debug调试时,发现此处每次都能获取到一个新的Subject对象。也就是说相同的hdfs路径每次都会缓存一个FileSystem对象。猜想二得到验证:同一个hdfs
4月24日 下午 8:59
其他

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

第3日留存用户数/起始用户数*100%。用户留存数表(即表1)表示起始事件为“打开浏览器”、回访事件为“退出浏览器”时,对应2023-01-06~2023-01-09每天的近3天的留存用户数据。表1
4月17日 下午 8:59
其他

Redis Pipelining 底层原理分析及实践

可以根据圈选的用户标签预先计算出单个用户需要下发的图标样式并存储在Redis里面,从而提升性能,这里就涉及Redis的批量操作问题,业务流程如下:为了提升Redis操作性能,我们决定使用Redis
4月10日 下午 8:59
其他

MySQL 主从 AUTO_INCREMENT 不一致问题分析

0正常情况下,插入一行数据,影响的行数是1。此时查看主从节点表的autoincrement值,可以看到此时主从的AUTO_INCREMENT是一致的,都是4,即自增主键下一次申请的值是4。2.3
4月3日 下午 8:59
其他

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

mq-meta主要负责平台元数据管理,以及业务SDK启动时的鉴权寻址操作。业务进行topic申请时,会自动分配创建到两个不同机房的broker上。鉴权寻址时会根据业务接入Key找到所在
3月27日 下午 8:59
其他

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

虚拟机栈得到Native方法。Java虚拟机栈区域:负责Java的解释过程、程序的执行过程、入栈和出栈,它是与线程相关的,当启动一个新的线程时,Java程序就会分配一个Java
3月19日 下午 8:59
其他

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

'123'三部分进行改写拼装。toSQLorg.apache.shardingsphere.underlying.rewrite.sql.impl.AbstractSQLBuilder#toSQL
3月6日 下午 8:59
其他

vivo 在离线混部探索与实践

YARN模式下申请的container内存大小,不止是由Spark任务本身的内存参数决定,还会被YARN的资源粒度参数所影响。所以这块要做一些适配对标工作。在任务量比较大的情况下,Spark
2月28日 下午 9:00
其他

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

应用,这种情况下可能出现连接被断开,当恢复播放时需要重新建连,从而导致播放卡顿的问题。通过连接保活,可确保再次播放时视频快速下载、快速
2月21日 下午 8:59
其他

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

数据完整性在数据采集,实时ETL和离线ETL,写ODS过程中,如何确保数据不丢,不错,保持数据完整性
1月24日 下午 8:59
其他

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

开发者大会)平台,感谢开源社区的赋能,助力vivo微服务架构技术体系从0到1的快速构建。1.4
1月10日 下午 8:59
其他

Spring 七种事务传播性介绍

MANDATORY必须在事务中执行。如果外层方法A没有开启事务,方法B抛出异常。如果外层方法A开启了事务,方法B加入事务,方法A&B在同一事务中执行。例子:以上例子,方法A没有加事务注解,方法B
1月3日 下午 8:59
其他

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

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

vivo 容器平台资源运营实践

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

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

为什么要保护JS代码JavaScript代码运行于客户端JavaScript代码是公开透明的由于这两个原因,致使JavaScript代码是不安全的,任何人都可以读、分析、复制、盗用甚至篡改。1.3
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日