Documentation
¶
Index ¶
- Constants
- func GetServiceKey(prefix string, s *server.ServiceInfo) string
- func GetServiceValue(s *server.ServiceInfo) string
- type Configuration
- type ConsumerConfig
- type Endpoints
- type Nop
- func (n Nop) Close() error
- func (n Nop) ListServices(ctx context.Context, target Target) ([]*server.ServiceInfo, error)
- func (n Nop) RegisterService(context.Context, *server.ServiceInfo) error
- func (n Nop) SyncServices(context.Context, SyncServicesOptions) error
- func (n Nop) UnregisterService(context.Context, *server.ServiceInfo) error
- func (n Nop) WatchServices(ctx context.Context, target Target) (chan Endpoints, error)
- type ProviderConfig
- type Registry
- type Route
- type RouteConfig
- type SyncServicesOptions
- type Target
- type Upstream
- type WeightGroup
Constants ¶
View Source
const ( // ProtocolGRPC ... ProtocolGRPC = "grpc" // ProtocolHTTP ... ProtocolHTTP = "http" )
Variables ¶
This section is empty.
Functions ¶
func GetServiceKey ¶
func GetServiceKey(prefix string, s *server.ServiceInfo) string
GetServiceKey ETCD注册需要使用 Deprecated: Use *server.ServiceInfo.GetServiceKey()
func GetServiceValue ¶
func GetServiceValue(s *server.ServiceInfo) string
GetServiceValue ETCD注册需要使用 Deprecated: Use *server.ServiceInfo.GetServiceValue()
Types ¶
type Configuration ¶
type Configuration struct {
Routes []Route `json:"routes"` // 配置客户端路由策略
Labels map[string]string `json:"labels"` // 配置服务端标签: 分组
}
Configuration ...
type ConsumerConfig ¶
type ConsumerConfig struct {
ID string `json:"id"`
Scheme string `json:"scheme"`
Host string `json:"host"`
}
ConsumerConfig config of consumer 客户端调用app的配置
type Endpoints ¶
type Endpoints struct {
// Nodes 服务节点列表
Nodes map[string]server.ServiceInfo `json:"nodes"`
// RouteConfigs 路由配置
RouteConfigs map[string]RouteConfig `json:"routeConfigs"`
// ConsumerConfigs 消费者元数据
ConsumerConfigs map[string]ConsumerConfig `json:"consumerConfigs"`
// ProviderConfigs 服务元信息
ProviderConfigs map[string]ProviderConfig `json:"providerConfigs"`
}
Endpoints ...
type Nop ¶
type Nop struct{}
Nop registry, used for local development/debugging
func (Nop) ListServices ¶
ListServices ...
func (Nop) RegisterService ¶
RegisterService ...
func (Nop) SyncServices ¶ added in v0.5.0
func (n Nop) SyncServices(context.Context, SyncServicesOptions) error
SyncServices 同步所有服务
func (Nop) UnregisterService ¶
UnregisterService ...
type ProviderConfig ¶
type ProviderConfig struct {
ID string `json:"id"`
Scheme string `json:"scheme"`
Host string `json:"host"`
Region string `json:"region"`
Zone string `json:"zone"`
Deployment string `json:"deployment"`
Metadata map[string]string `json:"metadata"`
Enable bool `json:"enable"`
}
ProviderConfig config of provider 通过这个配置,修改provider的属性
type Registry ¶
type Registry interface {
RegisterService(context.Context, *server.ServiceInfo) error
UnregisterService(context.Context, *server.ServiceInfo) error
ListServices(context.Context, Target) ([]*server.ServiceInfo, error)
WatchServices(context.Context, Target) (chan Endpoints, error)
SyncServices(context.Context, SyncServicesOptions) error
io.Closer
}
Registry register/unregister service registry impl should control rpc timeout
type Route ¶
type Route struct {
// 路由方法名
Method string `json:"method" toml:"method"`
// 路由权重组, 按比率在各个权重组中分配流量
WeightGroups []WeightGroup `json:"weightGroups" toml:"weightGroups"`
// 路由部署组, 将流量导入部署组
Deployment string `json:"deployment" toml:"deployment"`
}
Route represents route configuration
type RouteConfig ¶
type RouteConfig struct {
ID string `json:"id" toml:"id"`
Scheme string `json:"scheme" toml:"scheme"`
Host string `json:"host" toml:"host"`
Deployment string `json:"deployment"`
URI string `json:"uri"`
Upstream Upstream `json:"upstream"`
}
RouteConfig ...
type SyncServicesOptions ¶ added in v0.5.0
type SyncServicesOptions struct {
GrpcResolverNowOptions resolver.ResolveNowOptions
}
SyncServicesOptions ...
type Target ¶ added in v0.5.0
type Target struct {
Protocol string // "http"|"grpc"
Scheme string // "etcd"|"k8s"|"dns"
Endpoint string // "<SVC-NAME>:<PORT>"
Authority string
}
Target ...
type WeightGroup ¶
type WeightGroup struct {
Group string `json:"group" toml:"group"`
Weight int `json:"weight" toml:"weight"`
}
WeightGroup ...
Click to show internal directories.
Click to hide internal directories.