Tair

一个秒杀系统设计详解

冷暖自知 提交于 2021-02-13 15:30:57
一些数据: 大家还记得2013年的小米秒杀吗?三款小米手机各11万台开卖,走的都是大秒系统,3分钟后成为双十一第一家也是最快破亿的旗舰店。经过日志统计,前端系统双11峰值有效请求约60w以上的QPS ,而后端cache的集群峰值近2000w/s、单机也近30w/s,但到真正的写时流量要小很多了,当时最高下单减库存tps是红米创造,达到1500/s。 热点隔离: 秒杀系统设计的第一个原则就是将这种热点数据隔离出来,不要让1%的请求影响到另外的99%,隔离出来后也更方便对这1%的请求做针对性优化。针对秒杀我们做了多个层次的隔离: 业务隔离。 把秒杀做成一种营销活动,卖家要参加秒杀这种营销活动需要单独报名,从技术上来说,卖家报名后对我们来说就是已知热点,当真正开始时我们可以提前做好预热。 系统隔离。 系统隔离更多是运行时的隔离,可以通过分组部署的方式和另外99%分开。秒杀还申请了单独的域名,目的也是让请求落到不同的集群中。 数据隔离。 秒杀所调用的数据大部分都是热数据,比如会启用单独cache集群或MySQL数据库来放热点数据,目前也是不想0.01%的数据影响另外99.99%。 当然实现隔离很有多办法,如可以按照用户来区分,给不同用户分配不同cookie,在接入层路由到不同服务接口中;还有在接入层可以对URL的不同Path来设置限流策略等。服务层通过调用不同的服务接口

微服务架构的四大金刚利器

可紊 提交于 2021-02-12 19:37:52
Photo @Christopher Campbell 文 | 孔凡勇 概述 互联网应用发展到今天,从单体应用架构到 SOA 以及今天的微服务,随着微服务化的不断升级进化,服务和服务之间的稳定性变得越来越重要,分布式系统之所以复杂,主要原因是分布式系统需要考虑到网络的延时和不可靠,微服务很重要的一个特质就是需要保证服务幂等,保证幂等性很重要的前提需要分布式锁控制并发,同时缓存、降级和限流是保护微服务系统运行稳定性的三大利器。 随着业务不断的发展,按业务域的划分子系统越来越多,每个业务系统都需要缓存、限流、分布式锁、幂等工具组件, distributed-tools 组件(暂未开源)正式包含了上述分布式系统所需要的基础功能组件。 distributed-tools 组件基于 tair、redis 分别提供了 2 个 springboot starter ,使用起来非常简单。 以使用缓存使用 redis 为例, application.properties 添加如下配置: redis.extend.hostName= 127.0 .0.1 redis.extend.port= 6379 redis.extend.password=pwdcode redis.extend.timeout= 10000 redis.idempotent.enabled= true 接下来的篇幅

MySQL学习(四)深入理解乐观锁与悲观锁

亡梦爱人 提交于 2021-01-26 04:38:44
转载自:http://www.hollischuang.com/archives/934 在 数据库的锁机制 中介绍过,数据库管理系统(DBMS)中的并发控制的任务是确保在多个事务同时存取数据库中同一数据时不破坏事务的隔离性和统一性以及数据库的统一性。 乐观并发控制(乐观锁)和悲观并发控制(悲观锁)是并发控制主要采用的技术手段。 无论是悲观锁还是乐观锁,都是人们定义出来的概念,可以认为是一种思想。其实不仅仅是关系型数据库系统中有乐观锁和悲观锁的概念,像memcache、hibernate、tair等都有类似的概念。 针对于不同的业务场景,应该选用不同的并发控制方式。所以, 不要把乐观并发控制和悲观并发控制狭义的理解为DBMS中的概念,更不要把他们和数据中提供的锁机制(行锁、表锁、排他锁、共享锁)混为一谈。其实,在DBMS中,悲观锁正是利用数据库本身提供的锁机制来实现的。 下面来分别学习一下悲观锁和乐观锁。 悲观锁 在关系数据库管理系统里,悲观并发控制(又名“悲观锁”,Pessimistic Concurrency Control,缩写“PCC”)是一种并发控制的方法。它可以阻止一个事务以影响其他用户的方式来修改数据。如果一个事务执行的操作都某行数据应用了锁,那只有当这个事务把锁释放,其他事务才能够执行与该锁冲突的操作。 悲观并发控制主要用于数据争用激烈的环境

微服务架构的四大金刚利器

跟風遠走 提交于 2021-01-13 06:59:26
Photo @Christopher Campbell 文 | 孔凡勇 概述 互联网应用发展到今天,从单体应用架构到 SOA 以及今天的微服务,随着微服务化的不断升级进化,服务和服务之间的稳定性变得越来越重要,分布式系统之所以复杂,主要原因是分布式系统需要考虑到网络的延时和不可靠,微服务很重要的一个特质就是需要保证服务幂等,保证幂等性很重要的前提需要分布式锁控制并发,同时缓存、降级和限流是保护微服务系统运行稳定性的三大利器。 随着业务不断的发展,按业务域的划分子系统越来越多,每个业务系统都需要缓存、限流、分布式锁、幂等工具组件, distributed-tools 组件(暂未开源)正式包含了上述分布式系统所需要的基础功能组件。 distributed-tools 组件基于 tair、redis 分别提供了 2 个 springboot starter ,使用起来非常简单。 以使用缓存使用 redis 为例, application.properties 添加如下配置: redis.extend.hostName= 127.0 .0.1 redis.extend.port= 6379 redis.extend.password=pwdcode redis.extend.timeout= 10000 redis.idempotent.enabled= true 接下来的篇幅

「GoTeam 招聘时间」哈啰出行Go中间件、存储系统专家(上海)

风格不统一 提交于 2021-01-07 23:26:13
本期招聘企业——哈啰出行 哈啰出行是专业的移动出行平台,旗下包括哈啰单车、哈啰助力车、哈啰打车等产品。公司秉持“科技推动出行进化”的企业使命,坚持“绿色低碳、轻松出行”的服务理念,为广大用户提供覆盖短、中、长距离的全方位无缝衔接的出行服务,努力缓解城市交通压力,减少车辆尾气排放,为智慧城市建设提供可持续发展的移动出行解决方案。 哈啰出行先后获得GGV纪源资本、成为资本、蚂蚁金服、复星等知名投资机构的投资,2017年10月与江苏永安行低碳科技有限公司合并,与蚂蚁金服、深创投、永安行等成为重要的战略合作伙伴。 工作地点:上海 - 闵行区 - 莘庄 - 旭辉莘庄中心 招聘岗位 Go 中间件、存储系统专家 工作职责 负责公司基础架构方向系统的设计与研发,重点方向为API 网关、分布式存储系统、微服务框架、异地多活架构、service mesh等; 任职资格 1. 3年以上golang/c++编程语言开发经验,深入了解主流的微服务框架和存储系统; 2. 熟悉微服务架构,深入理解分布式系统原理,了解Service Mesh相关服务治理框架; 3. 对存储和高性能系统有深入研究者优先,如Redis、Tair、Raft协议、leveldb/rocksdb、Nginx等; 4. 良好的团队协作和沟通能力,责任心强; 5. 具有很强的分析问题和解决问题能力。 投递方式 简历请发至邮箱

DTCC2020 | 阿里云朱洁:NoSQL最新技术发展趋势

≯℡__Kan透↙ 提交于 2021-01-06 11:52:38
摘要:随着工业互联网时代的到来,数据库这门已经具有接近五十年历史的学科又绽放出新的生命活力,其中扮演着重要角色的NoSQL数据库也出现了更多的发展趋势。 在第十一届中国数据库技术大会(DTCC2020)上 ,阿里云资深产品专家朱洁为大家介绍了NoSQL数据库业界最新趋势以及阿里云NoSQL技术的创新实践和阿里云NoSQL生态开放实践。 本文内容根据演讲录音以及PPT整理而成。 嘉宾简介: 朱洁(花名:所在),阿里云资深产品专家,目前负责阿里云的RDS和NoSQL数据库产品。 本次分享的内容主要包括以下三个方面: NoSQL数据库业界新趋势 阿里云NoSQL技术创新实践 阿里云NoSQL生态开放实践 NoSQL数据库业界新趋势 数据库发展历程 首先,简单回顾一下数据库的发展历程。其实,数据库是一个具有非常悠久历史的行业。从上世纪五十年代开始数据库技术就开始启蒙,但是一般通用说法是从上世纪70年代关系模型诞生起算,因此数据库的诞生到现在也有接近五十年的历史了,而数据库一直在技术、业务以及应用场景等方面不停地演进和发展。比如上世纪九十年代,针对个人办公、个人娱乐以及企业信息化的场景,基于X86服务器诞生了像SQL Server、PG这些非常著名的数据库。今天所要分享的NoSQL数据库则是在2000年左右随着整个互联网的发展和推动而诞生的

以友盟+U-Push为例,深度解读消息推送的筛选架构解决方案应用与实践

僤鯓⒐⒋嵵緔 提交于 2020-12-31 12:01:06
业务背景 友盟+消息推送U-Push日均消息下发量百亿级,其中筛选任务日均数十万,筛选设备每分钟峰值可达7亿+,本文将分享友盟+技术架构团队在长期生产实践中沉淀的筛选架构解决方案。 如何保证百亿级的下发量? 友盟+U-Push筛选是Push产品的核心功能,其中实时筛选是面向推送要求较高的付费Pro用户提供的核心能力之一,实现了用户实时打标、筛选、分发、触达的功能。友盟+U-Push的设备识别以device_token为基准,为保证尽可能的触达我们留存了近期所有可能触达客户的device_token,以10亿真实设备为例,每个设备安装10个集成友盟+SDK的应用可以产生10个device_token,牵扯到硬件环境变动导致的device_token漂移问题,可能产生更多device_token。 ( 图1.1.1 友盟+U-Push业务数据流简图) 图1.1.2 友盟+U-Push功能清单 U-Push筛选架构概览 2.1 上下行两个核心链路 U-Push服务由两个关键链路组成,下行链路保证客户消息的触达,上行链路承载终端采数和与客户服务端的数据同步。其中下行链路主要分为任务调度、筛选中心,上行链路主要服务是多种收数通道(为兼容历史问题)和设备中心,上行通过设备中心实现跟下行桥接。 图2.1.1 友盟+U-Push筛选业务场景 在U-Push服务中,依照业务场景不同定义了多种任务类型

Redis6.2发布 地理位置功能增强了什么?

随声附和 提交于 2020-12-22 07:38:47
原文地址: https://developer.aliyun.com/article/780257 Redis社区最近刚刚发布 Redis6.2 RC1 版本,在本次发布中,阿里云Tair团队(阿里云云内存数据库产研团队,负责云上Redis社区版和Redis企业版Tair)为社区贡献了大量高质量代码与功能,其中关于地理位置查询能力的提升上,阿里云贡献了GEOSEARCH和GEOSEARCHSTORE两个重要而强大的API。本文通过分析这两个全新的API,对Redis在地理位置型应用进行深入剖析,并延伸介绍了阿里云Tair在地理位置上的更多强大功能与应用场景。 1. Redis 6.2 GEOSEARCH命令详解 Redis自3.2版本,增加了地理位置的相关API: • GEOADD 将给定的空间元素(纬度、经度、名字)添加到指定的键里面。 • GEOPOS 从键里面返回所有给定位置元素的位置(经度和纬度)。 • GEODIST 返回两个给定位置之间的距离。 • GEORADIUS 以给定的经纬度为中心, 返回与中心的距离不超过给定最大距离的所有位置元素。 • GEORADIUSBYMEMBER 跟GEORADIUS类似,指定GEO集合中某个成员为中心。 • GEOHASH 返回一个或多个位置元素的 Geohash 表示。 然而随着互联网生活的本地化进程加快,诸如同城购

阿里云李飞飞:云原生内存数据库解锁存算一体

大兔子大兔子 提交于 2020-12-13 21:38:57
“ 内存数据库进入了新阶段,云原生,持久化,融合计算是三大特征 ”。 12月13号,阿里云数据库负责人李飞飞在云内存数据库峰会上表示,经过多年阿里巴巴经济体内应用的验证,今年年初上线的阿里云内存数据库Tair进入大规模分享技术和硬件红利给云上用户的阶段。Tair是阿里云自研的云原生内存数据库,高吞吐、低延迟,并提供RPO=0的持久能力,让数据实时在线。 Tair广泛使用于阿里巴巴经济体内核心系统,连续12年稳定支撑天猫双十一,峰值访问15亿每秒。在复杂的应用场景下,Tair持续不断地进行技术创新,适用于热点场景的Tair热点散列创新解决方案让互联网应用类似于电商、社交等频繁出现热点的场景极大降低了应用的开发成本,而且为应用节省了至少2/3为热点场景预留的资源;在商品信息等海量热数据存储的场景,Tair引入密度更高、成本更低的持久内存,节约集群整体TCO高达30%的同时,吞吐和延迟能够满足场景需求,方案可以复用于电商、在线教育等行业的在线数据访问场景。 在今年年初上线之后,Tair以更高的性能和企业级功能吸引了很多用户。据悉,南瓜电影使用阿里云内存数据库Tair的企业级功能,实现了数据多地域同步,为3000万终端用户带去了更极致的体验。 云时代下,内存数据库会在低成本、弹性、企业级功能上继续发展。随着数据库内存技术的发展和持久内存硬件的普及

优酷双11猫晚技术质量保障

十年热恋 提交于 2020-12-06 07:55:43
阿里QA导读:大家还记得天猫双11狂欢夜(猫晚)吗?小编依然还会经常听到真实力老酷guy腾格尔老师钢铁硬核版的《丑八怪》。与往年猫晚相比,今年是最“国际化”的一届,整场晚会通过优酷进行了全球直播覆盖,在这样的双11猫晚的特殊场景下,如何完成质量保障工作,让全球直播也能“如丝般顺滑”,让不同地域、不同设备的用户都能享受极致的体验? 本文为阿里文娱测试开发专家 宫浩 在【阿里文娱2019双11猫晚技术沙龙】中的演讲。 与开发团队不同,质量保障是一个横向支撑的团队,涉及的业务场景和技术点很多而且非常重要。在双11猫晚这样的特殊场景下,我们是如何输出保障能力的,并结合质量保障的平台能力,去保障双11和猫晚的全链路稳定性的?如何保证不同地域、设备用户都有极致的用户体验? 一、双11猫晚质量保障的挑战 双11猫晚的挑战有两大块,一是 ‍ 稳定性,在这种超级事件中,稳定压倒一切。 其次,是在稳定的基础上,如何创新,并实现成本的降低。 优酷双11战役包含两大块,优酷站内的活动和猫晚,站内活动从10月20日就开始预热了,所以整个活动周期持续将近20天,我们要在这个长周期内保持整个活动的稳定,而且还要针对猫晚直播当天的创新性玩法做好针对性的测试保障工作,在人员有限的情况下,整体挑战很大。 1、稳定性压倒一切 直播链路的稳定性: 4个小时的直播,可能有不同的网络环境,优酷、淘宝和天猫三个APP