server

package
v3.0.7 Latest Latest
Warning

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

Go to latest
Published: Jun 28, 2022 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ConfigInfo

type ConfigInfo struct {
	Routes []Route
}

ConfigInfo ServiceConfigurator represents service configurator

type Option

type Option func(c *ServiceInfo)

func WithAddress

func WithAddress(address string) Option

func WithKind

func WithKind(kind constant.ServiceKind) Option

func WithMetaData

func WithMetaData(key, value string) Option

func WithScheme

func WithScheme(scheme string) Option

type Route

type Route struct {
	// 权重组,按照
	WeightGroups []WeightGroup
	// 方法名
	Method string
}

Route ...

type Server

type Server interface {
	Serve() error
	Stop() error
	GracefulStop(ctx context.Context) error
	Info() *ServiceInfo
	Healthz() bool
}

Server ...

type Service

type Service struct {
	Namespace string            `json:"namespace" toml:"namespace"`
	Name      string            `json:"name" toml:"name"`
	Labels    map[string]string `json:"labels" toml:"labels"`
	Methods   []string          `json:"methods" toml:"methods"`
}

Service ...

type ServiceInfo

type ServiceInfo struct {
	Name       string               `json:"name"`
	AppID      string               `json:"appId"`
	Scheme     string               `json:"scheme"`
	Address    string               `json:"address"`
	Weight     float64              `json:"weight"`
	Enable     bool                 `json:"enable"`
	Healthy    bool                 `json:"healthy"`
	Metadata   map[string]string    `json:"metadata"`
	Region     string               `json:"region"`
	Zone       string               `json:"zone"`
	Kind       constant.ServiceKind `json:"kind"`
	Deployment string               `json:"deployment"` // Deployment 部署组: 不同组的流量隔离  比如某些服务给内部调用和第三方调用,可以配置不同的deployment,进行流量隔离
	Group      string               `json:"group"`      // Group 流量组: 流量在Group之间进行负载均衡
	Services   map[string]*Service  `json:"services" toml:"services"`
}

ServiceInfo represents service info

func ApplyOptions

func ApplyOptions(options ...Option) ServiceInfo

func (ServiceInfo) Equal

func (si ServiceInfo) Equal(o interface{}) bool

Equal allows the values to be compared by Attributes.Equal, this change is in order to fit the change in grpc-go: attributes: add Equal method; resolver: add AddressMap and State.BalancerAttributes (#4855)

func (ServiceInfo) Label

func (si ServiceInfo) Label() string

Label ...

type WeightGroup

type WeightGroup struct {
	Group  string
	Weight int
}

WeightGroup ...

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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