【问题标题】:Where is routing implemented (Request routing to the different replicas) when making request to the DynamoDB server?向 DynamoDB 服务器发出请求时,路由在哪里实现(请求路由到不同的副本)?
【发布时间】:2022-01-21 06:56:43
【问题描述】:

DynamoDB 有多个节点,所有节点都是平等的:没有单一的领导者。 我假设我们有一个 DynamoDB 实例,并且所有数据都可以存储在一个节点上。但是我们有几个副本来保证可用性和冗余。

所以写入和读取可以发生在任何副本节点上。我只是好奇,DynamoDB 客户端如何决定将请求发送到哪个节点?或者应用程序开发人员必须自己处理此路由,而 DyanmoDB 客户端只需将这些请求转发到 DB 节点。

如果有人可以向我解释这个路由发生在哪里,并且可以指出实现这个路由的代码,那会很有帮助吗?

我是 DynamoDB 的新手,并试图了解事情是如何运作的。

【问题讨论】:

    标签: java amazon-web-services amazon-dynamodb


    【解决方案1】:

    从根本上说,这是 AWS 处理的实施细节 - 您不会在 Java 代码中找到它。

    DynamoDB 有多个节点,所有节点都是平等的:没有单一的领导者。

    这是一种误解,表被分成多个分区,每个分区由三个存储节点组成。对于每个分区,都会选择一个存储节点作为写入的主要接触点。

    几年前,Jason Sorensen 在 re:invent 上发表了一个关于 DynamoDB 内部的有趣演讲,您可以在 YouTube 上看到它。

    总而言之,有一组请求路由器实例知道存储节点以及散列的工作原理。存储路由器选择分区的领导节点并向其写入数据。一旦两个存储节点确认写入,数据就被认为是持久化的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-13
      • 2014-05-06
      • 1970-01-01
      • 2019-10-29
      相关资源
      最近更新 更多