微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Sarama ClusterAdmin连接问题-管道损坏

如何解决Sarama ClusterAdmin连接问题-管道损坏

我正在使用Sarama(1.27)Clusteradmin管理kafka1.1.0中的主题。我管理kafka主题的应用程序正在作为REST服务运行。我的应用程序可以正常运行一会儿,我可以获取/创建/删除主题

但是一段时间后,没有任何活动,新的主题请求将出错-写入tcp xxxxx:37888-> xxxxx:9092:写入:管道中断。

我遇到了这个How to fix broker may not be available after broken pipe

由于我的应用程序作为服务运行,因此如何防止管道破裂问题?我仅在应用程序退出关闭Clusteradmin。相同的Clusteradmin连接用于服务所有请求。如果由于某种原因它为nil(通常在第一次初始化后它不是nil,所以通常不为nil,所以将重新使用相同的连接),我会为每个请求重新初始化clusteradmin。

在服务每个请求之后,我应该关闭clusteradmin并为每个主题请求打开NewClusteradmin(),还是我需要使用一个keepalive选项?

这是我现有的代码

if admin == nil{
        admin,err := NewClusteradmin([]string{"localhost:9092"},s.config)
        ..
}
topicMetadata,err := admin.Describetopics([]string{topicName})

解决方法

我也遇到了这个错误。我解决这个问题的方法是再试几次,例如2 到 10 次。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。