Golang註冊Eureka的工具包goeureka發佈

1.簡介

提供Go微服務客戶端註冊到Eureka中心。點擊:github地址,歡迎各位多多star!

(已通過測試驗證,用於正式生產部署)

2.原理

goeureka主要是通過REST請求來與server進行通信。

其中Java版本的核心實現請參看:com.netflix.discovery.DiscoveryClient

實現過程
Golang註冊Eureka的工具包goeureka發佈

3.註冊信息

註冊eureka服務端的配置信息如下:


{
  "instance": {
    "instanceId" : "${ipAddress}:${appName}:${port}",
    "hostName":"${ipAddress}",
    "app":"${appName}",
    "ipAddr":"${ipAddress}",
    "vipAddress":"${appName}",
    "overriddenstatus": "UNKNOWN",
    "status":"UP",
    "port": {
      "$":${port},
      "@enabled": true
    },
    "securePort": {
      "$":${securePort},
      "@enabled": false
    },
    "homePageUrl" : "http://${ipAddress}:${port}/",
    "statusPageUrl": "http://${ipAddress}:${port}/info",
    "healthCheckUrl": "http://${ipAddress}:${port}/health",
    "dataCenterInfo" : {
      "@class":"com.netflix.appinfo.InstanceInfo$DefaultDataCenterInfo",
      "name": "MyOwn"
    },
    "metadata": {
      "management.port" : "${port}"
    }
  }
}

4.功能特性

本項目封裝了Eureka rest操作,實現了以下功能:

  1. register
  2. sendheartbeat
  3. deregister
  4. instances

調用前三個特性register 、heartbeat 和deregister基本上可以實現微服務註冊到Eureka中心,其中appid實例是客戶端的名稱。

5.使用方法

工具包的導入方法:

import "github.com/SimonWang00/goeureka"
如果您默認使用本地啓動的Eureka Server,註冊代碼如下:


goeureka.RegisterClient("http://127.0.0.1:8761","my-goserver", "8000", "43")
Notes: RegisterClient 爲web server對應的端口

6.接入示例

在http中使用:

import (
     "fmt"
     "github.com/SimonWang00/goeureka"
     "net/http"
 )
 ​
 func main()  {
     goeureka.RegisterClient("http://127.0.0.1:8761","myapp", "8000", "43")
     http.HandleFunc("/hello", func(responseWriter http.ResponseWriter, request *http.Request) {
         resp := "hello goeureka!"
         _, _ = responseWriter.Write([]byte(resp))
     })
     // start server
     if err := http.ListenAndServe("127.0.0.1:8000", nil); err != nil {
         fmt.Println(err)
     }
 }

在gin框架中使用:

 import (
     "github.com/SimonWang00/goeureka"
     "github.com/gin-gonic/gin"
 )
 ​
 func main()  {
     r := gin.Default()
     r.GET("hello", func(c *gin.Context) {
         c.String(200, "hello goeureka")
     })
     goeureka.RegisterClient("http://127.0.0.1:8761","myapp", "8000", "43")
     r.Run("127.0.0.1:8000")
 }

7.測試

java端測試代碼,內含有gateway-eureka.jar

eurekaconsumer

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章