使用 SQS 进行批处理 运行
Using SQS for batch running
我正在开始一个新的架构来支持 MDM(主数据管理)数据库。对于 MDM 数据库,我将使用图形数据库 (Neo4J)。所以我需要在 MDM 数据库中集成不同的来源。我将从订单、客户注册、来自 facebook 的点赞等等获得来源。
所以我想我可以为源设置一个或多个 SQS 队列。因此每个源都会将消息放在 SQS 上。
然后我会有很多工作节点负责从队列中获取消息并更新 MDM 数据库。
目前,我将只使用一个 worker,因为我不知道 neo4j 在处理多个 writer 时性能如何。
所以我看到很多人使用SQS发送消息来启动批处理。就像工作排队一样。
使用 SQS 发送数据消息是常见的用例吗?或者可能使用另一个 AWS 组件。
将 Neo4j 与排队系统一起使用非常普遍。我自己从未使用过 SQS,但知道有人使用 ActiveMQ(或其他)将数据输入 Neo4j。
这主要是为了解耦架构并提供一种方法来完成
优雅地处理负载峰值。
根据您放入队列的事件类型,如果消费者是单线程的 - 尤其是。当事件写入图形的相同部分时。否则 Neo4j 的锁定机制将阻止并发写入同一个 nodes/rels。
我正在开始一个新的架构来支持 MDM(主数据管理)数据库。对于 MDM 数据库,我将使用图形数据库 (Neo4J)。所以我需要在 MDM 数据库中集成不同的来源。我将从订单、客户注册、来自 facebook 的点赞等等获得来源。
所以我想我可以为源设置一个或多个 SQS 队列。因此每个源都会将消息放在 SQS 上。
然后我会有很多工作节点负责从队列中获取消息并更新 MDM 数据库。
目前,我将只使用一个 worker,因为我不知道 neo4j 在处理多个 writer 时性能如何。
所以我看到很多人使用SQS发送消息来启动批处理。就像工作排队一样。
使用 SQS 发送数据消息是常见的用例吗?或者可能使用另一个 AWS 组件。
将 Neo4j 与排队系统一起使用非常普遍。我自己从未使用过 SQS,但知道有人使用 ActiveMQ(或其他)将数据输入 Neo4j。
这主要是为了解耦架构并提供一种方法来完成 优雅地处理负载峰值。
根据您放入队列的事件类型,如果消费者是单线程的 - 尤其是。当事件写入图形的相同部分时。否则 Neo4j 的锁定机制将阻止并发写入同一个 nodes/rels。