package gomicro import ( "github.com/micro/go-micro/v2" "github.com/micro/go-micro/v2/client" "github.com/micro/go-micro/v2/client/selector" ) //call E.g: /* service := NewMicroService(func(rsp interface{}) error { r := rsp.(*MyResponse) r.Message = "hello error~: service not found!" return nil }) yourService := pb.NewYourService("your micro service name", service.Client()) */ // defRsp fuseResponse 为熔断时的默认响应处理 func NewMicroService(defRsp fuseResponse) micro.Service { se := selector.NewSelector( selector.SetStrategy(selector.RoundRobin), ) service := micro.NewService( micro.Selector(se), micro.WrapClient(func(client client.Client) client.Client { return &HystrixWrapper{client, defRsp} }), micro.WrapClient(NewLogWrapper), ) return service }