2015-06-30 26 views
0

我有一個.war,其中我們有一個Kinesis應用程序處理包含單個分片的流。我們在生產中部署了兩場戰爭。結果,我最終會有兩名工作人員在一個單一的流中工作,只有一個碎片。建議如何處理這個問題?我嘗試在我的開發機器上本地部署兩場戰爭,並且從每種記錄只處理一次的意義上來看似乎沒有問題。我知道AWS推薦每個分片一個實例。從他們的文檔:Kinesis客戶端庫:一個流的多個工人

Typically, when you use the KCL, you should ensure that the number of instances does not exceed the number of shards (except for failure standby purposes). Each shard is processed by exactly one KCL worker and has exactly one corresponding record processor, so you never need multiple instances to process one shard. 

回答

2

大多數時候你可能很好。 KCL將爲您處理這件事。

http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-record-processor-ddb.html

要檢查,如果一個工人處理一些記錄後死亡,但檢查點之前的情況。在這種情況下,接管的工作人員將重新處理一些記錄(來自上一個檢查點)。 您的應用程序可以處理記錄的重新處理嗎?

看到:http://docs.aws.amazon.com/kinesis/latest/dev/kinesis-record-processor-duplicates.html