教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 Golang注册Eureka的工具包goeureka发布

Golang注册Eureka的工具包goeureka发布

发布时间:2022-01-25   编辑:jiaochengji.com
教程集为您提供Golang注册Eureka的工具包goeureka发布等资源,欢迎您收藏本站,我们将为您提供最新的Golang注册Eureka的工具包goeureka发布资源

目录 

1.简介

2.原理

3.注册信息

4.功能特性

6.接入示例

7.测试


<h2 id="1.简介">1.简介</h2>

提供Go微服务客户端注册到Eureka中心。点击:github地址,欢迎各位多多star!

(已通过测试验证,用于正式生产部署)

<h2 id="2.原理">2.原理</h2>

goeureka主要是通过REST请求来与server进行通信。

其中Java版本的核心实现请参看:<code>com.netflix.discovery.DiscoveryClient</code>

<h2 id="3.注册信息">3.注册信息</h2>

注册eureka服务端的配置信息如下:

<pre><code class="language-Go">{ "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}" } } }</code></pre> <h2 id="4.功能特性">4.功能特性</h2>

本项目封装了Eureka rest操作,实现了以下功能:

<ul><li>支持服务注册</li><li>支持服务租约续期</li><li>支持自动取消注册</li><li>支持通过代理注册</li><li>支持账户登录(不登陆,将opt设置为nil即可)</li></ul>

本插件中register 、heartbeat 和deregister基本上可以实现微服务注册到Eureka中心。register方法是通过心跳与Eureka服务端保持通信,当Eureka客户端和服务端注册成功后,则每30秒钟发送一次心跳。当您的微服务实例通过Sigterm或OS中断信号退出时,则本客户端会在关闭之前注销Eureka,以确保服务实例不会发生冲突。

<h2> </h2>

5.使用方法

工具包的导入方法:

<pre><code class="language-Go">import "github.com/SimonWang00/goeureka"</code></pre>

如果您默认使用本地启动的Eureka Server,注册代码如下:

<pre><code class="language-Go">opt := make(map[string]string) opt["username"] = "admin" opt["password"] = "admin123" // 加载配置 goeureka.RegisterClient("http://127.0.0.1:8028","", "golang-server-test", strconv.Itoa(8888), strconv.Itoa(43), opt)</code></pre> <blockquote>

Notes:  

<blockquote>

Notes: RegisterClient 为web server对应的端口号,涉及到异地机房联调采用docker部署的话,需要映射公网IP(添加注册代理),如59.172.3.26, 无需添加代理的话为""即可。

</blockquote> </blockquote>

或者

<pre><code class="language-Go">goeureka.RegisterClient("http://127.0.0.1:8761","","my-goserver", "8000", "43",nil) </code></pre> <blockquote>

 Notes:

<ul><li>第二项参数为空代表默认使用本机IP地址;</li><li>nil代表opt不需要登录账户和密码注册;</li></ul></blockquote>

 

<h2 id="6.例子">6.接入示例</h2>

在http中使用:

<pre><code class="language-Go">import (   "fmt"   "github.com/SimonWang00/goeureka"   "net/http"  )  ​ func main() { opt := make(map[string]string) opt["username"] = "admin" opt["password"] = "admin123" goeureka.RegisterClient("http://127.0.0.1:8761","","myapp", "8000", "43",opt) 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) } }</code></pre>

在gin框架中使用:

<pre><code class="language-Go"> 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") }) opt := make(map[string]string) opt["username"] = "admin" opt["password"] = "admin123" goeureka.RegisterClient("http://127.0.0.1:8761","","myapp", "8000", "43",opt) r.Run("127.0.0.1:8000") }</code></pre> <h2 id="7.测试">7.测试</h2>

通过了测试,已经用于golang的微服务生产环境。

java端测试代码,内涵gateway-eureka.jar

eurekaconsumer

到此这篇关于“Golang注册Eureka的工具包goeureka发布”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
Golang注册Eureka的工具包goeureka发布
Go语言微服务开发框架实践-go chassis(中篇)
golang微服务框架对比_微服务全流程各组件详细对比分析
php工具箱是直接做网站的吗
golang微服务框架对比_测试微服务:工具和框架
为什么要学 Go
初学php用什么开发工具?
Go 语言学习第一章节
学习golang开始前的准备工作
支持多语言的微服务框架Tars-Go

[关闭]
~ ~