【发布时间】:2017-05-31 03:56:00
【问题描述】:
上下文
我在 AWS 基础设施上使用 Titan v1.0.0,并希望支持故障转移/容错。 AWS 将负责 DynamoDb 存储后端,但似乎有必要让多个 Titan 实例由 (ELB) 负载均衡器提供服务。
我正在使用 nodeJs 库来访问 gremlin,并使用 gremlin 来访问 Titan。
问题
那么,Titan(不是后端存储)集群是如何工作的?如果有的话。
明确地说,我不是在谈论任何后端存储集群,因为我在 AWS 上使用 dynamoDb。 transaction locking 上的文档向我建议必须存在一个 Titan 集群,因为如果没有某种相互通信,其他 Titan 节点不会知道锁定。但我没有看到任何支持这一点的配置选项。
如果在 Titan 上可以进行集群,有人知道如何在生产高可用性设置中获取此设置吗?
服务器端架构示意图:
[NodeJsA]\ /[TitanA]\
\ / \
[ELB (AWS)] [DynamoDb (AWS)]
/ \ /
[NodeJsB]/ \[TitanB]/
此外,如果没有 Titan 节点的集群,则通过 TitanA 节点(上图)进行的更改可能需要以下时间才能在 TitanB 节点上显示(最坏情况):
(AWS最终一致性收敛时间(~1秒)+TitanB缓存超时+从NodeJs节点到titanDB的轮询时间)
缺少集群的另一个后果是会话必须固定在 ELB 中,否则更新后的读取请求可能由具有陈旧信息的不同节点提供服务。
【问题讨论】:
标签: cluster-computing amazon-dynamodb titan