登录
首页 >  Golang >  Go问答

将 ListenAndServe 放入 goroutine 中

来源:stackoverflow

时间:2024-04-20 14:27:41 435浏览 收藏

最近发现不少小伙伴都对Golang很感兴趣,所以今天继续给大家介绍Golang相关的知识,本文《将 ListenAndServe 放入 goroutine 中》主要内容涉及到等等知识点,希望能帮到你!当然如果阅读本文时存在不同想法,可以在评论中表达,但是请勿使用过激的措辞~

问题内容

我无法估计在 goroutine 中运行 http.listenandserve 是否会产生副作用。

使 prometheus 能够从运行 kafkaclient 的服务的 /metrics 端点收集统计数据(在无限 for 循环中运行 kafka 消费者)

var addr = flag.String("listen-address", ":8070", "The address to listen on for HTTP requests.")

func main() {

   flag.Parse()
   http.Handle("/metrics", promhttp.Handler())
   go http.ListenAndServe(*addr, nil)

   for {....}

启动监控端点并运行无限循环的最佳实践是什么?


解决方案


最佳实践是检查并处理错误。来自 http.listenandserve 的错误将被忽略。

如果从 http.listenandserve 返回对应用程序来说是致命的,则使用以下代码或其某些变体来处理错误。

go func() { 
     log.Fatal(http.ListenAndServe(*addr, nil)) 
}()

调用 log.fatal 记录错误并退出应用程序。

好了,本文到此结束,带大家了解了《将 ListenAndServe 放入 goroutine 中》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>