我目前正在Golang版本中編寫簡單的Kinesis客戶端庫(KCL)。我希望爲我的簡單KCL提供的功能之一是跨多個記錄處理器和EC2實例的負載均衡分片。例如,我有兩個記錄處理器(將在單獨的EC2實例中運行)和四個Kinesis碎片。負載平衡功能將允許每個記錄處理器處理兩個Kinesis碎片。如何在多個記錄處理器之間平衡kinesis碎片?
我讀到Java KCL實現了這一點,但我無法在庫中找到實現。我的問題是我將如何在Golang中實現此功能?謝謝。
我目前正在Golang版本中編寫簡單的Kinesis客戶端庫(KCL)。我希望爲我的簡單KCL提供的功能之一是跨多個記錄處理器和EC2實例的負載均衡分片。例如,我有兩個記錄處理器(將在單獨的EC2實例中運行)和四個Kinesis碎片。負載平衡功能將允許每個記錄處理器處理兩個Kinesis碎片。如何在多個記錄處理器之間平衡kinesis碎片?
我讀到Java KCL實現了這一點,但我無法在庫中找到實現。我的問題是我將如何在Golang中實現此功能?謝謝。
在您開始編寫自己的客戶端...它看起來像有一些人誰已經做到了這一點:
你有另一種選擇是KCL MultiLangDaemon。你可以安裝一個小型的runner程序,爲你做所有的平衡,然後你只聽守護進程發送給你的消息並將它們提交回去。
https://github.com/awslabs/amazon-kinesis-client#amazon-kcl-support-for-other-languages
KCL已經做負載均衡爲您服務。
下面是今天如何工作的基本描述(記住這僅僅是基礎,並隨時更改,如亞馬遜提高了邏輯):
你當然可以自由檢查GitHub上的KCL的源代碼:https://github.com/awslabs/amazon-kinesis-client - 希望這個解釋給你更多關於如何理解KCL並使其適應您的需求的上下文。
謝謝你的資源,瑞安。但你在這裏沒有回答我的問題。 –