Giter Club home page Giter Club logo

goeureka's Introduction

goeureka

imageimageimage

提供Go微服务客户端注册到Eureka中心。(通过测试验证,已用于生产)

功能特性

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

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

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

使用方法

工具包的导入方法:

import "github.com/SimonWang00/goeureka"

注册代码如下:

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)

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

或者

goeureka.RegisterClient("http://127.0.0.1:8761","","my-goserver", "8000", "43",nil)

Notes:

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

使用示例

在http中使用:

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)
	}
}

在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")
    })
    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")
}

Test

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

java端测试代码

eurekaconsumer

goeureka's People

Contributors

simonwang00 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

goeureka's Issues

终止进程时,注册下线失败

Url: discoveryServerUrl + eurekaPath + appName + "/" + instanceId + "/status?value=UP&lastDirtyTimestamp=" + lastDirtyTimestamp,

kill进程后,会触发钩子函数,但未在eureka中下线。去掉接口中的value=UP参数则可以立即下线。

不正常的仓库空间

也没多少代码吧,怎么占了 41 M 这么大。。。

$ find -type d -exec du -sh {} \;
41M	.
12K	./gotest
41M	./.git
28K	./.git/refs
12K	./.git/refs/remotes
8.0K	./.git/refs/remotes/origin
8.0K	./.git/refs/heads
4.0K	./.git/refs/tags
8.0K	./.git/info
4.0K	./.git/branches
32K	./.git/logs
24K	./.git/logs/refs
12K	./.git/logs/refs/remotes
8.0K	./.git/logs/refs/remotes/origin
8.0K	./.git/logs/refs/heads
64K	./.git/hooks
41M	./.git/objects
4.0K	./.git/objects/info
41M	./.git/objects/pack
60K	./assets

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.