vivo 互联网业务就近路由技术实战

2020-12-28
阅读 5 分钟
2.1k
在vivo互联网业务高速发展的同时,支撑的服务实例规模也越来越大,然而单个机房能承载的机器容量是有限的,于是同城多机房甚至多地域部署就成为了业务在实际部署过程中不得不面临的场景。

vivo 全球商城:订单中心架构设计与实践

2020-12-28
阅读 7 分钟
4.7k
从2017年开始启动的 v2.0 架构升级,基于业务模块进行垂直的系统物理拆分,拆分出来业务线各司其职,提供服务化的能力,共同支撑主站业务。

发布会直播技术及业务实践

2020-12-23
阅读 8 分钟
2.1k
随着直播行业的近年来的发展,直播技术现已日趋成熟。本文主要介绍目前主流的直播技术原理,以及在直播在发布会场景下的应用以及过程中遇到的问题及解决方案。

vivo 商城架构升级-SSR 实战篇

2020-12-22
阅读 7 分钟
3.1k
在本文中,我们来分享一下vivo官网商城在Node 服务端渲染(Server Side Rendering, SSR)方面的实战经验。本文主要围绕以下几个方面进行阐述:

vivo 微服务 API 网关架构实践

2020-12-21
阅读 14 分钟
2.5k
Java:Zuul1/Zuul2、Spring Cloud Gateway、gravitee-gateway、Dromara Soul 等;

SPI 在 Dubbo中 的应用

2020-12-16
阅读 20 分钟
2.2k
SPI 全称为 Service Provider Interface,是一种模块间组件相互引用的机制。其方案通常是提供方将接口实现类的全名配置在classPath下的指定文件中,由调用方读取并加载。这样需要替换某个组件时,只需要引入新的JAR包并在其中包含新的实现类和配置文件即可,调用方的代码无需任何调整。优秀的SPI框架能够提供单接口多实...

Sentinel 是如何做限流的

2020-12-15
阅读 10 分钟
6.2k
之前的项目中使用的限流措施主要是Guava的RateLimiter。RateLimiter是基于令牌桶流控算法,使用非常简单,但是功能相对比较少。

领域驱动设计(DDD)实践之路(四):领域驱动在微服务设计中的应用

2020-12-15
阅读 13 分钟
3.4k
这是“领域驱动设计实践之路”系列的第四篇文章,从单体架构的弊端引入微服务,结合领域驱动的概念介绍了如何做微服务划分、设计领域模型并展示了整体的微服务化的系统架构设计。结合分层架构、六边形架构和整洁架构的思想,以实际使用场景为背景,展示了一个微服务的程序结构设计。

vivo 全球商城:从 0 到 1 代销业务的融合之路

2020-12-14
阅读 4 分钟
1.7k
近两年,内销商城业务的发展十分迅速,vivo 商城系统的架构也完成了从单体往分布式的演进。我们在 vivo 商城服务化方向做了很多的努力,基础服务的能力逐渐沉淀下来。

vivo 全球商城:架构演进之路

2020-12-14
阅读 5 分钟
2.7k
vivo官方商城,是vivo官方的线上电商平台,主营vivo手机及专属配件。经过几年发展,已经完成了从单体应用到具备综合能力电商平台的演进,整体系统架构也逐步往服务化、中台化变迁。我们在这条系统架构升级的道路中,实践出了一些系统架构经验。

当我们谈前端性能的时候,我们谈的是什么

2020-12-09
阅读 7 分钟
6.3k
前端页面的性能,一直都是大家持续关注的一个领域,因为用户的留存率和页面加载性能息息相关。根据google做出的数据统计,页面访问时长从1s增加到3s,用户跳出率增加32%。

异步编程之事件循环机制

2020-12-08
阅读 3 分钟
2.2k
本文着重讲解通过事件循环机制来实现多个异步操作的有序执行、并发执行;通过事件队列实现同级多个并发操作的先后执行顺序,通过微任务和宏任务的概念来讲解不同阶段任务执行的先后顺序,最后通过将浏览器和 Node 下的事件循环机制进行对比,对比其事件循环机制的不同之处,以及在 Node 端通过libuv引擎来实现多个异步任...

分布式搜索引擎 Elasticsearch 的架构分析

2020-12-08
阅读 8 分钟
2.3k
 ES(Elasticsearch下文统一称为ES)越来越多的企业在业务场景是使用ES存储自己的非结构化数据,例如电商业务实现商品站内搜索,数据指标分析,日志分析等,ES作为传统关系型数据库的补充,提供了关系型数据库不具备的一些能力。

Seata是什么?一文了解其实现原理

2020-12-07
阅读 6 分钟
2.4k
随着业务发展,单体系统逐渐无法满足业务的需求,分布式架构逐渐成为大型互联网平台首选。伴随而来的问题是,本地事务方案已经无法满足,分布式事务相关规范和框架应运而生。

Canal 组件简介与 vivo 帐号实践

2020-12-07
阅读 7 分钟
2.8k
互联网应用随着业务的发展,部分单表数据体量越来越大,应对服务性能与稳定的考虑,有做分库分表、数据迁移的需要,本文介绍了vivo帐号应对以上需求的实践。

Java 8 Stream原理解析

2020-12-03
阅读 4 分钟
6.9k
说起 Java 8,我们知道 Java 8 大改动之一就是增加函数式编程,而 Stream API 便是函数编程的主角,Stream API 是一种流式的处理数据风格,也就是将要处理的数据当作流,在管道中进行传输,并在管道中的每个节点对数据进行处理,如过滤、排序、转换等。

源码深度解析 Handler 机制及应用

2020-12-02
阅读 23 分钟
2.7k
在 Android 开发中,Handler及相关衍生类的应用经常用到,Android的运行也是建立在这套机制上的,所以了解其中的原理细节,以及其中的坑对于每位开发者来说都是非常有必要的。Handler机制的五个组成部分:Handler、Thread(ThreadLocal)、Looper、MessageQueue、Message。

彻底搞懂 IO 底层原理

2020-11-30
阅读 8 分钟
2.5k
“道”  最基础的计算机理论,隐藏于表象之下,非常抽象、晦涩难懂,需要用具象化的事物加以理解;“术” 具体的技艺,它有可能是一门语言,比如:python 出手见效快;

播放器性能优化之路

2020-11-25
阅读 4 分钟
4k
下面是播放的完整流程:播放器加载一个网络url,首先要进行网络请求,网络如何优化,涉及到网络优化的方方面面。网络拉取回来数据之后,识别一下当前视频的具体封装格式,这个可以正式流式视频,也可以是普通视频,优化的手段有点不同。识别到具体的封装格式,按照封装格式的要求,开始解析封装格式,解析其中的音频流、...

vivo商城前端架构升级—多端统一探索、实践与展望篇

2020-11-24
阅读 6 分钟
1.6k
一、引言本文将会从整体上介绍 vivo 商城在前端维度的多端统一探索和实践。从多端价值、为什么要做多端统一、如何满足多端业务需求、实践与创新,简洁直白的阐述我们在多端统一上所做的一切。二、多端探索为vivo商城带来了哪些价值多端的价值可以从技术架构升级和人力资源释放两个方面体现。1、技术架构全面升级从到我们...

vivo 调用链 Agent 原理及实践

2020-11-23
阅读 11 分钟
3.5k
2017年,vivo互联网研发团队认为调用链系统对实际业务具有较大的价值,于是开始了研发工作。3年的时间,调用链系统整体框架不断演进……本文将介绍vivo调用链系统 Agent 技术原理及实践经验。

分布式集群如何实现高效的数据分布

2020-11-18
阅读 5 分钟
2.5k
随着互联网的发展,用户产生的数据越来越多,企业面临着庞大数据的存储问题,目前市面上主流的分布式大数据文件系统,都是对数据切片打散,通过离散方法将数据散列在集群的所有节点上,本文将带你了解DHT(Distributed Hash Table):分布式哈希表是如何实现数据的分布式离散存储的。

如何在公司项目中使用 WebSocket— 入门实战指南

2020-11-17
阅读 3 分钟
4.8k
本文从 WebSocket 基础概念出发,介绍在实际开发中从本地联调到部署上线的流程以及注意事项,让 WebSocket 小白以最小成本应用到项目中。

vivo 云服务海量数据存储架构演进与实践

2020-11-16
阅读 6 分钟
1.7k
随着 vivo 云服务业务发展,云服务用户量增长迅速,存储在云端的数据量越来越大,海量数据给后端存储带来了巨大的挑战。云服务业务这几年最大的痛点,就是如何解决用户海量数据的存储问题。

使用 Preload&Prefetch 优化前端页面的资源加载

2020-11-11
阅读 6 分钟
2.6k
对于前端页面来说,静态资源的加载对页面性能起着至关重要的作用。本文将介绍浏览器提供的两个资源指令-preload/prefetch,它们能够辅助浏览器优化资源加载的顺序和时机,提升页面性能。

Hystrix 如何解决 ThreadLocal 信息丢失

2020-11-10
阅读 9 分钟
2.2k
笔者在业务开发中涉及到使用 ThreadLocal 来存放上下文链路中一些关键信息,其中一些业务实现对外部接口依赖,对这些依赖接口使用了Hystrix作熔断保护,但在使用Hystrix作熔断保护的方法中发现了获取 ThreadLocal 信息与预期不一致问题,本文旨在探讨如何解决这一问题。

vivo悟空活动中台-打造 Nodejs 版本的MyBatis

2020-11-09
阅读 19 分钟
1.6k
在往期的系列技术文章中我们主要集中分享了前端技术的方方面面,如微组件的状态管理,微组件的跨平台探索,以及有损布局,性能优化等等。还未关注到的同学,如果感兴趣可以查看往期文章。

从勾股定理到余弦相似度-程序员的数学基础

2020-11-03
阅读 11 分钟
3k
大部分程序员由于理工科的背景,有一些高数、线性代数、概率论与数理统计的数学基础。所以当机器学习的热潮来临的时候,都跃跃欲试,对机器学习的算法以及背后的数学思想有比较强烈的探索欲望。

浅谈 Java 中的 AutoCloseable 接口

2020-11-02
阅读 10 分钟
1.3k
本文对 try-with-resources 语法进行了较为深入的剖析,验证了其为一种语法糖,同时给出了其实际的实现方式的反编译结果,相信你在看完本文后,关于 AutoCloseable 的使用你会有新的收获。

MySQL 8 新特性之Clone Plugin

2020-10-29
阅读 12 分钟
1.6k
Clone Plugin是MySQL 8.0.17引入的一个重大特性,为什么要实现这个特性呢?个人感觉,主要还是为Group Replication服务。在Group Replication中,添加一个新的节点,差异数据的补齐是通过分布式恢复(Distributed Recovery)来实现的。