1.简介
提供Go微服务客户端注册到Eureka中心。点击:github地址,欢迎各位多多star!
(已通过测试验证,用于正式生产部署)
2.原理
goeureka主要是通过REST请求来与server进行通信。
其中Java版本的核心实现请参看:com.netflix.discovery.DiscoveryClient
实现过程

3.注册信息
注册eureka服务端的配置信息如下:
1{ 2 "instance": { 3 "instanceId" : "${ipAddress}:${appName}:${port}", 4 "hostName":"${ipAddress}", 5 "app":"${appName}", 6 "ipAddr":"${ipAddress}", 7 "vipAddress":"${appName}", 8 "overriddenstatus": "UNKNOWN", 9 "status":"UP", 10 "port": { 11 "$":${port}, 12 "@enabled": true 13 }, 14 "securePort": { 15 "$":${securePort}, 16 "@enabled": false 17 }, 18 "homePageUrl" : "http://${ipAddress}:${port}/", 19 "statusPageUrl": "http://${ipAddress}:${port}/info", 20 "healthCheckUrl": "http://${ipAddress}:${port}/health", 21 "dataCenterInfo" : { 22 "@class":"com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo", 23 "name": "MyOwn" 24 }, 25 "metadata": { 26 "management.port" : "${port}" 27 } 28 } 29}
4.功能特性
本项目封装了Eureka rest操作,实现了以下功能:
- register
- sendheartbeat
- deregister
- instances
调用前三个特性register 、heartbeat 和deregister基本上可以实现微服务注册到Eureka中心,其中appid实例是客户端的名称。
5.使用方法
工具包的导入方法:
import "github.com/SimonWang00/goeureka"
如果您默认使用本地启动的Eureka Server,注册代码如下:
1goeureka.RegisterClient("http://127.0.0.1:8761","my-goserver", "8000", "43") 2Notes: RegisterClient 为web server对应的端口
6.接入示例
在http中使用:
1import ( 2 "fmt" 3 "github.com/SimonWang00/goeureka" 4 "net/http" 5 ) 6 7 func main() { 8 goeureka.RegisterClient("http://127.0.0.1:8761","myapp", "8000", "43") 9 http.HandleFunc("/hello", func(responseWriter http.ResponseWriter, request *http.Request) { 10 resp := "hello goeureka!" 11 _, _ = responseWriter.Write([]byte(resp)) 12 }) 13 // start server 14 if err := http.ListenAndServe("127.0.0.1:8000", nil); err != nil { 15 fmt.Println(err) 16 } 17 }
在gin框架中使用:
1 import ( 2 "github.com/SimonWang00/goeureka" 3 "github.com/gin-gonic/gin" 4 ) 5 6 func main() { 7 r := gin.Default() 8 r.GET("hello", func(c *gin.Context) { 9 c.String(200, "hello goeureka") 10 }) 11 goeureka.RegisterClient("http://127.0.0.1:8761","myapp", "8000", "43") 12 r.Run("127.0.0.1:8000") 13 }
7.测试
java端测试代码,内含有gateway-eureka.jar