FastDFS 海量小文件存储解决之道

2022-04-26
阅读 6 分钟
1.8k
支持 Linux、FreeBSD、AID 等Unix系统,解决了大容量的文件存储和高并发访问问题,文件存取实现了负载均衡,适合存储 4KB~500MB 之间的小文件,特别适合以文件为载体的在线服务,如图片、视频、文档等等。

Spark SQL 字段血缘在 vivo 互联网的实践

2022-04-25
阅读 8 分钟
1.4k
作者:vivo互联网服务器团队-Hao Guangshi一、背景字段血缘是在表处理的过程中将字段的处理过程保留下来。为什么会需要字段血缘呢?有了字段间的血缘关系,便可以知道数据的来源去处,以及字段之间的转换关系,这样对数据的质量,治理有很大的帮助。Spark SQL 相对于 Hive 来说通常情况下效率会比较高,对于运行时间、资...

高效压缩位图在推荐系统中的应用

2022-04-19
阅读 4 分钟
1.4k
用户在浏览游戏中心/应用商店的某些模块内容时,会进行一系列滑屏操作并多次请求游戏推荐业务来进行游戏推荐展示,这段时间我们称之为一个用户session。

探究Presto SQL引擎(2)-浅析Join

2022-04-18
阅读 11 分钟
2.2k
在《探究Presto SQL引擎(1)-巧用Antlr》中,我们介绍了Antlr的基本用法以及如何使用Antlr4实现解析SQL查询CSV数据,更加深入理解Presto查询引擎支持的SQL语法以及实现思路。

解析分布式系统的缓存设计

2022-04-12
阅读 13 分钟
3.8k
一、缓存简介1.1 什么是缓存缓存就是数据交换的缓冲区。缓存的本质是一个内存 Hash。缓存是一种利用空间换时间的设计,其目标就是更快、更近:极大的提高。将数据写入/读取速度更快的存储(设备);将数据缓存到离应用最近的位置;将数据缓存到离用户最近的位置。缓存是用于存储数据的硬件或软件的组成部分,以使得后续...

状态机引擎在vivo营销自动化中的深度实践 | 引擎篇02

2022-04-11
阅读 14 分钟
3.2k
营销自动化平台支持多种不同类型运营活动策略(比如:短信推送策略、微信图文推送策略、App Push推送策略),每种活动类型都有各自不同的执行流程和活动状态。比如短信活动的活动执行流程如下:
封面图

深入剖析 RocketMQ 源码 - 负载均衡机制

2022-04-07
阅读 22 分钟
2k
RocketMQ是一款优秀的分布式消息中间件,在各方面的性能都比目前已有的消息队列要好,RocketMQ默认采用长轮询的拉模式, 单机支持千万级别的消息堆积,可以非常好的应用在海量消息系统中。

vivo 短视频推荐去重服务的设计实践

2022-04-06
阅读 7 分钟
1.2k
vivo短视频在视频推荐时需要对用户已经看过的视频进行过滤去重,避免给用户重复推荐同一个视频影响体验。在一次推荐请求处理流程中,会基于用户兴趣进行视频召回,大约召回2000~10000条不等的视频,然后进行视频去重,过滤用户已经看过的视频,仅保留用户未观看过的视频进行排序,选取得分高的视频下发给用户。
封面图

vivo 商品中台的可视化微前端实践

2022-03-29
阅读 7 分钟
2.4k
在电商领域内,商品是一个重要组成部分,与其对应的商品管理系统,则负责商品的新建、编辑、复制等功能。随着商品管理系统的成熟稳定和业务上的扩展需求,催化出了商品中台的诞生。它可以将现有商品功能最大效率的复用在很多业务上(公司内业务、公司外业务等)。而不是仅限于当前团队的业务使用。

时间轮原理及其在框架中的应用

2022-03-28
阅读 16 分钟
1.6k
1)心跳检测。在Dubbo中,需要有心跳机制来维持Consumer与Provider的长连接,默认的心跳间隔是60s。当Provider在3次心跳时间内没有收到心跳响应,会关闭连接通道。当Consumer在3次心跳时间内没有收到心跳响应,会进行重连。Provider侧和Consumer侧的心跳检测机制都是通过定时任务实现的,而且是本篇文章要分析的时间轮Ha...
封面图

跑马灯带你深入浅出TextView的源码世界

2022-03-22
阅读 8 分钟
2.4k
但是大家平时开发过程中肯定会遇到这样或那样的小问题,通过百度、Google搜索都无果,想尝试分析源码又不知道从什么地方开始分析起,导致最终放弃。

JVM自定义类加载器在代码扩展性的实践

2022-03-21
阅读 13 分钟
2.3k
名单管理系统是手机上各个模块将需要管控的应用配置到文件中,然后下发到手机上进行应用管控的系统,比如各个应用的耗电量管控;各个模块的管控应用文件考虑到安全问题,有自己的不同的加密方式,按照以往的经验,我们可以利用模板方法+工厂模式来根据模块的类型来获取到不同的加密方法。代码类层次结构示意如下:
封面图

HBase海量数据高效入仓解决方案

2022-03-15
阅读 2 分钟
1.4k
现阶段部分业务数据存储在HBase中,这部分数据体量较大,达到数十亿。大数据需要增量同步这部分业务数据到数据仓库中,进行离线分析,目前主要的同步方式是通过HBase的hive映射表来实现的。该种方式具有以下痛点:

vivo鲁班RocketMQ平台的消息灰度方案

2022-03-14
阅读 10 分钟
1.7k
RocketMQ(以下简称MQ)作为消息中间件在事务管理,异步解耦,削峰填谷,数据同步等应用场景中有着广泛使用。当业务系统进行灰度发布时,Dubbo与HTTP的调用可以基于业界通用的灰度方式在我们的微服务治理与网关平台来实现,但MQ已有的灰度方案都不能完全解决消息的隔离与切换衔接问题,为此,我们在鲁班MQ平台(包含根因...
封面图

Dubbo服务如何优雅的校验参数

2022-03-08
阅读 13 分钟
3.6k
服务端在向外提供接口服务时,不管是对前端提供HTTP接口,还是面向内部其他服务端提供的RPC接口,常常会面对这样一个问题,就是如何优雅的解决各种接口参数校验问题?

分布式数据库排序及优化

2022-03-07
阅读 4 分钟
1.6k
一、背景1.1 分布式数据库架构当前分布式数据库架构有不少,但是总体架构相差不大,主要组件都包含协调节点、数据分片、元数据节点、全局时钟。一种常见的分布式架构如下图:gtm :全局事务管理器(全局时钟),一主多备;catalog: 元数据管理,一主多备;group: 水平分片,每个group由一主多备数据存储节点组成;proxy : ...
封面图

vivo全球商城全球化演进之路——多语言解决方案

2022-03-01
阅读 6 分钟
2.2k
随着经济全球化的深入,许多中国品牌纷纷开始在海外市场开疆扩土。实现全球化意味着你的产品或者应用需要能够在全球各地的语言环境使用,我们在进行海外业务的推进时,需要面对的最大挑战就是多语言问题。实现好多语言系统的本地化,更方便快捷的修改多语言文案能让你的产品在各个国家地区里有更强的产品竞争力和更好的...

基于 Kafka 的实时数仓在搜索的实践应用

2022-02-28
阅读 6 分钟
2k
Apache Kafka 发展至今,已经是一个很成熟的消息队列组件了,也是大数据生态圈中不可或缺的一员。Apache Kafka 社区非常的活跃,通过社区成员不断的贡献代码和迭代项目,使得 Apache Kafka 功能越发丰富、性能越发稳定,成为企业大数据技术架构解决方案中重要的一环。

【营】在开局,提升【豹】发力 - vivo活动插件管理平台

2022-02-22
阅读 22 分钟
1.9k
随着vivo悟空活动中台活动组件越来越多,活动中台开发的小伙伴们愈发的感知到我们缺少一个可以沉淀通用能力,提升代码复用性的组件库。在这个目标基础之上诞生了acitivity-components,但是随着组件的抽离增多,在和上下游沟通时,发现公共组件对于运营、产品、测试同学来说都是黑盒,只有开发自己知道沉淀了哪些能力,...

vivo 服务端监控架构设计与实践

2022-02-21
阅读 9 分钟
1.8k
当今时代处在信息大爆发的时代,信息借助互联网的潮流在全球自由的流动,产生了各式各样的平台系统和软件系统,越来越多的业务也会导致系统的复杂性。
封面图

HTTP缓存协议实战

2022-02-16
阅读 11 分钟
2.4k
缓存,又称作Cache,我们把临时存储数据的地方叫做缓存池,缓存池里面放的数据就叫做缓存。当用户需要使用这些数据,首先在缓存中寻找,如果找到了则直接使用。如果找不到,则再去其他数据源中查找。

流量录制与回放在vivo的落地实践

2022-02-15
阅读 8 分钟
1.8k
近几年,vivo互联网领域处于高速发展状态,同时由于vivo手机出货量一直在国内名列前茅,经过多年积累,用户规模非常庞大。因此,vivo手机出厂内置很多应用,如浏览器、短视频、直播、资讯、应用商店等都是直面用户的高并发、复杂系统。这些面向用户的系统对使用体验要求非常高,对这些业务的质量保障是重中之重。

Redis 在 vivo 推送平台的应用与优化实践

2022-02-14
阅读 7 分钟
1.6k
vivo推送平台是vivo公司向开发者提供的消息推送服务,通过在云端与客户端之间建立一条稳定、可靠的长连接,为开发者提供向客户端应用实时推送消息的服务,支持百亿级的通知/消息推送,秒级触达移动用户。
封面图

vivo直播应用技术实践与探索

2022-02-09
阅读 7 分钟
2.2k
2019年vivo直播平台立项,初期与优秀的顶部直播平台进行联运直播开发,进行市场,产品和技术的初步探索;再到后来为了丰富直播的内容和形式,开始自己独立探索;之后,我们结合vivo现阶段的直播业务,陆续完成了泛娱乐,互动,公司事件直播等多种直播形式的落地,相信后续根据业务的规划,我们会给用户带来更好的直播体验。

vivo 评论中台的流量及数据隔离实践

2022-02-08
阅读 9 分钟
2.8k
vivo评论中台通过提供评论发表、点赞、举报、自定义评论排序等通用能力,帮助前台业务快速搭建评论功能并提供评论运营能力,避免了前台业务的重复建设和数据孤岛问题。目前已有vivo短视频、vivo浏览器、负一屏、vivo商城等10+业务接入。这些业务的流量大小和波动范围不同,如何保障各前台业务的高可用,避免因为某个业务...
封面图

vivo数据库与存储平台的建设和探索

2022-01-25
阅读 8 分钟
1.3k
本文根据Xiao Bo老师在“2021 vivo开发者大会"现场演讲内容整理而成。公众号回复【2021VDC】获取互联网技术分会场议题相关资料。

事件驱动架构在 vivo 内容平台的实践

2022-01-24
阅读 7 分钟
3k
所谓事件驱动的架构,也就是使用事件来实现跨多个服务的业务逻辑。事件驱动架构是一种设计应用的软件架构和模型,可以最大程度减少耦合度,很好地扩展与适配不同类型的服务组件。在这一架构里,当有重要事件发生时,比如更新业务数据,某个服务会发布事件,其它服务则订阅这些事件;当某一服务接收到事件就可以执行自己...
封面图

Jetpack—LiveData组件的缺陷以及应对策略

2022-01-18
阅读 16 分钟
2.3k
为了解决Android-App开发以来一直存在的架构设计混乱的问题,谷歌推出了Jetpack-MVVM的全家桶解决方案。作为整个解决方案的核心-LiveData,以其生命周期安全,内存安全等优点,甚至有逐步取代EventBus,RxJava作为Android端状态分发组件的趋势。

vivo推送平台架构演进

2022-01-17
阅读 7 分钟
1.6k
本文根据Li Qingxin老师在“2021 vivo开发者大会"现场演讲内容整理而成。公众号回复【2021VDC】获取互联网技术分会场议题相关资料。
封面图

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

2022-01-11
阅读 5 分钟
2.1k
岁月流转,时光飞逝,转眼2021年已经画上句号。过去一年,vivo 互联网技术共推送了107篇文章,涉及服务器、前端、数据库等技术。今天小编就带大家回顾一下2021年我们最受欢迎的25篇文章(根据阅读量和点赞筛选)。1《MongoDB在评论中台的实践》随着公司业务发展和用户规模的增多,很多项目都在打造自己的评论功能,而评...
封面图