大发UU直播快三官方_大发UU直播快3

高德:Redis深度实践,助力实现“现实与互联网世界的底图梦”

时间:2020-01-05 19:31:09 出处:大发UU直播快三官方_大发UU直播快3

第二种也很简单:在业务层面做这个取舍。类事另另二个 机房,并希望读取的次数高时,可不需用做另另二个 双写。这就有 另另二个 正统和学术的土办法 ,它会是因为一致性的什么的问題:这个双写时本机房的写好了但超时了,这时就我没了乎 写没写进去。



计费集群也是Redis的上层应用。在跨机房之间有ZK的全职,里面的Redis互相不同步,必须本机房的信息,计费集群跨机房择主,这样这个程序就会向被选为主的集群写入信息来归总这份数据,里面这个涉及到无法取舍或无法连接的情況,(这个是Snapshot场景)它会等待歌曲可用。什么都我说你规定了15秒的快照时间,有这个这个推迟会变成80秒或40秒,这样在计费集群的HBase下面会另另二个 多Open TSDB做真正的存储。上层的Redis会保留一段时间,这个出现这个计算错误或用户投诉,就反查回来看一下是就有 有什么的问題,但本质上是以最终落地的那份数据为主。但这个例子就有 实时,计费报表并就有 马上出,这个第7天 或过7天 才出。什么都这里在业务上做了这个取舍,会把实时牺牲掉来保证正确性或性能。

Cache场景

Cache场景主要偏向机房和机房之间整个应用的部署。当业务做到一定规模的什么都我,可靠性就真难做到,需用依赖什么都环境。类事阿里云的这个技术在下层会有什么都链路、机房、甚至说这个技术提供商的劫持什么的问題,在做服务时,也相应地诞生非常多的这个性。

这个Cache场景可不需用简单粗暴的避免这个什么的问題,尽这个拿到98%、99%的收益。采用这个土办法 的好处是:读和写非常稳定。这里需用注意的是同城之间,这个同城之间的风险什么都我在双写的那一刻,就有 写失败的什么的问題,什么都我我没了乎 有这样写成功。同城双机房缓存双写的情況是只读个人的,放弃写入到A或B,它会像当前逻辑上的Master去做写入,什么都这个什么都我是跨机房的。

异地单元化&就近接入





谈到同步,上图我我实在是Albiter的图,但在Redis里也相同。当在同城之间需用判断主和从是是否是要需用提升时,我我实在必须依赖另另二个 节点的判断来做。这是这个:一是两者之间这样土办法 判断谁是活的、谁是死的,这个人儿都我实在个人是活的;还另另二个 多是因为是网络抖动很有这个在很短的时间发生并在很短的时间内恢复,比如说抖动了5秒或6秒,这时对持久化数据库的简单主从的提升操作会加剧数据的不一致,什么都会引入第另另二个 机房来帮助判断。

这其中除了涉及到数据搬迁,还有最上层的流量分配(咋样保证把用户分发到正确的地方去)。高大上的答案是可不需用通过地域化的DNS,但就有有百分之几比例的用户会发错,这个情況下就通过7层把流量转发过去,此就有有80毫秒的IT开销甚至数以倍计的可靠性的下降,这什么都我另另二个 短暂的土办法 ,将来会通过Channel的建设,DNS的解析等尽量去提高分发的比例,这也是高德正在做的另另二个 事情。

高德在Codis方面起步较晚。目前,高德所有的主流业务就有 自家的平台上;还有这个业务依赖Redis。利用Codis部署将上层流量分下来,再通过业务化Hash将其分到不同的分组去,也这个是同城另另二个 机房的某个地方;图中的ZK既用作Master接入点的发现,也用来做分组信息的维护。在此类场景中,另另二个 实例上或多个实例上会有不同的GROUP,通过分组信息,找到这个GROUP,再把数据写进去这个读出来,整体的读取或写入流量是由上层通过业务负载进行转发。

在跨城的场景下,以计费为例。计费是流量的统计,什么都我说另另二个 开放平台,发流量配额给这个合作土办法 土办法 伙伴,让我一分钟80万的配额,那你的请求实际上是落到全国各地阿里云的机房,那咋样快速有效地统计什么流量,在超量的什么都我及时告诉你呢?

下面来看一下机房之间的Redis应用。

先从最简单的同城双机房始于英文。当业务达到一定程度时,需用部署双机房,通常会选在同另另二个 城市,将应用成本降到最低。将其中另另二个 机房当做Cache用,通常是把它直接落到另另二个 地方,这就为宜有另另二个 机房,这个Redis只在另另二个 机房里。这是最简单的,也是业务方面极为常见的另另二个 场景。在做另另二个 新业务的时,可不需用先用这个土办法 过渡,当业务量不大时,这是最快的这个土办法 。这个点也说明了服务化还有很长的路要走;这个服务化做得好,会直接达到非常完美的情況。



作为互联网世界底图,目前10部手机中就有 9部在使用高德的位置服务,简单介绍下另另二个 行业的案例:高德开放平台为国内85%的车行App提供地图、导航和路径规划服务;为市场中超过80%的外卖App提供地图和定位服务;为80%的主流社交应用提供精准位置和搜索功能,如发微博时的地点定位。目前,为宜有80万款应用正在使用高德开放平台业务。

高德的经典数据库应用场景里面咋样共同为C端和B端用户提供全量服务的呢?实际上两者模式完整版不一样,C端有高峰,对于高德,这个十一的第一天什么都我C端的高峰;对于微博来讲,女排夺冠那天这个什么都我高峰;但B端很坑,它的高峰每天就有 ,80万个应用每天就有 个人的业务高峰,它们个人的高峰什么都我B端的高峰。







未来,高德会同阿里云一道设计就近接入的方案,该业务和地理位置层厚相关,把用户数据放进离他比较近的地方。我我实在什么都我把用户的数据按照对应纬度或所属地区的纬度切分到对应的机房去,用干预的土办法 尽量选到所属的主节点,在主节点没了什么的问題的情況下,希望用户的数据从哪里写就从哪里读。这个机房会作为他异步传输的同步。

高德主营地图业务,会有这个数据更新的场景,比如今天通过数据挖掘发现有一家加油站不营业,那为啥发现呢。什么都我说什么都我在9点钟的什么都我,用户的定位点这里会有80辆车,今天发现必须四百公里 或都这样了,什么都我持续了一定时间后,就知道出什么的问題了,再去查证,什么都就会有数据的更新。最土的土办法 什么都我不把一批量的数据更新,而以A/B集群的土办法 更新,什么都我可不需用避免什么都写入什么都我的延迟对整个性能的影响什么的问題。这时写入是另另二个 持续的操作,当写入完成的什么都我会另另二个 多校验的流程,当一切确认的什么都我,会切换进去(这里另另二个 多冷集群和另另二个 热集群)。这是地图行业比较讨巧的另另二个 做法,在纯线上业务这个不太会这样做,但在这个集中性的数据发布时就比较常见。

这是另另二个 核心什么的问題,我我实在是另另二个 跨机房汇总什么的问題。也什么都我说,这个每个流量收一毛钱,那用户设置的什么都我,我只我这样多 80万流量,超过就停掉,那跨机房统计费用的及时性就直接是因为了控制是是否是准确。但这个这个数据的不同步,在外地多跑了十五万,那这十五万就收必须钱。本质上这是另另二个 时效性什么的问題,这个接入点在多个机房,这个机房距离比较远,那为啥保证时效的正确性?基本做法是在所有机房的接入层把所有流量原封不动地写入到缓存集群;这个缓存集群会分速率单位单位做出另另二个 Snapshot,速率单位单位随着业务压力大小而变化,并直接影响到计费统计的反应能力。什么都我超量就会发现,速率单位单位会保证流量及时地记录下来。记下来什么都我会通过阶段性的Snapshot,专门另另二个 多程序往计费集群中写。

在2016杭州云栖大会的“开源数据库之Redis专场”上,高德开放平台总经理童遥带来了题为《高德经典数据库实践案例分享》精彩演讲。演讲中,他主要介绍了高德业务下的经典数据库实践案例。

高德经典数据库应用场景



目前用户使用的高德地图,我我实在是C端地图,另外还有另另二个 出口:另另二个 是车机地图;另外另另二个 是开放平台。开放平台什么都我行业合作土办法 土办法 ,比如说使用打车应用或社交应用会请求高德的API,简单地说,什么都我SDK和API的业务。

以下内容根据演讲PPT及现场分享分发。

现在描述数据更新业务的什么都我,实际上在更新什么都我会另另二个 多ZK的机制做切换,业务会自动地通过信息知道现在发生哪个集群。当新集群上线什么都我,旧集群会等待歌曲下一次数据更新。



最后简单分享一下真正的挑战,什么都我讲的什么都场景就有 取舍。读完马上就要写的业务,这个场景最难。

顺便提一下分片混合部署,现在高德我这样多 有较大的抖动,数据自动地分布到不同的机房和节点,可不需用保证另另二个 小分片同就有有另另二个 副本,且没了同另另二个 机器上。这也使得数据向下切割成另另二个 分片时保证存储可靠,这个它始终会另另二个 多Primary的主写入节点。

下面这个步什么都人就有遇到,当数据热了要重新分布就会有Proxy的改造方案,为宜把数据的分布策略和动态的重新平衡策略做进DB,不再拿给业务做。这是这个当只另另二个 多主流业务,可不需用全身心关注;这个这个有20个业务,每天就有 不同的出什么的问題,这就有 了Proxy的方案,希望把整个发现什么都放进Redis里面,业务暂且Care。典型的逻辑是把服务的发现和Hash什么都放进另另二个 Proxy层里面,这个通过另另二个 额外配置的里面管理去Client,使其知道应该读哪个Proxy。

上图左下角表达的是业务监控系统监控机房,当压力比较大就有有这个抖动,这需用判断需不需用响应。目前,架构中发生两套业务监控系统:一套是性能层面;一套是语义层面。即另另二个 多监测内存、CPU等;另另二个 多负责业务。

Codis集群部署



持久化场景



接下来到高德真正利用到Redis原生机制做双机房同步的什么都我了:为了缓存同步的一致性,将数据化打开,采用持久化去做同步。但实际在这个情況下,另另二个 多机制判断当前谁是主、谁是从、哪里是写入点,把它写入到对应的Master里面,这个这个节点会依照Redis把它拷贝过去。

热门

热门标签