
分布式对象存储Ambry
hashcon
做自媒体技术分享很久了,大家的抬爱与支持让我很开心很感激,但是个人本来做这些也并不是为了收益,只是为了个人学习与传播知识帮助更多的人,所以我将全网所有账号全部收益,持续捐给各种公益项目,也算不辜负大家的抬爱,也是回报祖国对我的一番培养。
曾任职于顺丰,华为,网易等公司,从Java小白,成长为资深开发与项目组首席架构师。喜欢源码与开源,曾贡献 MyCat1.6 核心源码,贡献过druid,Spring Cloud,dubbox,Apache RocketMQ,Apache Bookeeper 等多开源项目。
展开
-
分布式对象存储Ambry - 官方博客翻译与摘录(1)背景介绍
原文地址 在当今互联网时代,多媒体内容越来越普遍。资料照片,邮件附件,微博博客等是常见的多媒体文件(例如图片,视频,PDF等等)的展示形式。用户上传这些文件至服务器,服务器保存这些文件至后台存储系统并且通过CDN(Content Delivery Network)来分发这些文件并展示在网站上。 随着Linkin业务量的增长,传统的后台存储系统暴露了很多在扩展性,可用性和易操作性上的问题。两年前,翻译 2016-10-10 15:36:25 · 6787 阅读 · 0 评论 -
分布式对象存储Ambry - 官方博客翻译与摘录(2)Ambry设计目标
原文地址Ambry工作原理1. 设计目标1.1 高可用以及水平可扩展系统需要支持实时传输,如果出现不可用的话会显著的影响系统。这意味着系统需要高可用。我们的目标是每个月正常运行的时间在99.95%以上,相当于每个月中最多只有20分钟系统不可用。 另一个痛点是,我们希望新系统集群扩容时越无缝越好。在很多的分布式系统中,扩容真的很难,主要因为有太多部分需要移动,而且网络拓扑很复杂。我们希望扩容简单,而翻译 2016-10-10 16:25:44 · 5815 阅读 · 0 评论 -
分布式对象存储Ambry - 官方博客翻译与摘录(3)整体设计
2. 整体架构Ambry包含负责保存和检索数据的数据节点(data node),前端节点(Frontend node)将请求经过预处理发送到后端数据节点,并且集群管理者(Cluster manager)管理并协调数据节点上的数据。数据节点之间互相复制数据,并且可以跨机房复制,并需要保证写之后读的一致性。前端提供HTTP API,包括POST,GET和DELETE对象。同样的,这个路由库可以直接被客户翻译 2016-10-13 13:59:15 · 6455 阅读 · 0 评论 -
分布式对象存储Ambry(1)简介与集群部署
Ambry简介LinkedIn开源了多媒体对象存储数据库Ambry,开源不久,算是一个很新的事物。Ambry用来做对象存储,非常适合用于存储像LinkedIn这种社交媒体网站的对象数据(如图片,视频等等)。 LinkedIn过去使用的是一种闭源技术,非常复杂,而且也难以随着用户数和数据量的增长而扩展。LinkedIn工程总监Sriram Subramanian在博客中指出: 我们开始尝试在市场原创 2016-11-05 12:01:08 · 18408 阅读 · 12 评论 -
分布式对象存储Ambry - 官方博客翻译与摘录(4)路由设计
5. 路由模块/前端前端服务器提供了HTTP端口进行访问。它们也负责设置正确的CDN头,安全验证(反病毒,异常内容检测)和序列化对象发送给路由库和客户端。 路由库包括请求管理逻辑的核心并且镶嵌在前端中。同样地,他也可以作为客户端独立库来提高性能。5.1 路由模块的职责请求管理:端到端请求的生命周期由路由模块管理。路由模块处理put、get和delete请求。对于每个请求,路由模块会记录每个备份成翻译 2016-10-15 08:51:31 · 5554 阅读 · 0 评论 -
分布式对象存储Ambry - 官方博客翻译与摘录(5)运维与迁移
6. 运维困难所有有够见过分布式系统的人都知道在系统整个生命周期中,写代码是最简单的。运维是最困难的,通常需要很多工具,指标和大量的测试来确保运行正常。我们做了这些,并且实现能够主动发现问题并解决。这帮助我们能实现在短期内上线高质量的软件。6.1 Simoorg我们孵化并开源了Simoorg项目,一个分布式异常检测系统,用来检测集群中的任意错误。我们想测试机群不断推送流量,并且在注入类似于java翻译 2016-10-15 10:14:15 · 6504 阅读 · 2 评论 -
分布式对象存储Ambry(2)基本使用API与集群容错测试
在上一篇文章中,我们部署了如下一个ambry集群: 下面,我们来为这个集群做简单的测试:基本Restful API首先,简单介绍下Ambry的API:1.GET /healthCheck 这个API用来检查集群状态是否完好。 我们访问(相当于直接GET):xx.xx.8.133/healthCheck,看到返回:HTTP/1.1 200 OKContent-Length: 4GOOD2原创 2016-11-07 11:56:18 · 6811 阅读 · 2 评论 -
分布式对象存储Ambry(3)源代码结构与改造调试
上一篇文章中,我们对于Ambry做了简单的集群测试,但是再次强调一遍,这些只是最简单的测试,而且集群配置也不适用于生产环境。具体生产如何配置,我们之后在讲完原理之后会讲。 首先,我们目前Ambry的架构集群如下所示: 通过这幅图片,我们可以看出,ambry简单来看,分为:前端(Ambry frontend)还有后端数据负载节点(Ambry)。前端是一个简单的暴露Restful的API的包含A原创 2016-11-17 12:01:39 · 6004 阅读 · 1 评论 -
分布式对象存储Ambry(4)Ambry-Server模块源代码解析(启动与整体通信工作篇)
Ambry一共有三个主模块:Ambry-Server,Ambry-Frontend还有Ambry-Admin。其中,Ambry-Server为其核心,我们从核心开始,一部一部剖析其源码,并会分析它的设计模式。 一个提供各种服务的服务器框架源代码,我们一般从它的Facade类开始入手进行第一步分析。Facade类就是指设计模式中的外观模式的核心类,这个类会包含这个框架几乎所有的模块。一般的,像Amb原创 2016-11-20 11:59:19 · 6923 阅读 · 1 评论