作者:vivo互联网容器团队ZhangRong 本文主要讲述了一些对于K8s多集群管理的思考,包括为什么需要多集群、多集群的优势以及现有的一些基于Kubernetes衍生出的多集群管理架构实践。 一、为什么需要多集群 随着K8s和云原生技术的快速发展,以及各大厂商在自己的数据中心使用K8s的API进行容器化应用编排和管理,让应用交付本身变得越来越标准化和统一化,并且实现了与底层基础设施的完全解耦,为多集群和混合云提供了一个坚实技术基础。谈到多集群多云的数据中心基础架构,会想到为什么企业需要多集群? 1.单集群容量限制: 集群上限5000个节点和15万个Pod。同时单集群的最大节点数不是一个...

  1e1eAFDdY2vd   2023年11月02日   28   0   0

作者:vivo互联网服务器团队WangShimin 网络质量监测中心是一个用于数据中心网络延迟测量和分析的大型系统。通过部署在服务器上的Agent发起5次ICMPPing以获取端到端之间的网络延迟和丢包率并推送到存储与分析模块进行聚合和分析与存储。控制器负责分发PingList并通过数据中心内部消息通道将PingList下发至每台服务器上的Agent,而PingList就是每个Agent需要发起Ping的目标服务器列表。 一、概述 数据中心的建设是一个从无到有从小到大的过程,在数据中心建设初期,由于量级很小,我们想要了解网络状况是比较轻松的,在两台服务器上获取其网络延迟简直轻而易举,输入P...

  1e1eAFDdY2vd   2023年11月02日   26   0   0

作者:vivo互联网搜索团队DengJie 随着技术的不断的发展,大数据领域对于海量数据的存储和处理的技术框架越来越多。在离线数据处理生态系统最具代表性的分布式处理引擎当属Hive和Spark,它们在分区策略方面有着一些相似之处,但也存在一些不同之处。 一、概述 随着技术的不断的发展,大数据领域对于海量数据的存储和处理的技术框架越来越多。在离线数据处理生态系统最具代表性的分布式处理引擎当属Hive和Spark,它们在分区策略方面有着一些相似之处,但也存在一些不同之处。本篇文章将分析Hive与Spark分区策略的异同点、它们各自的优缺点,以及一些优化措施。 二、Hive和Spark分区概念 ...

  1e1eAFDdY2vd   2023年11月02日   22   0   0

作者:vivo互联网搜索团队DengJie Kafka中的实时数据是以Topic的概念进行分类存储,而Topic的数据是有一定时效性的,比如保存24小时、36小时、48小时等。而在定位一些实时数据的Case时,如果没有对实时数据进行历史归档,在排查问题时,没有日志追述,会很难定位是哪个环节的问题。 一、背景 Kafka中的实时数据是以Topic的概念进行分类存储,而Topic的数据是有一定时效性的,比如保存24小时、36小时、48小时等。而在定位一些实时数据的Case时,如果没有对实时数据进行历史归档,在排查问题时,没有日志追述,会很难定位是哪个环节的问题。因此,我们需要对处理的这些实时数...

  1e1eAFDdY2vd   2023年11月02日   39   0   0 实时数仓kafkakafka实时数仓

作者:vivo互联网存储技术团队HangZhengbo 本文对HBaseCompaction的原理、流程以及限流的策略进行了详细的介绍,列举了几个线上进行调优的案例,最后对Compaction的相关参数进行了总结。 一、Compaction介绍 HBase是基于一种LSM-Tree(Log-StructuredMergeTree)体系架构的存储模型设计的,写入时先写入WAL(Write-Ahead-Log)日志,再写入Memstore缓存,满足一定条件后,会执行Flush操作将缓存数据刷写到磁盘,生成一个HFile数据文件。随着数据不断写入,HFile文件会越来越多,文件太多导致查询数据时...

作者:vivo互联网大数据团队WangZhiwen 本文介绍了vivo在大数据元数据服务横向扩展道路上的探索历程,由实际面临的问题出发,对当前主流的横向扩展方案进行了调研及对比测试,通过多方面对比数据择优选择TiDB方案。其次分享了整个扩展方案流程、实施遇到的问题及解决方案,对于在大数据元数据性能上面临同样困境的开发者本篇文章具有非常高的参考借鉴价值。 一、背景 大数据元数据服务HiveMetastoreService(以下简称HMS),存储着数据仓库中所依赖的所有元数据并提供相应的查询服务,使得计算引擎(Hive、Spark、Presto)能在海量数据中准确访问到需要访问的具体数据,其在...

 vivo互联网服务器团队WeiLing 本文主要讲述的是如何根据公司网络架构和业务特点,锁定正常请求被误判为跨域的原因并解决。 一、问题描述 某一个业务后台在表单提交的时候,报跨域错误,具体如下图: 从图中可看出,报错原因为HTTP请求发送失败,由此,需先了解HTTP请求完整链路是什么。 HTTP请求一般经过3个关卡,分别为DNS、Nginx、Web服务器,具体流程如下图: 浏览器发送请求首先到达当地运营商DNS服务器,经过域名解析获取请求IP地址 浏览器获取IP地址后,发送HTTP请求到达Nginx,由Nginx反向代理到Web服务端 最后,由web服务端返回相应的资源 ...

  1e1eAFDdY2vd   2023年11月02日   34   0   0 WAFXSS跨域CORS

 vivo互联网服务器团队-YouShuo 副本迁移是Kafka最高频的操作,对于一个拥有几十万个副本的集群,通过人工去完成副本迁移是一件很困难的事情。CruiseControl作为Kafka的运维工具,它包含了Kafka服务上下线、集群内负载均衡、副本扩缩容、副本缺失修复以及节点降级等功能。显然,CruiseControl的出现,使得我们能够更容易的运维大规模Kafka集群。 备注:本文基于Kafka2.1.1开展。 一、Kafka负载均衡 1.1生产者负载均衡 Kafka客户端可以使用分区器依据消息的key计算分区,如果在发送消息时未指定key,则默认分区器会基于ro...

 vivo互联网服务器团队MaJian 一、概述 SPI(ServiceProviderInterface),是Java内置的一种服务提供发现机制,可以用来提高框架的扩展性,主要用于框架的开发中,比如Dubbo,不同框架中实现略有差异,但核心机制相同,而Java的SPI机制可以为接口寻找服务实现。SPI机制将服务的具体实现转移到了程序外,为框架的扩展和解耦提供了极大的便利。 得益于SPI优秀的能力,为模块功能的动态扩展提供了很好的支撑。 本文会先简单介绍Java内置的SPI和Dubbo中的SPI应用,重点介绍分析Spring中的SPI机制,对比SpringSPI和Java内置的S...

  1e1eAFDdY2vd   2023年11月02日   30   0   0 JavaspringSpring SPIJava SPI

vivo互联网服务器团队LiKui 一、简介 1.1RocketMQ简介 RocketMQ是由阿里巴巴开源的分布式消息中间件,支持顺序消息、定时消息、自定义过滤器、负载均衡、pull/push消息等功能。RocketMQ主要由Producer、Broker、Consumer、NameServer四部分组成,其中Producer负责生产消息,Consumer负责消费消息,Broker负责存储消息。NameServer充当名字路由服务,整体架构图如下所示: Producer:负责生产消息,一般由业务系统生产消息,可通过集群方式部署。RocketMQ提供多种发送方式,同步发送、异步发送、顺序...

  1e1eAFDdY2vd   2023年11月02日   25   0   0 ACKRocketMQ中间件

vivo官网商城开发团队ZhouLongjian 一、背景 随着O2O线上线下业务的不断扩展,电商平台也在逐步完善交易侧相关的产品功能。在最近的需求版本中,业务方为进一步提升用户的使用体验,规划了取货码生成及订单核销相关逻辑,目的是让线上的用户在付完款之后能够到店取货或者安排导购派送。 日常生活中,我们对取货码、核销这类功能使用的经历大部分都来自:看电影前取票、吃饭后出示券码、快递柜取包裹等等,它们都有一些类似的特点,比如: 取货码长度相对较短,比起动辄十几二十位订单号,几位的数字码更方便记忆和输入; 除了数字取货码,还提供二维码,方便终端进行扫描并核销。 取货码使用起很简单,然而像“...

  1e1eAFDdY2vd   2023年11月02日   21   0   0 Java系统设计saas

作者:vivo互联网服务器团队ChenDongxing、LiHaoxuan、ChenJinxia 随着业务的日渐复杂,性能优化俨然成为了每一位技术人的必修课。性能优化从何着手?如何从问题表象定位到性能瓶颈?如何验证优化措施是否有效?本文将介绍分享vivopush推荐项目中的性能调优实践,希望给大家提供一些借鉴和参考。 一、背景介绍 在Push推荐中,线上服务从Kafka接收需要触达用户的事件,之后为这些目标用户选出最合适的文章进行推送。服务由Java开发,CPU密集计算型。 随着业务的不断发展,请求并发及模型计算量越来越大,导致工程上遇到了性能瓶颈,Kafka消费出现严重的积压现象,无法及...

  1e1eAFDdY2vd   2023年11月02日   21   0   0 JVMJava性能调优缓存内存

作者:vivo互联网服务器团队WangFei、LinYupan Dubbo泛化调用特性可以在不依赖服务接口API包的场景中发起远程调用,这种特性特别适合框架集成和网关类应用开发。 本文结合在实际开发过程中所遇到的需要远程调用多个三方系统的问题,阐述了如何利用Dubbo泛化调用来简化开发降低系统耦合性的项目实践,最后对Dubbo泛化调用的原理进行了深度解析。 一、背景 统一配置平台是一个提供终端设备各个模块进行文件配置和文件下发能力的平台,模块开发在后台服务器进行文件配置,然后终端设备可以按照特定规则获取对应的配置文件,文件下发可以按照多种设备维度进行下发,具体项目框架可以参加下图: 现有...

  1e1eAFDdY2vd   2023年11月02日   24   0   0 配置管理Dubbo中间件配置中心

作者:vivo互联网服务器团队 本文是《vivo营销自动化技术解密》的第5篇文章,重点分析介绍在营销自动化业务中实时营销场景的背景价值、实时营销引擎架构以及项目开发过程中如何利用动态队列做好业务流量隔离,动态发布,使用规则引擎来提升营销规则的配置效率等几种关键技术设计实践。 《vivo营销自动化技术解密》系列文章: ​​vivo营销自动化技术解密|开篇​​​ ​​设计模式如何提升vivo营销自动化业务扩展性|引擎篇01​​ ​​状态机引擎在vivo营销自动化中的深度实践|引擎篇02​​ ​​工作流引擎在vivo营销自动化中的应用实践|引擎篇03​​ 一、背景  营销自动化的触...

  1e1eAFDdY2vd   2023年11月02日   51   0   0 营销自动化架构设计规则引擎

vivo互联网平台产品研发团队YangYang 本篇为《vivo平台产品》系列文章的第1篇。主要描述在业务高速发展的背景下,vivo软件工程师通过系统平台化建设等手段,逐步解决软件复用,快速响应业务变化等棘手问题的过程。我们从中精选出内容审核平台、AB实验平台、版本发布平台等具备代表性的平台产品,为大家对平台化的经历进行详细的介绍。 一、平台化 1.1 业务现状 vivo的互联网业务起始于2011年,经过多年的发展,vivo互联网各核心应用的日活均已达到千万级以上,截至2022年vivo累计用户数已经达到了5亿。以应用商店、浏览器、视频、游戏中心、钱包、官网商城为代表,逐渐形成了...

  1e1eAFDdY2vd   2023年11月02日   100   0   0 架构平台化

作者:vivo互联网服务器团队ZhangPeng SPI是一种用于动态加载服务的机制。它的核心思想就是解耦,属于典型的微内核架构模式。SPI在Java世界应用非常广泛,如:Dubbo、SpringBoot等框架。本文从源码入手分析,深入探讨JavaSPI的特性、原理,以及在一些比较经典领域的应用。 一、SPI简介 SPI全称ServiceProviderInterface,是Java提供的,旨在由第三方实现或扩展的API,它是一种用于动态加载服务的机制。Java中SPI机制主要思想是将装配的控制权移到程序之外,在模块化设计中这个机制尤其重要,其核心思想就是解耦。 JavaSPI有四个要素:...

  1e1eAFDdY2vd   2023年11月02日   51   0   0 springbootJavaDubbospi

vivo互联网平台产品研发团队BaoDawei 本篇介绍了vivo霍金实验平台的系统架构以及业务发展过程中遇到的问题以及对应的解决方案。 《平台产品》系列文章: 1.​​vivo平台化实践探索之旅-平台产品系列01​​ 一、前言 互联网企业经历过野蛮生长的开拓红利期之后,逐渐越发重视产品发展的科学化、精细化,从粗放型向集约型转换。在美国,增长黑客等数据驱动增长的方法论,正在帮助如Google、Microsoft、Facebook等全球科技巨头实现持续的业务增长;在国内,数据精细运营、AB实验分析来驱动业务有效增长也逐渐成为共识,成为核心手段。其中,A/B测试平台作为典型代表,自然成为了...

  1e1eAFDdY2vd   2023年11月02日   22   0   0 AB测试平台化系统架构

作者:vivo互联网数据库团队DuTing 在Redis运维过程中,由于Bigkey的存在,会影响业务程序的响应速度,严重的还会造成可用性损失,DBA也一直和业务开发方强调Bigkey的规避方法以及危害。 一、背景 在Redis运维过程中,由于Bigkey的存在,会影响业务程序的响应速度,严重的还会造成可用性损失,DBA也一直和业务开发方强调Bigkey的规避方法以及危害,但是Bigkey一直没有完全避免。全网Redis集群有2200个以上,实例数量达到4.5万以上,在当前阶段进行一次全网Bigkey检查,估计需要以年为时间单位,非常耗时。我们需要新的思路去解决Bigkey问题。 二、Bi...

  1e1eAFDdY2vd   2023年11月02日   44   0   0 bigkeyredisdba

作者:vivo互联网服务器团队FengXiang 在日常业务开发工作中我们经常会遇到一些根据业务规则做决策的场景。为了让开发人员从大量的规则代码的开发维护中释放出来,把规则的维护和生成交由业务人员,为了达到这种目的通常我们会使用规则引擎来帮助我们实现。 本篇文章主要介绍了规则引擎的概念以及Kie和Drools的关系,重点讲解了Drools中规则文件编写以及匹配算法Rete原理。文章的最后为大家展示了规则引擎在催收系统中是如何使用的,主要解决的问题等。 一、业务背景 1.1催收业务介绍 消费贷作为vivo钱包中的重要业务板块当出现逾期的案件需要处理时,我们会将案件统计收集后导入到催收系统中,...

  1e1eAFDdY2vd   2023年11月02日   46   0   0 drools规则引擎

作者:vivo互联网算法团队ShenJiyi 本文根据沈技毅老师在“2022vivo开发者大会"现场演讲内容整理而成。 混排层负责将多个异构队列的结果如广告、游戏、自然量等进行融合,需要在上下游和业务多重限制下取得最优解,相对复杂和难以控制。本文主要从业务、模型等角度介绍了vivo广告策略团队在信息流和应用商店混排上的一些探索和思考。 一、背景介绍 首先介绍一下什么是混排。所谓混排,如图所示就是需要在保障用户体验前提下,通过对不同队列中的异构内容进行合理混合,实现收益最优,更好的服务广告主和用户。 混排的核心挑战体现在: 不同队列item建模目标不同,难以直接对比。比如有的队列按照...

  1e1eAFDdY2vd   2023年11月02日   41   0   0 应用商店强化学习建模
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~