HAS*_*ASH 9 amazon-web-services apache-kafka amazon-kinesis aws-msk
我正在评估 AWS Kinesis 与托管服务 Kafka (MSK)。我们的要求是从本地系统(使用 C++ 开发的系统)向 AWS 发送一些消息 (JSON)。然后我们需要将上面的消息持久化到像 PostgreSQL 这样的关系数据库中,同时我们需要将上面的数据流式传输到托管在 AWS 中的其他一些微服务(java)中。
我有以下疑问:
i) 如何从我的本地系统访问(连接和发送消息)到 AWS Kinesis?是否有任何 C++ API 支持?(有 java 客户端 API,但我们的本地系统是用 C++ 编写的)
ii) 如何从我的本地系统访问(连接和发送消息)到 AWS MSK?
iii) 是否可以将 MSK 与其他 AWS 服务(例如 lambda、Redshift、EMR 等)集成?
iv) 要将数据保存到数据库中,我们可以使用 AWS lambda 吗?(AWS Kinesis 支持该功能,AWS MSK 怎么样)
v) 我们的消息速率是 50msg/秒,什么是具有成本效益的解决方案?
mcf*_*gan 13
坦率地说,您的用例听起来很简单,每秒 50 条消息的速率非常低。
Kinesis 是一种消防水带,您需要一根吸管。Kinesis 旨在摄取、转换和处理 TB 级的移动数据。]
您是否考虑过查看 SQS 或 Amazon MQ ?两者都比 Kafka 或 Kinesis 更易于使用和管理。仅从您的问题来看,很明显您根本没有与 Kafka 进行过互动,因此您将有一个陡峭的学习曲线。SQS 是一个简单的基于 api 的排队系统 - 您发布到 SQS 队列,并从队列中消费。如果您不需要担心订购、路由等问题,那么它是一种持久且可靠(如果笨重)的技术,很多人都使用它取得了巨大的成功。
要回答您的实际问题:
亚马逊为其服务发布了 C++ SDK - 如果没有 Kinesis 客户端作为其中的一部分,我会感到震惊。您需要一个公共 Kinesis 端点,或一个私有 Kinesis 端点,可通过您的本地网络和 AWS vpc 之间的某种隧道或网关进行访问。
MSK 是卡夫卡。您需要一个 Apache Kafka C++ 客户端,并且与上面的 kinesis 类似,您将需要某种隧道或网关,从您的本地网络到您配置 MSK 的 AWS vpc
这是可能的,但不太可能有任何交钥匙解决方案。您将不得不从 Kafka -> 其他系统编写某种桥接软件
您可以使用 Lambda,只要您能处理故障、超时和其他故障模式。老实说,在您的 vpc 或本地运行作为服务的独立消费者是一个更好的主意。
前面提到的 SQS 或 Amazon MQ 可能比 MSK 更简单、更具成本效益,并且几乎肯定会比 Kinesis 便宜。
| 归档时间: |
|
| 查看次数: |
3707 次 |
| 最近记录: |