基于AWS的文件同步服务系统架构

简介: 鉴于Web服务上的资源可以通过它们的URL就能识别,采用无状态的客户端 - 服务器架构,开发团队就可以为部门间,为企业,或者直接用于消费者自由地创建应用完成文件共享和同步。

鉴于Web服务上的资源可以通过它们的URL就能识别,采用无状态的客户端 - 服务器架构,开发团队就可以为部门间,为企业,或者直接用于消费者自由地创建应用完成文件共享和同步。

下图描述了利用AWS实现的可扩展性和成本效益的文件共享和同步平台的核心架构。





1.  文件同步服务端点是Elastic Load Balancer, 将呼入请求分发到一组基于AmazonElastic Compute Cloud (Amazon EC2) 实例上的应用服务器。 根据应用需要,Auto Scaling 可以自动调整AmazonEC2 实例的数量。

 

2.  为了上传一个文件,客户端首先需要请求服务的权限和安全令牌。

 

3.  在检查用户标识后,应用服务器从AWSSecurity Token Service (STS)得到一个临时凭据,这一凭据允许用户上传文件。

 

4.  用户将文件上传到 Amazon Simple Storage Service(Amazon S3)中, Amazon S3 可以在任何时候很容易地存储和检索任何数量的数据。

 

5.   文件的描述数据,版本信息和唯一标识通过应用服务器存储在AmazonDynamoDB 的表中。随着应用所维护的文件数量的增长, Amazon DynamoDB  可以相应增长,能够存取任意数量的数据,服务于任何流量水平。

 

6.  文件改变通知可以通过Amazon Simple Email Service(Amazon SES)以邮件的方式发给用户,这是一个易用的低成本电子邮件解决方案。

 

7.  其他客户端共享相同的文件,同时查询服务端点,以检查是否有更新的版本可供选择。该查询比较的本地文件校验和与mazon DynamoDB表中列出的文件校验。如果查询到较新的文件,服务端点就可以从Amazon S3检索出该文件并发送到客户端应用程序。


目录
相关文章
|
18天前
|
Cloud Native Java API
聊聊从单体到微服务架构服务演化过程
本文介绍了从单体应用到微服务再到云原生架构的演进过程。单体应用虽易于搭建和部署,但难以局部更新;面向服务架构(SOA)通过模块化和服务总线提升了组件复用性和分布式部署能力;微服务则进一步实现了服务的独立开发与部署,提高了灵活性;云原生架构则利用容器化、微服务和自动化工具,实现了应用在动态环境中的弹性扩展与高效管理。这一演进体现了软件架构向着更灵活、更高效的方向发展。
|
27天前
|
存储 Linux KVM
Proxmox VE (PVE) 主要架构和重要服务介绍
Proxmox VE (PVE) 是一款开源的虚拟化平台,它基于 KVM (Kernel-based Virtual Machine) 和 LXC (Linux Containers) 技术,支持虚拟机和容器的运行。PVE 还提供高可用集群管理、软件定义存储、备份和恢复以及网络管理等企业级功能。
569 7
|
3月前
|
安全 前端开发 JavaScript
逆向海淘代购集运系统:sugargoo的技术架构与创新服务解读
逆向海淘代购集运系统整合中国电商资源,为海外用户提供便捷购物及物流服务,降低购物成本。sugargoo系统搭建攻略包括: - **需求分析与规划**: 深入了解目标市场需求,明确服务特色。 - **平台开发**: 选用合适技术栈,开发关键功能模块,集成电商数据。 - **物流合作**: 建立物流合作关系,集成物流API提升自动化。 - **支付解决方案**: 支持多种支付方式,保障支付安全。 - **客户服务**: 提供多语言支持,建设专业客服团队。 - **营销与推广**: 优化SEO,利用社交媒体扩大品牌影响。
|
2天前
|
消息中间件 Kafka 数据库
微服务架构中,如何确保服务之间的数据一致性?
微服务架构中,如何确保服务之间的数据一致性?
|
13天前
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
32 3
|
1月前
|
消息中间件 Kafka 数据库
微服务架构中,如何确保服务之间的数据一致性
微服务架构中,如何确保服务之间的数据一致性
|
1月前
|
存储 搜索推荐 数据库
MarkLogic在微服务架构中的应用:提供服务间通信和数据共享的机制
随着微服务架构的发展,服务间通信和数据共享成为关键挑战。本文介绍MarkLogic数据库在微服务架构中的应用,阐述其多模型支持、索引搜索、事务处理及高可用性等优势,以及如何利用MarkLogic实现数据共享、服务间通信、事件驱动架构和数据分析,提升系统的可伸缩性和可靠性。
36 5
|
1月前
|
XML Java 数据库
在微服务架构中,请求常跨越多个服务,涉及多组件交互,问题定位因此变得复杂
【9月更文挑战第8天】在微服务架构中,请求常跨越多个服务,涉及多组件交互,问题定位因此变得复杂。日志作为系统行为的第一手资料,传统记录方式因缺乏全局视角而难以满足跨服务追踪需求。本文通过一个电商系统的案例,介绍如何在Spring Boot应用中手动实现日志链路追踪,提升调试效率。我们生成并传递唯一追踪ID,确保日志记录包含该ID,即使日志分散也能串联。示例代码展示了使用过滤器设置追踪ID,并在日志记录及配置中自动包含该ID。这种方法不仅简化了问题定位,还具有良好的扩展性,适用于各种基于Spring Boot的微服务架构。
44 3
|
1月前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
|
2月前
|
负载均衡 应用服务中间件 网络安全
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
49 2