Documentation ¶
Index ¶
- Constants
- Variables
- func CreateChains(chainType string, handlerNameMap map[string]string) error
- func GetFaultConfig(protocol, microServiceName, schemaID, operationID string) model.Fault
- func RegisterHandler(name string, f func() Handler) error
- func WriteBackErr(err error, status int, cb invocation.ResponseCallBack)
- type Chain
- type ChainOption
- type ChainOptions
- type FaultHandler
- type Handler
- type LBHandler
- type MarkHandler
- type RouterHandler
- type TracingConsumerHandler
- type TracingProviderHandler
Constants ¶
const ( //consumer chain Transport = "transport" LoadBalancing = "loadbalance" Router = "router" FaultInject = "fault-inject" TracingConsumer = "tracing-consumer" TracingProvider = "tracing-provider" )
constant keys for handlers
const (
FaultHandlerName = "fault-inject"
)
constant for fault handler name
const (
TrafficMarker = "traffic-marker"
)
TrafficMarker
Variables ¶
var ChainMap = make(map[string]*Chain)
ChainMap just concurrent read
var ErrDuplicatedHandler = errors.New("duplicated handler registration")
ErrDuplicatedHandler means you registered more than 1 handler with same name
Functions ¶
func CreateChains ¶
CreateChains create the chains based on type and handler map
func GetFaultConfig ¶
GetFaultConfig get faultconfig
func RegisterHandler ¶
RegisterHandler Let developer custom handler
func WriteBackErr ¶
func WriteBackErr(err error, status int, cb invocation.ResponseCallBack)
WriteBackErr write err and callback
Types ¶
type Chain ¶
Chain struct for service and handlers
func CreateChain ¶
CreateChain create consumer or provider's chain,the handlers is different
func (*Chain) Next ¶
func (c *Chain) Next(i *invocation.Invocation, f invocation.ResponseCallBack)
Next is for to handle next handler in the chain
type ChainOption ¶
type ChainOption func(*ChainOptions)
ChainOption is a function name
func WithChainName ¶
func WithChainName(name string) ChainOption
WithChainName returns the name of the chain option
type FaultHandler ¶
type FaultHandler struct{}
FaultHandler handler
func (*FaultHandler) Handle ¶
func (rl *FaultHandler) Handle(chain *Chain, inv *invocation.Invocation, cb invocation.ResponseCallBack)
Handle is to handle the API
func (*FaultHandler) Name ¶
func (rl *FaultHandler) Name() string
Name function returns fault-inject string
type Handler ¶
type Handler interface { // handle invocation transportation,and tr response Handle(*Chain, *invocation.Invocation, invocation.ResponseCallBack) Name() string }
Handler interface for handlers
func CreateHandler ¶
CreateHandler create a new handler by name your registered
type LBHandler ¶
type LBHandler struct{}
LBHandler loadbalancer handler struct
func (*LBHandler) Handle ¶
func (lb *LBHandler) Handle(chain *Chain, i *invocation.Invocation, cb invocation.ResponseCallBack)
Handle to handle the load balancing
type MarkHandler ¶
type MarkHandler struct { }
MarkHandler compares the match rule with invocation and mark this invocation
func (*MarkHandler) Handle ¶
func (m *MarkHandler) Handle(chain *Chain, inv *invocation.Invocation, cb invocation.ResponseCallBack)
Handle to handle the mart invocation
type RouterHandler ¶
type RouterHandler struct{}
RouterHandler router handler
func (*RouterHandler) Handle ¶
func (ph *RouterHandler) Handle(chain *Chain, i *invocation.Invocation, cb invocation.ResponseCallBack)
Handle is to handle the router related things
type TracingConsumerHandler ¶
type TracingConsumerHandler struct{}
TracingConsumerHandler tracing consumer handler
func (*TracingConsumerHandler) Handle ¶
func (t *TracingConsumerHandler) Handle(chain *Chain, i *invocation.Invocation, cb invocation.ResponseCallBack)
Handle is handle consumer tracing related things
func (*TracingConsumerHandler) Name ¶
func (t *TracingConsumerHandler) Name() string
Name returns tracing-consumer string
type TracingProviderHandler ¶
type TracingProviderHandler struct{}
TracingProviderHandler tracing provider handler
func (*TracingProviderHandler) Handle ¶
func (t *TracingProviderHandler) Handle(chain *Chain, i *invocation.Invocation, cb invocation.ResponseCallBack)
Handle is to handle the provider tracing related things
func (*TracingProviderHandler) Name ¶
func (t *TracingProviderHandler) Name() string
Name returns tracing-provider string