Instagram如何跨大洋拆分有状态服务

Instagram在LISA2018大会分享了其服务在美国和欧洲数据中心的分散部署策略。使用Akkio工具优化数据布局,解决Cassandra和TAO中的数据本地性问题,确保低延迟和高效数据访问。

在最近举行的Large Installation System Administration(LISA)2018大会上,Instagram产品工程师Sherry Xiao解释了他们的团队如何将Instagram服务分散在美国和欧洲的数据中心。他们使用了Facebook工程团队的工具,在有状态服务(Cassandra和TAO)中解决了数据本地性(locality)问题。

Facebook在2012年收购了Instagram,后者迁移到了Facebook的基础设施上。Instagram的基础设施只部署在美国,而Facebook的数据中心位于美国和欧洲。Instagram的技术栈主要包括Django、Cassandra、TAO分布式数据存储、Memcached和Celery异步作业。他们不得不在美国和欧盟数据中心之间拆分服务,以解决数据存储空间限制问题。Cassandra quorum调用的高延迟,为数据本地性划分数据集,在欧盟区域内进行故障转移以及为TAO进行主副本同步,这些都是团队在进行服务拆分时必须克服的挑战。

\"image\"图片来源——https://www.youtube.com/watch?v=2GInt9E3vrU

Instagram使用Cassandra作为通用的键值存储服务。他们将Cassandra与其他组件从AWS转移到Facebook自己的数据中心。Cassandra在数据中心使用法定数量的副本来实现读写一致性。维护欧洲数据中心的数据副本会导致存储浪费,而quorum请求需要跨洋,延迟太高,不可取。Instagram团队改为使用名为Akkio的工具对数据进行分区,这样美国用户的数据位于美国数据中心,欧盟用户的数据位于欧盟的三个数据中心。Akkio是一款由Facebook开发的数据布局工具,可以对数据检索进行优化。它通过将数据分组为逻辑集来实现布局,然后将逻辑集存储在最靠近经常访问它们的最终用户的数据中心。Xiao说,Akkio“跟踪最终用户的访问模式并触发数据迁移”。

这种架构消除了在每个数据中心存储所有数据副本的必要。美国和欧盟的数据中心可以独立运作,quorum请求可以留在同一个大陆。Instagram还使用Social Hash分区器将请求路由到正确的存储桶,尤其是对于拥有大量关注者的帐户。

Instagram也使用了Facebook的TAO来存储社交图数据。在分片模式下,TAO的每个分片都有一个主节点。写入操作只会被转发给运行在美国数据中心的主节点,副本是只读的。该团队修改了TAO,让它可以将写入操作传给欧盟地区的本地主节点,避免跨洋调用。为什么不在这里使用Akkio?Xiao解释说,“与Cassandra相比,TAO拥有不同的数据模型。大多数用例都是使用用户ID作为键,数据属于用户”。相比之下,TAO处理的对象可以被全球各地的用户访问,因此Akkio无法实现最佳的数据本地性。

在最终的架构中,在前端有一个无状态的Django层,后面是分区的Cassandra和TAO,数据被写入本地主节点。迁移需要改变灾难恢复(DR)计划,因为延迟以及不同的数据集会导致无法实现跨洋的灾难恢复。Xiao说,每个地区都能够通过在每个数据中心保持20%的空闲容量来处理来自故障数据中心的负载。

查看英文原文:https://www.infoq.com/news/2018/11/instagram-across-continents

相关推荐

\"\"
12 月 7 日北京 ArchSummit 全球架构师峰会上,来自 Google、Netflix、BAT、滴滴、美团 等公司技术讲师齐聚一堂,共同分享“微服务、金融技术、前端黑科技、智能运维等相关经验与实践。详情点击 https://bj2018.archsummit.com/schedule

基于STM32 F4的永磁同步电机无位置传感器控制策略研究内容概要:本文围绕基于STM32 F4的永磁同步电机(PMSM)无位置传感器控制策略展开研究,重点探讨在不依赖物理位置传感器的情况下,如何通过算法实现对电机转子位置和速度的精确估计与控制。文中结合嵌入式开发平台STM32 F4,采用如滑模观测器、扩展卡尔曼滤波或高频注入法等先进观测技术,实现对电机反电动势或磁链的估算,进而完成无传感器矢量控制(FOC)。同时,研究涵盖系统建模、控制算法设计、仿真验证(可能使用Simulink)以及在STM32硬件平台上的代码实现与调试,旨在提高电机控制系统的可靠性、降低成本并增强环境适应性。; 适合人群:具备一定电力电子、自动控制理论基础和嵌入式开发经验的电气工程、自动化及相关专业的研究生、科研人员及从事电机驱动开发的工程师。; 使用场景及目标:①掌握永磁同步电机无位置传感器控制的核心原理与实现方法;②学习如何在STM32平台上进行电机控制算法的移植与优化;③为开发高性能、低成本的电机驱动系统提供技术参考与实践指导。; 阅读建议:建议读者结合文中提到的控制理论、仿真模型与实际代码实现进行系统学习,有条件者应在实验平台上进行验证,重点关注观测器设计、参数整定及系统稳定性分析等关键环节。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值