登录
首页 >  Golang >  Go问答

在缺少 HTTP 服务器的情况下,添加健康检查端点

来源:stackoverflow

时间:2024-02-15 15:54:24 252浏览 收藏

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

问题内容

我想为 2 个不同的服务编写运行状况检查端点,但问题是它们没有 HTTP 服务器。

如果我可以编写运行状况检查端点,我该如何继续。或者是否必须有一个 HTTP 服务器才能使用 Golang 来处理健康检查端点。


正确答案


是的,您可以使用类似的方法将 http 运行状况检查处理程序添加到您的应用程序中。然后,在执行运行状况检查的服务中,只需确保它知道要针对哪个端口运行 http 检查即可。

package main

import "net/http"

func main() {
    // start the health check endpoint and make sure not to block
    go func() {
        _ = http.listenandserve(":8080", http.handlerfunc(
            func(w http.responsewriter, r *http.request) {
                _, _ = w.write([]byte("ok"))
            },
        ))
    }()
    
    // start my application code
}

或者,如果您需要在单独的路径上公开您的健康检查路由,您可以执行类似的操作。

http.handlefunc("/health", func(w http.responsewriter, r *http.request) {
    _, _ = w.write([]byte("ok"))
})
_ = http.listenandserve(":8080", nil)

已更新 如果你想检查 goroutine 的健康状况,你可以这样做。

package main

func main() {
    crashed := make(chan struct{})
    go func() {
        defer close(crashed)
    }()

    select {
    case <-crashed:
        // Do something now that the go-routine crashed
    }
}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

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