trpc.group/trpc-go/trpc-go@v1.0.3/naming/circuitbreaker/README.zh_CN.md (about)

     1  # tRPC-Go 熔断器
     2  
     3  针对每个请求的请求结果都会进行上报处理,熔断器会根据上报的情况,如果触发熔断,则会对服务器节点进行熔断处理。
     4  
     5  ## 使用
     6  通过 client.WithCircuitBreakerName("xxx") 指定使用的熔断器。
     7  ```go
     8  opts := []client.Option{
     9  	client.WithCircuitBreakerName("xxxx"),
    10  }
    11  
    12  proxy := pb.NewGreeterProxy()
    13  req := &pb.HelloRequest{
    14  	Msg: "trpc-go-client",
    15  }
    16  proxy.SayHello(ctx, req, opts...)
    17  ```
    18  
    19  ## 熔断器接口
    20  ```go
    21  // CircuitBreaker 熔断器接口,判断 node 是否可用,上报当前 node 成功或者失败
    22  type CircuitBreaker interface {
    23  	Available(node *registry.Node) bool
    24  	Report(node *registry.Node, cost time.Duration, err error) error
    25  }
    26  ```
    27  默认实现为不熔断处理。
    28