Tair

阿里双11技术详解:容量规划+LDC+弹性架构+大促中控等

别说谁变了你拦得住时间么 提交于 2020-11-12 11:47:30
每一年的双十一都是新技术的演练场,对于技术人员来说,维持双11全天24小时稳定流畅固然不易,但最为考验的时刻当属零点刚过,大家操起手机,刷新早已存好的购物车,点击支付的那一刻! 11年,零点越来越平滑的双11购物背后,支付宝有过哪些不为人知的技术探索。本篇文章原文作者为蚂蚁金服科技。、 # 快速领取通道:( 点这里 )免费获取!诚意满满!!! Java面试精选题、架构实战文档传送门: https://jq.qq.com/?_wv=1027&k=iWJZw1rp 正文: 和过去10年一样,2019年天猫双11又创造了一个全新的纪录。 这个数字背后,是数代支付宝工程师们殚精竭虑、不断突破技术难关。 从外部瓶颈说起 从外部瓶颈说起 事情从一开始就显得不是很顺利。 2011年的双十一,在高峰时期少数用户无法付款,经过调查发现,这是因为少数银行的网银系统在压力下出现故障。早年的支付宝交易,用户点击支付后需要从支付宝和银行的接口去付款,而早年这个接口的性能很差,每秒只能支持几十到上百笔交易,稳定性也比较差,一旦流量上来,容易发生故障。 如果不解决这个问题,今后的每次大促都会出现无法付款的情况,极大影响用户体验。但是,这个问题单靠技术是很难解决的,银行对网银系统的演进有自己的规划,支付宝无法去干涉它们的系统。 不过,聪明的运营人员想出了一个变通的办法。在2012年的双十一

连载:阿里巴巴大数据实践—数据服务

荒凉一梦 提交于 2020-11-03 16:42:55
阿里数据人都在用的内部技术经验 关注 数智化转型俱乐部 ,数智化不迷路 摘要 服务架构的每次升级,均在性能、稳定性、扩展性等方面有所提升,从而能更好地服务于用户 数据部门产出的海量数据,如何能方便高效地开放出去,是我们一直想要解决的难题。在没有数据服务的年代,数据开放的方式简单、粗暴,一般是直接将数据导出给对方。这种方式不仅低效,还带来了安全隐患等诸多问题。 为此,我们在数据服务这个方向上不断探索和实践。最早的数据服务雏形诞生于2010年,至今已有7个年头。在这期间,随着我们对业务的理解不断加深,同时也得益于新技术的持续涌现,对数据服务架构也进行了多次升级改造。服务架构的每次升级,均在性能、稳定性、扩展性等方面有所提升,从而能更好地服务于用户。 1.服务架构的演进 阿里数据服务架构演 进过程如图6.1所示。 基于性能、扩展性和稳定性等方面的要求,我们不断升级数据服务的架构,依次经历了内部代号为DWSOA、OpenAPI、SmartDQ和OneService的四个阶段。 阿里数据服务架构演进过程 其中, 第四个阶段是统一的数据服务层(即OneService) 。大家心里可能会有疑问:SQL并不能解决复杂的业务逻辑啊。确实,SmartDQ其实只满足了简单的查询服务需求。我们遇到的场景还有这么几类:个性化的垂直业务场景、实时数据推送服务、定时任务服务

阿里云数据库Redis正式上线Tair持久存储系列 提供大规格命令级持久化能力的云上Redis服务

安稳与你 提交于 2020-10-28 11:22:54
2020年9月20日,阿里云云数据库Redis正式上线Tair(又称阿里云Redis企业版)持久存储系列,该系列包含两种产品形态:持久内存型和容量存储型。该系列产品是Tair系列继性能增强型和混合存储型后又一力作,其兼容原生Redis的数据结构和接口,并具备更大容量规格、抖动更低且命令级数据持久化的能力。该自研产品打破了传统Redis中的数据只能在易失性存储上进行读写的刻板印象,针对客户不同业务阶段的数据存储要求与服务成本考量,全新实现了持久性更强、成本更低的KV数据库。 >>发布会传送门 点击了解产品详情 开源Redis的三大痛点 Redis 是目前全球最主流的Key-Value 数据库产品,作为高速缓存,在缓解系统大并发高压力的场景上已经被无数开发者和企业所认可,尤其在各种行业和场景都有着非常广泛的应用,可以说Redis是应对高并发、大流量、低延迟业务场景的不二选择。然而,随着客户业务的快速发展,Redis对业务的重要性持续上升的同时系统压力和数据量也不断地攀升,这时原生开源Redis便会出现如下的一些矛盾: 1.数据可靠性与在各场景种广泛使用Redis之间的矛盾。Redis有丰富的数据结构和操作,除了作为后端数据库的前置高速缓存外,还在诸多实际涉及到数据更改的业务场景上发挥着重要的作用,这是用户往往会关注数据持久化能力。在开源Redis中

解密阿里云Redis 6.0极速上云:内核能力与云原生管控

痴心易碎 提交于 2020-10-14 00:50:16
2020年5月2日,Redis 6.0 GA版正式发布,这个版本被作者誉为社区版史上最大的一次发布,包含诸如 RESP3新协议支持、ACL 管理、多 IO 线程、SSL 加密、客户端缓存与集群代理等多项重大关键功能更新和内核架构提升。不到一周的时间,2020年5月7日,阿里云全球首发(除原厂)最新版 Redis 6.0云数据库,全面涵盖开源Redis 6.0各项功能,在阿里云,用户可以第一时间体验到最新版 Redis 的各项功能,构建高性能、场景丰富的应用系统。短短几天时间,阿里云Redis是如何做到极速上云的呢?总结起来,阿里云Redis团队对内核深度的掌控能力和云原生管控强大的助力是两大主因。 内核的掌控能力 首先可以看到,这次社区版6.0中阿里云Redis团队的贡献排在第二位,仅次于仅次于作者和其所在的商业公司,高居原厂外代码贡献第一名,充分说明了阿里云Redis对内核的掌控能力,在6.0正式GA之前阿里云团队便开始不断对这些新feature进行测试和优化,将云上积累的东西反馈给社区,引导社区的发展。 另一方面,本次6.0的很多新功能阿里云Redis企业版Tair很早就已经具备了,像多IO线程、权限管理、SSL加密以及集群proxy。在线下阿里云Redis团队成员也和作者多次沟通,就Tair上的实现方案与他进行深入探讨。比如多IO线程,从RC1到GA

单机和分布式场景下,有哪些流控方案?

℡╲_俬逩灬. 提交于 2020-10-07 00:02:35
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 阿里妹导读:不同的场景下所需的流控算法不尽相同,那应该如何选择适用的流控方案呢?本文分享单机及分布式流控场景下,简单窗口、滑动窗口、漏桶、令牌桶、滑动日志等几种流控算法的思路和代码实现,并总结了各自的复杂度和适用场景。较长,同学们可收藏后再看。 一 流控的场景 流控的意义其实无需多言了。最常用的场景下,流控是为了保护下游有限的资源不被流量冲垮,保证服务的可用性,一般允许流控的阈值有一定的弹性,偶尔的超量访问是可以接受的。 有的时候,流控服务于收费模式,比如某些云厂商会对调用 API 的频次进行计费。既然涉及到钱,一般就不允许有超出阈值的调用量。 这些不同的场景下,适用的流控算法不尽相同。大多数情况下,使用 Sentinel 中间件已经能很好地应对,但 Sentinel 也并不是万能的,需要思考其他的流控方案。 二 接口定义 为了方便,以下所有的示例代码实现都是基于 Throttler 接口。 Throttler 接口定义了一个通用的方法用于申请单个配额。 当然你也可以定义一个 tryAcquire(String key, int permits) 签名的方法用于一次申请多个配额,实现的思路是一样的。 有些流控算法需要为每个 key 维护一个 Throttler 实例。

他是阿里P11,靠写代码写成合伙人,身家几十亿,没有他,我们可能刷不了淘宝!...

时光毁灭记忆、已成空白 提交于 2020-09-26 17:33:08
Python实战社群 Java实战社群 长按识别下方二维码, 按需求添加 扫码关注添加客服 进Python社群▲ 扫码关注添加客服 进Java社群 ▲ 作者丨Mr.K 编辑| Emma 来源丨技术领导力(ID:jishulingdaoli) 转载请联系授权(微信ID:tojerry123) 他是阿里的“扫地僧”,写代码级别最高的人,一等一的技术高手,他非科班出身,用近20年的时间,修炼成为受万人敬仰的技术大神。 他就是,蔡景现,花名“多隆”,一个神一样的程序员。 01 多隆技术有多牛? 阿里研究员毕玄说,“在阿里,牛逼的人很多,但能被称为‘神’的只有多隆一个。他在解决故障方面的能力更是无人能及,在淘宝的故障解决历史上有 N 多的案例。” 阿里行颠(CTO张建锋)曾这样评价多隆,“多隆做事一个人能顶一个团队,比如说写一个文件系统,别人很可能是一个项目组,甚至一个公司在做,而他从头到尾都是一个人,在很短的时间内就完成了。” 阿里中间件研究员小邪,随手举了两个例子,“五彩石项目,多隆完成了商城搜索的 dump 逻辑,当时如果没有多隆,整个项目需要延后 2 周。” “还有一次,淘宝 session 框架调用 session_tair 故障,10几个人一起排查问题,从 6:00 排查到第二天的 6:00,最后是多隆查到了问题。” 多隆如果遇到一个程序上的问题,在没有固定的正确答案的情况下

阿里云产品介绍

懵懂的女人 提交于 2020-08-19 19:50:22
http://t.cn/Aie7C6KD 最近正好对这些产品做过总结,我来介绍一下阿里云主要的产品及功能: ECS (Elastic Compute Service):以虚拟机的方式将一台物理机分成多台云服务器,提供可伸缩的计算服务。 SLB (Server Load Balance):基于LVS和Tengine实现的4层和7层负载均衡,有动态扩容,session保持等特点。 RDS (Relational Database Service);:通过云服务的方式让关系型数据库管理、操作和扩展变得更加简单。 OCS (Open Cache Service):基于内部Tair,增加一层Proxy,支持海量小数据的高速访问。 OTS(Open Table Service):海量(结构化)数据存储和实时查询服务。 OSS(Open Store Service):对任意大小数据对象提供高可用,高可靠的海量存储服务。 CDN(Content Delevery Network):通过覆盖全网的缓存服务以及负载均衡等技术将用户请求定向到最合适的区域,提高用户服务的响应速度及网站服务能力。 OAS (Open Archive Service):离线归档,冷数据备份,类似Amazon Glacier。 ODPS(Open Data Processing Service):海量数据处理和分析平台。

一文读懂「分布式架构」

ⅰ亾dé卋堺 提交于 2020-08-16 10:11:08
什么是分布式架构? 分布式架构是分布式计算技术的应用和工具,其中J2EE技术应用较为广泛,它简化和规范多层分布式企业应用系统的开发和部署,它可以给分布式应用软件提供在各种技术间共享资源的平台 分布式架构发展 众所周知,传统架构单一无分层,模块之间耦合性过高导致稳定性和扩展性较差,无法满足互联网高速迭代变化的脚步,技术架构也会发生很大变化。传统架构逐渐分化为分布式架构。提供更稳定、容错、高可用的特质。演变过程如下图所示 阶段1 阶段2 阶段3 阶段4 阶段5 分布式架构设计理念和目标 设计理念: 分布式架构的核心理念按照一定维度(功能、业务、领域)等,对系统进行拆分,通过合理的拆分结构,实现各业务模块解耦,同时通过系统级容错设计,在廉价硬件基础设施上构建起高可用、可扩展的开放技术体系。 目标: 设计目标可以明确方向,通过设计驱动和方向的把控,朝着既定方向前行并最终实现目标。设计目标分为以下方面: • 系统拆分 a.以业务为导向,充分了解系统业务模型,按不同层面的业务模型上可以划分为主模型、次模型。业务模型在一定的比例上能够凸显出系统的业务领域及边界 b.业务依赖范围,由于业务存在重复依赖,从业务边界中按照业务功能去细分 c.把拆分结构图梳理出来,按照系统周边影响从小到大逐渐切换 d.拆分过程中尽量不要引入新的技术或者方案,如需讨论评估后再实施 • 业务模块解耦

阿里云正式推出云数据库Redis 6.0版本,全球首发极速上线!

浪子不回头ぞ 提交于 2020-08-10 03:55:55
2020年6月23日,阿里云正式推出云数据库Redis 6.0版本。Redis 6.0版本为Redis开源社区于5 月2日发布的全新版本,包含多项重大功能更新和大幅度的性能提升。依托于阿里云强大的云服务与管控能力,以及团队的快速跟进,5月7日,阿里云仅用不到一周时间就完成了最新版Redis 6.0云数据库的全球首发(除原厂外),全面涵盖开源Redis 6.0的多项重大更新。 开源Redis 6.0版本在一系列关键领域进行了重大改进,而这些重大改进的背后都有阿里云数据库Redis团队的贡献。据统计,在Redis 6.0开源版本中,阿里云Commit贡献仅次于作者和 Redis Labs(Redis作者所在的商业公司),高居原厂外代码贡献第一名。 在6.0版本中,最激动人心的是千呼万唤的Redis多线程终于发布,Redis性能和CPU并行利用率上均得到大幅度提升。用户可以通过可以设置 IO 线程数(注:该参数不包含 worker 线程),提升网络吞吐能力,进而提升整体处理性能。而命令的具体执行仍然是保留单线程,延续着Redis无锁的简单之美,在用户享受更大读写吞吐能力的同时,避免了上下文切换和锁操作带来的开销。阿里云Redis团队在Redis 6.x 核心上对Redis多线程进行了深入优化,将我们企业版Tair的性能增强版中有关多线程的设计贡献给了社区,相比于社区最初多线程版本的设计

Flutter+FaaS一体化任务编排的思考与设计

让人想犯罪 __ 提交于 2020-08-08 00:11:28
简介: 闲鱼flutter faas一体化提升研发体验+研发质量 作者:闲鱼技术-古风 Flutter+Serverless三端一体研发架构,客户端不仅仅是编写双端的代码,而是扩展了客户端的工作边界,形成完整的业务闭环。在新的研发模式落地与实践的过程中,一直在思考如何提高FaaS端研发体验与研发质量,以下是落地过程中遇到的问题。 如何提高FaaS研发体验? FaaS层通常是直接在主干中逐块增加业务代码,这种写法领域数据间的依赖并不清晰,后续维护时需要针对领域数据进行更换、顺序调整或者由串行改并行时需要增加很多工作。 如何提高FaaS侧研发质量? 客户端同学编写FaaS代码时,需要针对服务端各种异常增加保护性代码与降级策略,比较容易出现遗漏从而导致整体质量下降。 任务编排是什么? 回顾一个完整的业务闭环,包括中台、领域层、业务层与渲染层。云端一体场景下FaaS侧更多的工作集中在业务层与渲染层,进行数据聚合、裁剪、字段映射和结构调整。 以下单业务为例,FaaS层通过6次HSF(RPC框架)调用获取领取数据组装而成。商品信息、收货地址与闲鱼币可以并行执行,红包、运费与验货担保可以并行执行,由于依赖商品信息与收货地址,两组任务需要串行执行。 上图中可以把每一个节点(例如:获取商品信息)抽象为任务,通过代码实现此流程就是任务编排。 任务编排如何提升开发体验?