带有 Kinesalite 和 Dynalite 的 AWS KCL Javascript 在同步 Kinesis 分片和租约时捕获异常

问题描述

我使用的是 Javascript 版本的 AWS KCL,由于我所从事项目的性质,我需要在迁移到云之前创建 Kinesis 消费者应用程序的本地实例。在尝试运行 Javascript KCL Github 中给出的 basic_sample 设置时,我遇到了以下错误。

正在启动 MultiLangDaemon ... 2021-02-08 21:24:23,069 [main] INFO s.a.k.m.MultiLangDaemonConfig [NONE] - 使用缓存线程池。 2021-02-08 21:24:23,305 [main] INFO s.a.k.m.MultiLangDaemonConfig [NONE] - 运行 kcl 以处理带有可执行节点 kcl.js 的流 testStream 2021-02-08 21:24:23,319 [main] INFO s.a.k.m.MultiLangDaemonConfig [NONE] - 使用 workerId:c0c4196e-2d62-4dd9-8c6c-148852dbed37 2021-02-08 21:24:23,320 [main] INFO sakmMultiLangDaemonConfig [NONE] - MultiLangDaemon 正在向用户代理添加以下字段:amazon-kinesis-client-library-java amazon-kinesis-multi-lang-daemon/ 1.0.1 nodejs/0.10 节点 2021-02-08 21:24:24,042 [main] INFO sakldDynamoDBLeaseCoordinator [NONE] - 故障转移时间为 10000 毫秒,epsilon 为 25 毫秒,LeaseCoordinator 将每 3308 毫秒更新一次租约,每 20008 毫秒更新一次租约,最多 1474503232323232323323323323332323332323323232323223232323232323232323232505050505050505045050个进程。一次租用 1 个。 2021-02-08 21:24:24,056 [multi-lang-daemon-0000] INFO s.a.kinesis.coordinator.Scheduler [NONE] - 初始化尝试 1 2021-02-08 21:24:24,058 [multi-lang-daemon-0000] INFO s.a.kinesis.coordinator.Scheduler [NONE] - 初始化 LeaseCoordinator 2021-02-08 21:24:25,053 [multi-lang-daemon-0000] INFO s.a.kinesis.coordinator.Scheduler [NONE] - 同步 Kinesis 分片信息 2021-02-08 21:24:25,492 [multi-lang-daemon-0000] 错误 s.a.kinesis.leases.ShardSyncTask [NONE] - 同步 Kinesis 分片和租约时捕获异常 java.lang.RuntimeException:software.amazon.awssdk.core.exception.SdkClientException 在 software.amazon.kinesis.retrieval.AWSExceptionManager.apply(AWSExceptionManager.java:65) 在 software.amazon.kinesis.leases.KinesisShardDetector.listShards(KinesisShardDetector.java:172) 在 software.amazon.kinesis.leases.KinesisShardDetector.listShards(KinesisShardDetector.java:132) 在 software.amazon.kinesis.leases.HierarchicalShardSyncer.getShardList(HierarchicalShardSyncer.java:248) 在 software.amazon.kinesis.leases.HierarchicalShardSyncer.checkAndCreateLeaseForNewShards(HierarchicalShardSyncer.java:81) 在 software.amazon.kinesis.leases.ShardSyncTask.call(ShardSyncTask.java:67) 在 software.amazon.kinesis.metrics.MetricsCollectingTaskDecorator.call(MetricsCollectingTaskDecorator.java:53) 在 software.amazon.kinesis.coordinator.Scheduler.initialize(Scheduler.java:247) 在 software.amazon.kinesis.coordinator.Scheduler.run(Scheduler.java:213) 在 software.amazon.kinesis.multilang.MultiLangDaemon$MultiLangRunner.call(MultiLangDaemon.java:95) 在 software.amazon.kinesis.multilang.MultiLangDaemon$MultiLangRunner.call(MultiLangDaemon.java:86) 在 java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) 在 java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 在 java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 在 java.base/java.lang.Thread.run(Thread.java:834) 引起:software.amazon.awssdk.core.exception.SdkClientException:null 在 software.amazon.awssdk.core.exception.SdkClientException$BuilderImpl.build(SdkClientException.java:97) 在 software.amazon.awssdk.core.internal.util.ThrowableUtils.asSdkException(ThrowableUtils.java:98) 在 software.amazon.awssdk.core.internal.http.pipeline.stages.AsyncRetryableStage$RetryExecutor.retryIfNeeded(AsyncRetryableStage.java:118) 在 software.amazon.awssdk.core.internal.http.pipeline.stages.AsyncRetryableStage$RetryExecutor.lambda$execute$0(AsyncRetryableStage.java:104) 在 java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:859) 在 java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(CompletableFuture.java:837) 在 java.base/java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) 在 java.base/java.util.concurrent.CompletableFuture.completeExceptionally(CompletableFuture.java:2088) 在 software.amazon.awssdk.core.internal.http.pipeline.stages.MakeAsyncHttpRequestStage$ResponseHandler.onError(MakeAsyncHttpRequestStage.java:236) 在 software.amazon.awssdk.http.nio.netty.internal.NettyRequestExecutor.handleFailure(NettyRequestExecutor.java:228) 在 software.amazon.awssdk.http.nio.netty.internal.NettyRequestExecutor.makeRequestListener(NettyRequestExecutor.java:126) 在 io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511) 在 io.netty.util.concurrent.DefaultPromise.notifyListeners0(DefaultPromise.java:504) 在 io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:483) 在 io.netty.util.concurrent.DefaultPromise.notifyListeners(DefaultPromise.java:424) 在 io.netty.util.concurrent.DefaultPromise.setFailure(DefaultPromise.java:112) 在 software.amazon.awssdk.http.nio.netty.internal.http2.HttpOrHttp2ChannelPool.lambda$acquire0$1(HttpOrHttp2ChannelPool.java:84) 在 io.netty.util.concurrent.DefaultPromise.notifyListener0(DefaultPromise.java:511) 在 io.netty.util.concurrent.DefaultPromise.notifyListenersNow(DefaultPromise.java:485) 在 io.netty.util.concurrent.DefaultPromise.access$000(DefaultPromise.java:33) 在 io.netty.util.concurrent.DefaultPromise$1.run(DefaultPromise.java:435) 在 io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) 在 io.netty.util.concurrent.SingleThreadEventExecutor.runAllTask​​s(SingleThreadEventExecutor.java:404) 在 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:474) 在 io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909) ... 1 个常用帧省略 引起:io.netty.handler.codec.http2.Http2Exception:第一个收到的帧不是设置。前 5 个字节的十六进制转储:485454502f 在 io.netty.handler.codec.http2.Http2Exception.connectionError(Http2Exception.java:85) 在 io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.verifyFirstFrameIsSettings(Http2ConnectionHandler.java:350) 在 io.netty.handler.codec.http2.Http2ConnectionHandler$PrefaceDecoder.decode(Http2ConnectionHandler.java:251) 在 io.netty.handler.codec.http2.Http2ConnectionHandler.decode(Http2ConnectionHandler.java:450) 在 io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:502) 在 io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:441) 在 io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:278) 在 io.netty.handler.codec.http2.ForkedHttp2MultiplexCodec.channelRead(ForkedHttp2MultiplexCodec.java:359) 在 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) 在 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) 在 io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340) 在 io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434) 在 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362) 在 io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348) 在 io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965) 在 io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163) 在 io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:656) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:591) 在 io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:508) 在 io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:470) ...省略了2个常用帧

Kinesalite 和 Dynalite 都使用下面的代码在各自的端口上运行(Kinesalite 代码基本相同,但在端口 4567 上)。我还配置了 .properties 文件以添加 Kinesalite 和 Dynalite 服务器的端点。对解决此错误的任何帮助将不胜感激!

Dynalite server

properties file

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)