Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 运动如何在工人之间分配碎片?_Amazon Web Services_Amazon Kinesis_Amazon Kcl - Fatal编程技术网

Amazon web services 运动如何在工人之间分配碎片?

Amazon web services 运动如何在工人之间分配碎片?,amazon-web-services,amazon-kinesis,amazon-kcl,Amazon Web Services,Amazon Kinesis,Amazon Kcl,在将相邻碎片分散到多个工人身上时,是否有人试图将其保持在一起?在文档示例中,它从1个工作者/实例和4个碎片开始。然后发生自动缩放,并启动了第二个工作进程/实例。KCL自动将2个碎片神奇地移动到worker 2上。自动缩放时,是否有人试图将相邻碎片与辅助对象保持在一起?分割碎片的时候呢 谢谢 在将相邻碎片分散到多个工人身上时,是否有人试图将其保持在一起 我怀疑这是真的。我的理解是,秩序只在单个关键点的边界内维持,单个关键点的边界位于单个碎片内 假设我有两个键,key-a和key-b,发生了以下事件

在将相邻碎片分散到多个工人身上时,是否有人试图将其保持在一起?在文档示例中,它从1个工作者/实例和4个碎片开始。然后发生自动缩放,并启动了第二个工作进程/实例。KCL自动将2个碎片神奇地移动到worker 2上。自动缩放时,是否有人试图将相邻碎片与辅助对象保持在一起?分割碎片的时候呢

谢谢

在将相邻碎片分散到多个工人身上时,是否有人试图将其保持在一起

我怀疑这是真的。我的理解是,秩序只在单个关键点的边界内维持,单个关键点的边界位于单个碎片内

假设我有两个键,
key-a
key-b
,发生了以下事件:

["event-1-key-a", "event-2-key-b", "event-3-key-a"]
现在我们有两个事件用于
key-a
[“event-1-key-a”,“event-3-key-a”]

和一个事件用于
key-b
[“事件-2-key-b”]

请注意,切分的发生方式与上述完全相同——
key-a
的两个事件总是以相同的切分结束。有了这一保证,就没有必要维持碎片之间的秩序

在将相邻碎片分散到多个工人身上时,是否有人试图将其保持在一起

我怀疑这是真的。我的理解是,秩序只在单个关键点的边界内维持,单个关键点的边界位于单个碎片内

假设我有两个键,
key-a
key-b
,发生了以下事件:

["event-1-key-a", "event-2-key-b", "event-3-key-a"]
现在我们有两个事件用于
key-a
[“event-1-key-a”,“event-3-key-a”]

和一个事件用于
key-b
[“事件-2-key-b”]

请注意,切分的发生方式与上述完全相同——
key-a
的两个事件总是以相同的切分结束。有了这一保证,就没有必要维护碎片之间的顺序。

随机

如果您将“Kinesis Consumer Application”表示为“Worker”,则碎片最多的消费者应用程序会将1个碎片丢失给另一个碎片较少的应用程序

“租约”在这里是正确的术语,它描述了消费者应用程序和碎片关联。并且没有邻接检查来获取租约,这是纯粹的随机

请参阅源代码,选择easetosteal方法:

随机

如果您将“Kinesis Consumer Application”表示为“Worker”,则碎片最多的消费者应用程序会将1个碎片丢失给另一个碎片较少的应用程序

“租约”在这里是正确的术语,它描述了消费者应用程序和碎片关联。并且没有邻接检查来获取租约,这是纯粹的随机


请参阅源代码,
chooseLeaseToSteal
method:

如果您是正确的,那不是我要问的。我对重排和自动缩放感兴趣,而不是消息的顺序。我认为碎片是相互独立的。这回答了问题吗?还是你担心碎片分布不均匀?我想这可能是真的,它们是独立的;我只是好奇亚马逊是如何在员工中分配这些信息的。我猜他们不会把相邻的碎片放在一起。@darrickc-这完全是随机分布。没有任何逻辑将相邻碎片保持在一起。如果对您的用例很重要(它只是一个写在AmazonKinesis界面上的库),您可以随时制作自己的KCL版本来实现这一点,而您是正确的,这不是我要问的。我对重排和自动缩放感兴趣,而不是消息的顺序。我认为碎片是相互独立的。这回答了问题吗?还是你担心碎片分布不均匀?我想这可能是真的,它们是独立的;我只是好奇亚马逊是如何在员工中分配这些信息的。我猜他们不会把相邻的碎片放在一起。@darrickc-这完全是随机分布。没有任何逻辑将相邻碎片保持在一起。如果它对您的用例很重要(它只是一个写在AmazonKinesis界面上的库),您总是可以制作自己版本的KCL来实现这一点。您所说的相邻碎片是什么意思?这些事件是使用散列函数分布的,散列函数通常取相邻的键并将它们分散开来,主要是分布到其他碎片上。相邻碎片是提供“接触”的散列键的碎片。亚马逊在这里描述得很好。在合并碎片时,这是一个重要的概念。短答案-不,长答案-如果重要的话,您可以随时覆盖KCL的LeaseTaker算法来提供这一点。不过,随机窃取的实现要简单得多,并且解决了主要用例。你所说的相邻碎片是什么意思?这些事件是使用散列函数分布的,散列函数通常取相邻的键并将它们分散开来,主要是分布到其他碎片上。相邻碎片是提供“接触”的散列键的碎片。亚马逊在这里描述得很好。在合并碎片时,这是一个重要的概念。短答案-不,长答案-如果重要的话,您可以随时覆盖KCL的LeaseTaker算法来提供这一点。不过,随机窃取的实现要简单得多,并且解决了主要用例。