节点熔断
引入依赖
go get github.com/polarismesh/polaris-go@latest
初始化 polaris.yaml
你需要在项目的根路径下创建一个 polaris.yaml 文件用于初始化 polaris-go SDK。polaris.yaml配置详细
SDK实例构建
当初始化好 polaris.yaml 文件之后,你可以直接使用在 package github.com/polarismesh/polaris-go 下的 NewConsumerAPI 方法进行构造一个 ConsumerAPI SDK 实例
import (
...
"github.com/polarismesh/polaris-go"
)
func main() {
consumer, err := polaris.NewConsumerAPI()
}
上报调用情况
type ServiceCallResult struct {
// 上报的服务实例
CalledInstance Instance
// 调用接口方法
Method string
// 必选,本地服务调用的状态,正常or异常
RetStatus RetStatus
// 必选,本地服务调用的返回码
RetCode *int32
// 必选,被调服务实例获取接口的最大时延
Delay *time.Duration
// 可选,主调服务实例的服务信息
SourceService *ServiceInfo
}
上报请求调用结果
你在根据请求调用情况对 ServiceCallResult 结构体完成初始化后,只需要调用 ConsumerAPI.UpdateServiceCallResult 方法即可完成请求调用结果上报。SDK 内部会根据上报的调用结果信息,对实例进行信息统计并计算是否需要对实例进行熔断
consumer.UpdateServiceCallResult(ServiceCallResult)