Titan(不是后端存储)集群是如何工作的?
How does the Titan (not backend storage) clustering work?
上下文
我在 AWS 基础设施上使用 Titan v1.0.0,并希望支持 failover/fault 容错。 AWS 将负责 DynamoDb 存储后端,但似乎有必要让 (ELB) 负载均衡器为多个 titan 实例提供服务。
我正在使用 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 中,否则读取请求在更新后可能由具有陈旧信息的不同节点提供服务。
Titan 不会做任何 "clustering" 所选后端支持之外的事情。您将 "locking" 称为表示支持集群的东西,但是如果您阅读了 link 中的锁定提供程序,您会发现锁定并没有真正做任何非常花哨的事情Titan 级别并且它依赖于后端。所以 Titan 实例实际上没有任何外部集群功能或彼此之间的知识。因此,您需要在您的架构中考虑到这一点。
上下文
我在 AWS 基础设施上使用 Titan v1.0.0,并希望支持 failover/fault 容错。 AWS 将负责 DynamoDb 存储后端,但似乎有必要让 (ELB) 负载均衡器为多个 titan 实例提供服务。
我正在使用 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 中,否则读取请求在更新后可能由具有陈旧信息的不同节点提供服务。
Titan 不会做任何 "clustering" 所选后端支持之外的事情。您将 "locking" 称为表示支持集群的东西,但是如果您阅读了 link 中的锁定提供程序,您会发现锁定并没有真正做任何非常花哨的事情Titan 级别并且它依赖于后端。所以 Titan 实例实际上没有任何外部集群功能或彼此之间的知识。因此,您需要在您的架构中考虑到这一点。