分布式数据库排序及优化

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

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

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

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

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

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

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

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

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

HTTP缓存协议实战

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

vivo推送平台架构演进

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

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

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

前端质量提升利器-马可代码覆盖率平台

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

版本不兼容Jar包冲突该如何是好?

2021-12-28
阅读 8 分钟
3.7k
常言道:编码五分钟,解冲突两小时。作为Java开发来说,第一眼见到ClassNotFoundException、NoSuchMethodException这些异常来说,第一反应就是排包。经过一通常规和非常规操作以后,往往会找到同一个Jar包引入了多个不同的版本,这时候一般排除掉低版本、保留高版本就可以了,这是因为一般Jar包都是向下兼容的。但是,如...

DevTools 实现原理与性能分析实战

2021-12-27
阅读 19 分钟
4.7k
从 2008 年 Google 释放出第一版的 Chrome 后,整个 Web 开发领域仿佛被注入了一股新鲜血液,渐渐打破了 IE 一家独大的时代。Chrome 和 Firefox 是 W3C Web 标准的坚定支持者,随着这两款开源浏览器市场份额逐渐加大,迎来了开发者的春天。这就迎来了一个新的职业分工——前端工程师 frontend-engineer,前端工程师促进了 ...
封面图

JDK ThreadPoolExecutor核心原理与实践

2021-12-21
阅读 26 分钟
4k
本文内容主要围绕JDK中的ThreadPoolExecutor展开,首先描述了ThreadPoolExecutor的构造流程以及内部状态管理的机理,随后用大量篇幅深入源码探究了ThreadPoolExecutor线程分配、任务处理、拒绝策略、启动停止等过程,其中对Worker内置类进行重点分析,内容不仅包含其工作原理,更对其设计思路进行了一定分析。文章内容既...

Kubernetes 集群无损升级实践

2021-12-20
阅读 10 分钟
3.1k
活跃的社区和广大的用户群,使 Kubernetes 仍然保持3个月一个版本的高频发布节奏。高频的版本发布带来了更多的新功能落地和 bug 及时修复,但是线上环境业务长期运行,任何变更出错都可能带来巨大的经济损失,升级对企业来说相对吃力,紧跟社区更是几乎不可能,因此高频发布和稳定生产之间的矛盾需要容器团队去衡量和取舍。
封面图

2021 VDC :vivo 互联网服务亿级用户的技术架构演进之路

2021-12-17
阅读 3 分钟
2.6k
2021年12月16日,vivo 开发者大会圆满落幕。在互联网技术专场中,来自vivo 互联网技术的6位研发专家,从基础架构、效能提升两方面分享了 vivo互联网技术服务亿级用户的技术架构演进之路。
封面图

JavaMoney规范(JSR 354)与对应实现解读

2021-12-14
阅读 27 分钟
3.1k
当前JDK中用来表达货币的类为java.util.Currency,这个类仅仅能够表示按照[ISO-4217]描述的货币类型。它没有与之关联的数值,也不能描述规范外的一些货币。对于货币的计算、货币兑换、货币的格式化没有提供相关的支持,甚至连能够代表货币金额的标准类型也没有提供相关说明。JSR-354定义了一套标准的API用来解决相关的这...

vivo浏览器的快速开发平台实践-总览篇

2021-12-13
阅读 4 分钟
2k
快速开发平台,顾名思义就是可以使得开发更为快速的开发平台,是提高团队开发效率的生产力工具。近一两年,国内很多公司越来越注重研发效能的度量和提升,基于软件开发的特点,覆盖管理和优化、团队工程实践、个人工程实践、优化流程四大方面。本文所讲的快速开发平台可以大幅缩短需求周期,给研发效能带来了开发快、上...
封面图

字节码引用检测原理与实战

2021-12-07
阅读 10 分钟
2.6k
本章中的字节码重点研究Java 字节码,Java字节码(Java bytecode)是Java虚拟机执行的一种指令格式。可以通过javap -c -v xxx.class(Class文件路径) 命令来查看一个Class对应的字节码文件,如下图所示:

vivo 敏感词匹配系统的设计与实践

2021-12-06
阅读 6 分钟
2.9k
谛听系统是vivo的内容审核平台,保障了vivo各互联网产品持续健康的发展。谛听支持审核多种内容类型,但日常主要审核的内容是文本,下图是一个完整的文本审核流程,包括名单匹配、敏感词匹配、AI机器审核、人工审核四个环节。待审核文本需要顺次通过名单匹配、敏感词匹配、AI机器审核三个流程,若结果为嫌疑则需要人工审...

Redis线程模型的前世今生

2021-11-30
阅读 13 分钟
2.4k
众所周知,Redis是一个高性能的数据存储框架,在高并发的系统设计中,Redis也是一个比较关键的组件,是我们提升系统性能的一大利器。深入去理解Redis高性能的原理显得越发重要,当然Redis的高性能设计是一个系统性的工程,涉及到很多内容,本文重点关注Redis的IO模型,以及基于IO模型的线程模型。

服务API版本控制设计与实践

2021-11-29
阅读 4 分钟
3.4k
笔者曾负责vivo应用商店服务器开发,有幸见证应用商店从百万日活到几千万日活的发展历程。应用商店客户端经历了大大小小上百个版本迭代后,服务端也在架构上完成了单体到服务集群、微服务升级。
封面图

Chrome 插件特性及实战场景案例分析

2021-11-23
阅读 6 分钟
9.2k
提起Chrome扩展插件(Chrome Extension),每个人的浏览器中或多或少都安装了几个插件,像一键翻译、广告屏蔽、录屏等等,通过使用这些插件,可以有效的提高我们的工作效率;但有时候,我们想要的某个功能市面上没有现成的插件,作为开发者自然而然想到,自己是否可以动手开发一个定制化的插件?网上目前很多不错的关于Chr...

vivo统一告警平台设计与实践

2021-11-22
阅读 6 分钟
3.1k
一套监控系统检测和告警是密不可分的,检测用来发现异常,告警用来将问题信息发送给相应的人。vivo监控系统1.0时代各个监控系统分别维护一套计算、存储、检测、告警收敛逻辑,这种架构下对底层数据融合非常不利,也就无法实现监控系统更广泛场景的应用,所以需要进行整体规划,重新对整个监控系统架构进行调整,在这样的...
封面图

Android Activity Deeplink启动来源获取源码分析

2021-11-16
阅读 9 分钟
5.1k
针对不同的跳入类型,app可能会选择提供不一致的服务,这个时候就需要对外部跳入的应用进行区分。一般来讲,我们会使用反射来调用Acticity中的mReferrer字段来获取跳转来源的包名。