micro

package
v0.5.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2022 License: GPL-3.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddConsumer

func AddConsumer(consumer *Consumer) (err error)

func CircuitBreakerIncr

func CircuitBreakerIncr(circuitController *CircuitController) grpc_zap.Option

超时计数器

func DeleteConsumer

func DeleteConsumer(serviceName string)

func GetServiceConn

func GetServiceConn(serviceName string) (conn *grpc.ClientConn, err error)

func RecoveryInterceptor

func RecoveryInterceptor() grpc_recovery.Option

func StartProvide

func StartProvide(provider *Provider, port string) (err error)

在指定端口监听微服务,并将端口注册给注册中心

func Stop

func Stop()

Types

type CircuitConfig

type CircuitConfig struct {
	//熔断超时率,大于此数值时设置熔断时间,默认按照1分钟内的请求来计算
	TimeoutThresholdRate float64
	//熔断触发时持续时间
	TimeoutDuration time.Duration
	//熔断时重试发起的尝试时间,在此期间如果依然失败,则直接延长熔断时间
	RetryDuration time.Duration
	//熔断触发时持续时间
	CircuitDuration time.Duration
	//从指定数量开始做熔断判断
	CircuitBaseCount int64
}

type CircuitController

type CircuitController struct {
	CircuitConfig CircuitConfig
	// contains filtered or unexported fields
}

func (*CircuitController) AddReq

func (c *CircuitController) AddReq(num int64) int64

func (*CircuitController) AddTimeout

func (c *CircuitController) AddTimeout(num int64) int64

func (*CircuitController) Limit

func (c *CircuitController) Limit() bool

type Consumer

type Consumer struct {
	IConsumer
	// contains filtered or unexported fields
}

func CreateConsumer

func CreateConsumer(iConsumer IConsumer) (*Consumer, error)

func (*Consumer) GetNewTimeoutContext

func (c *Consumer) GetNewTimeoutContext() (ctx context.Context, cancel context.CancelFunc)

type GrpcRegisterFunc

type GrpcRegisterFunc func(s *grpc.Server)

type IConsumer

type IConsumer interface {
	GetServiceConnection() (conn *grpc.ClientConn, err error)
	GetServiceName() (serviceName string, err error)
	Stop() (err error)
}

type IProvider

type IProvider interface {
	RegisterServices(s *grpc.Server, port string) (err error)
	GetServiceName() (serviceName string)
	DeregisterServices() (err error)
}

type NacosConsumer

type NacosConsumer struct {
	// contains filtered or unexported fields
}

func CreateNacosConsumer

func CreateNacosConsumer(clientConfig *constant.ClientConfig, serverConfigs *[]constant.ServerConfig, ServiceName string, clusterName string, groupName string, timeoutSeconds int) (*NacosConsumer, error)

func (*NacosConsumer) CreateNacosProvider

func (nc *NacosConsumer) CreateNacosProvider(foo GrpcRegisterFunc, ServiceName string, serviceIp string, metadata *map[string]string, Logger *zap.Logger) (*NacosProvider, error)

使用consumer的namingClient构建provider

func (*NacosConsumer) GetBaseConsumer

func (nc *NacosConsumer) GetBaseConsumer() *Consumer

func (*NacosConsumer) GetServiceConnection

func (nc *NacosConsumer) GetServiceConnection() (conn *grpc.ClientConn, err error)

func (*NacosConsumer) GetServiceName

func (nc *NacosConsumer) GetServiceName() (serviceName string, err error)

func (*NacosConsumer) Stop

func (nc *NacosConsumer) Stop() (err error)

type NacosProvider

type NacosProvider struct {
	// contains filtered or unexported fields
}

func CreateNacosCircuitProvider

func CreateNacosCircuitProvider(foo GrpcRegisterFunc, clientConfig *constant.ClientConfig, serverConfigs *[]constant.ServerConfig, ServiceName string, serviceIp string, clusterName string, groupName string, metadata *map[string]string, circuitConfig CircuitConfig, Logger *zap.Logger) (*NacosProvider, error)

func CreateNacosProvider

func CreateNacosProvider(foo GrpcRegisterFunc, clientConfig *constant.ClientConfig, serverConfigs *[]constant.ServerConfig, ServiceName string, serviceIp string, clusterName string, groupName string, metadata *map[string]string, Logger *zap.Logger) (*NacosProvider, error)

func (*NacosProvider) CreateNacosConsumer

func (np *NacosProvider) CreateNacosConsumer(ServiceName string, timeoutSeconds int) *NacosConsumer

使用provider的namingClient构建consumer

func (*NacosProvider) DeregisterServices

func (np *NacosProvider) DeregisterServices() (err error)

func (*NacosProvider) GetBaseProvider

func (np *NacosProvider) GetBaseProvider() *Provider

func (*NacosProvider) GetServiceName

func (np *NacosProvider) GetServiceName() (serviceName string)

func (*NacosProvider) RegisterServices

func (np *NacosProvider) RegisterServices(s *grpc.Server, port string) (err error)

type Provider

type Provider struct {
	IProvider
	Logger *zap.Logger
	// contains filtered or unexported fields
}

func CreateProvider

func CreateProvider(iProvider IProvider, CircuitConfig CircuitConfig, Logger *zap.Logger) (*Provider, error)

func (*Provider) GetCircuitController

func (p *Provider) GetCircuitController() *CircuitController

type ServiceConnection

type ServiceConnection struct {
	// contains filtered or unexported fields
}

func (*ServiceConnection) GetConn

func (s *ServiceConnection) GetConn() *grpc.ClientConn

func (*ServiceConnection) SetConn

func (s *ServiceConnection) SetConn(conn *grpc.ClientConn)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL