首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用AWS S3作为监控平台的中间存储层

使用AWS S3作为监控平台的中间存储层
EN

Stack Overflow用户
提问于 2018-08-14 06:34:11
回答 1查看 138关注 0票数 0

我们有一个用例,我们希望使用S3临时推送基于事件的+产品度量,直到它们加载到关系数据仓库(Oracle)中为止。这些指标将由200多个应用服务器发送到S3,并在每个服务器的不同文件中持久化。一些度量标准的频率可能很高,例如,每分钟在应用服务器上发送活动http会话的数量或每分钟的内存使用量。一旦S3中的度量被持久化,数据仓库中就会有读取csv文件并在Oracle中加载它们的东西。由于成本、持久性和复制等多种因素,我们考虑在队列(kafka/activemq/兔子mq)上使用S3。我有几个与S3的读写机制有关的问题

  1. 对于基于事件的度量标准,我们如何才能写入S3,使应用服务器不被阻塞?我看到java确实支持异步写入。这能保证送货吗?
  2. 我们如何通过附加记录来更新在S3上创建的csv文件?根据我所读到的,我们不能更新S3对象。什么是一种有效的方法,将监测指标推到S3定期间隔?
  3. 当阅读S3时,性能不是一个关键的要求。将csv文件加载到Oracle中的优化方法是什么?有几种方法包括使用来自java的get对象api或将S3文件夹挂载为NFS股票和创建外部表。还有其他有效的阅读方式吗?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-08-14 13:39:17

FYI,每分钟发送一个请求的200台服务器并不“高”。你很可能对这件事了如指掌。SQS是简单的、高度冗余的/可用的,它可能比开发自己的解决方案更能满足您的需求。

要详细回答你的问题:

1)不,您不能“保证传递”,特别是在异步S3操作中。您可以设计可恢复的操作,但不能保证交付。

2)这不是S3的目的.整个物体的书写..。您可能想要创建一个系统,您可以在其中添加许多小文件.你可能不想这么做。更新一个文件(特别是从多个线程)是危险的,每次更新都将替换整个文件.

3)如果必须这样做,请使用对象api,一次处理每个文件,并在完成时删除它们.构建一个基于队列的系统要好得多。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51835061

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档