我目前正在Golang版本中编写简单的Kinesis客户端库(KCL)。我希望它用于简单KCL的功能之一是跨多个记录处理器和EC2实例的负载均衡分片。例如,我有两个记录处理器(将在单独的EC2实例中运行)和四个Kinesis分片。负载平衡功能将允许每个记录处理器处理两个Kinesis分片。
我读到Java KCL实现了这一点,但我无法在库中找到实现。我的问题是如何在Golang中实现此功能?谢谢。
答案 0 :(得分:1)
KCL已为您进行负载均衡。
以下是今天如何运作的基本描述(请记住,这只是基础知识,并且随着亚马逊改进逻辑而有所变化):
您当然可以自由地在github上查看KCL的源代码:https://github.com/awslabs/amazon-kinesis-client - 希望这些解释为您提供更多有关如何理解KCL并使其适应您需求的背景信息。
答案 1 :(得分:0)
在开始编写自己的客户之前......看起来有些人已经这样做了:
您拥有的另一个选择是KCL MultiLangDaemon。您可以安装一个为您完成所有平衡的小型跑步者程序,然后您只需听取守护程序发送给您的消息并将其提交回来。
https://github.com/awslabs/amazon-kinesis-client#amazon-kcl-support-for-other-languages
答案 2 :(得分:0)
对于对此主题感兴趣的人,VMWare编写了Java库的Go实现:https://github.com/vmware/vmware-go-kcl/
在撰写本文时,它不支持租借盗用:https://github.com/vmware/vmware-go-kcl/issues/4