今天吃了八颗糖 2023-02-15 10:17 采纳率: 42.9%
浏览 45

同段代码在go-zero里503

同一段运行代码,用了一个goroutine,如果代码单提出来运行,就没有问题完全通过,但是放到go-zero里就会有结果返回503,请问是负载原因吗

img

  • 写回答

2条回答 默认 最新

  • GISer Liu 2023-02-15 10:26
    关注

    以下答案引用自GPT-3大模型,请合理使用:

    这可能是Go-Zero的负载原因。Go-Zero通过限制服务上下文中的goroutine数量(go-zero会有默认的goroutine数量限制)来限制负载,如果您将这些代码放入Go-Zero服务上下文中,该服务可能会超出要求的goroutine数量,从而导致503错误。
    
    要解决这一问题,建议您扩展Go-Zero服务上下文中的goroutine数量,以便在运行时获得更多的goroutine可用资源,从而避免出现因负载过大而出现的503错误。
    
    以下是一段Go代码,用于扩展Go-Zero服务上下文中的goroutine数量:
    
    // package main
    
    import (
      "net/http"
    
      "github.com/univ-of-south-bend/go-zero"
    )
    
    func main() {
      // 创建Go-Zero服务
      svc := gozero.NewService(nil)
    
      // 设置goroutine数量为100
      svc.SetGoroutines(100)
    
      // 处理请求
      http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        // 写入响应
        w.Write([]byte("Hello World!"))
      })
    
      // 监听服务
      svc.ListenAndServe(":3000")
    }
    

    如果我的回答解决了您的问题,请采纳我的回答

    评论

报告相同问题?

问题事件

  • 创建了问题 2月15日