概览
将本服务注册到注册中心,或者从服务发现中心发现服务
已实现服务发现
已实现服务注册
配置
asjard:
## 服务发现,注册相关配置
registry:
## 是否自动服务注册
# autoRegiste: true
## 延迟注册, 服务启动后等待延迟时间后注册服务到注册中心
# delayRegiste: 0s
## 注册心跳, 开启后每隔一个心跳时间注册服务到服务注册中心
# heartbeat: false
## 心跳频率
# heartbeatInterval: 5s
## 自动服务发现, 自动从配置中心发现服务
# autoDiscove: true
## 服务健康检查,检查服务是否正常,如果不正常则从本地缓存中删除该服务
# healthCheck: false
## 健康检查间隔时间
# healthCheckInterval: 10s
## 认定检查失败的检查阈值(连续失败次数)
# failureThreshold: 1
使用
package main
import _ "github.com/asjard/asjard/pkg/registry/etcd"
自定义服务注册
实现如下方法
// Register 服务注册相关功能
type Register interface {
// 将服务注册到不同的配置中心
// 如果开启心跳,则每隔一个心跳间隔注册一次
Registe(instance *server.Service) error
// 从配置中心移除服务实例
Remove(instance *server.Service)
// 注册中心名称
Name() string
}
注册
// 注册
func init() {
registry.AddRegister("custome_register_name", NewRegisterFunc)
}
使用
package main
import _ "you_custome_register_dir"
自定义服务发现
实现如下方法
// Discovery 服务发现相关功能
type Discovery interface {
// 获取所有服务实例
GetAll() ([]*Instance, error)
// 服务发现中心名称
Name() string
}
注册
func init() {
registry.AddDiscover("your_custome_discover_name", NewDiscoverFunc)
}
使用
package main
import _ "your_custome_discover_dir"
最后更新于