【发布时间】:2019-01-30 21:38:23
【问题描述】:
我正在寻找有关具有以下特征的分布式系统的最佳架构组织的提示:
- 每分钟将在一台或多台计算机上提供一系列 CODED 文件(大约每分钟 100 个文件或 1Gb/分钟)
- 需要在集群中处理这些文件以对其进行解码。每个文件在几个表中生成行。编码类型不止一种。
- 每个文件只能处理一次
- 这些表行需要插入到数据库中
- 数据库是分布式的,并且已经在云中可用。
到目前为止,我正在评估两种可能性:
-
使用docker swarm处理编码文件并将数据插入数据库。
- 缺点:在数据库中插入数据所花费的时间比您稍后使用累加器执行批量插入所花费的时间要长。等待插入的废物处理资源)
-
使用 Apache Kafka 连接到所有提供文件的主机,将它们放入流或批处理中,然后处理它们。随后,将记录放入输出流中以插入数据库。
- 缺点:扩展 Kafka 集群很困难,因为主题众多,解码文件的处理类型不同,而文件处理要求恰好一次
【问题讨论】:
-
“一台或多台计算机集群中的文件”...听起来您需要 DFS,不一定是流式解决方案或容器编排器。此外,Docker Swarm 通常会与 Kafka 结合使用
标签: architecture apache-kafka docker-swarm