- 服务注册
func main() {
//注册中心地址
eurekaClient := NewEurekaClient("http://localhost:8761/eureka/")
//如果注册中心关闭了自身保护模式,可以自定义设置服务列表刷新时间(一般不建议关闭自身保护模式)
eurekaClient.SetRenewalIntervalInSecs("30")
eurekaClient.SetDurationInSecs("90")
//服务名称 、端口 (默认获取本地IP)
eurekaClient.Register("monitor", "8080")
//也可以指定IP注册
eurekaClient.RegisterWithHost("monitor","127.0.0.1", "8080")
}
客户端提供 /health 接口,服务中心定时采集状态(只是状态采集)
engine.GET("/health", func(context *gin.Context) {
context.JSON(http.StatusOK, `{"status":"UP"}`)
})
- 服务发现
func main() {
//注册中心地址
eurekaClient := NewEurekaClient("http://localhost:8761/eureka/")
//获取服务列表
serviceList, err := eurekaClient.GetServices()
//根据服务名称获取服务信息
service, er := eurekaClient.GetServiceInstances("TEST_SERVICE_NAME")
//获取服务地址 (例如:http://ip:port/)
url := eurekaClient.GetServiceUrl("TEST_SERVICE_NAME")
}
- 向服务中心同步心跳
- 服务中心重启,服务自动注册
- 当前服务升级,自动重新建立心跳机制(注册中心不升级,当前服务升级,不需要重新注册,但是需要重新建立心跳机制)
- 注册到注册中心的statusPageUrl (http://host:port/actuator/info)
- 服务刷新时间支持自定义