github.com/linyuanbin/go-eureka

eureka client


Install
go get github.com/linyuanbin/go-eureka

Documentation

Go程序实现Spring Cloud Eureka注册中心服务注册

EurekaClient使用

  • 服务注册
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)
  • 服务刷新时间支持自定义