我在kubernetes中设置了3个rest代理(kafka rest)示例。
https://docs.confluent.io/current/kafka-rest/docs/index.html
https://github.com/confluentinc/kafka-rest
我在部署的顶部添加了netscaler入口。
我在citrix netscaler文档中看到netscaler为会话粘性提供了持久性配置。
用于netscaler持久性的citrix文档
在Kafka休息文件中提到:
rest代理群集和负载平衡—rest代理设计为支持多个示例一起运行以分散负载,只要示例配置正确,就可以在各种负载平衡机制(如循环dns、发现服务、负载平衡器)下安全运行。
和
尽管代理没有任何持久状态,但它是有状态的,因为使用者示例与特定的代理示例相关联。
但是,我已经尝试了所有可能的配置组合。但我在rest代理中的一些数据消耗请求仍然失败。
我得到一个HTTP404错误。
有谁能指导我,rest代理需要什么样的会话粘性,以及如何在kubernetes的netscaler中实现这一点。
更新:
我还发现了这个文本,它指出我们应该使用create consumer rest调用返回的“baseuri”。现在我的问题是,我们是应该在剩余的消费数据调用中显式地使用它而不是负载平衡器url,还是应该在负载平衡器中配置粘性以考虑返回的url并相应地发送以下请求(如果可能的话)
如果您运行多个代理示例,您应该提供一些负载平衡机制。最简单的方法是使用循环dns或发现服务,在启动时为每个应用程序进程选择一个示例,将所有流量发送到该示例。您也可以使用http负载平衡器,但个别示例仍必须可寻址,以支持返回的绝对URL,以便在使用者读取和偏移提交操作中使用。
暂无答案!
目前还没有任何答案,快来回答吧!