golang
已收录文章:14112篇
-
使用context实现Goroutine超时与取消,通过WithTimeout或WithCancel创建上下文,结合select监听ctx.Done()及时终止任务,传递context以传播取消信号,并用defercancel()防止资源泄露。167 收藏
-
Go服务适配Istio需理解Sidecar流量拦截机制,确保健康检查路径开放、合理配置HTTP客户端连接池、透传追踪头信息、通过Service域名调用依赖服务,并合理分配Sidecar资源以优化性能。167 收藏
-
答案:Go语言通过Goroutine和Channel实现观察者模式,利用Event、Observer和Subject接口解耦事件发布与订阅。EventBus使用sync.RWMutex保证并发安全,异步通知避免阻塞,结合缓冲channel可实现背压控制。实际应用中注册EmailService和LogService等观察者监听用户登录事件,各自独立处理。需注意资源清理、错误捕获、有序通知及性能监控,确保系统健壮性。167 收藏
-
答案:Go语言通过defer和recover捕获panic以提升程序健壮性,recover仅在defer中有效,可阻止panic传播并获取其值;HTTP服务中可通过recovery中间件统一处理panic,防止服务崩溃;每个goroutine需独立设置defer-recover,主协程无法捕获子协程panic;recover返回interface{}类型,需通过类型断言判断具体panic信息;合理使用defer+recover能有效控制错误影响范围,但不应滥用,避免掩盖真正编程错误。167 收藏
-
介绍 本文介绍如何通过 rk-boot 快速搭建 gRPC 超时拦截器。 什么是 gRPC 超时拦截器? 拦截器会拦截 gRPC 请求,并根据策略返回超时错误。 安装 go get github.com/rookie-ninja/rk-boot go get github.com/rookie-nin166 收藏
-
导语:通过node_exporter监控GPU以及cpu频率、温度,不想用一个node_exporter再加一个dcgm,分开监控。我这里监控的是热区的温度。如果需要监控各个cpu核心的温度需要修改一下代码。 结合了https://git166 收藏