gf/contrib/registry/nacos
2024-07-24 19:27:28 +08:00
..
go.mod build: bump google.golang.org/protobuf to v1.33.0 (#3697) 2024-07-24 19:27:28 +08:00
go.sum build: bump google.golang.org/protobuf to v1.33.0 (#3697) 2024-07-24 19:27:28 +08:00
nacos_discovery.go add service registry implements using nacos (#2995) 2023-10-12 21:06:37 +08:00
nacos_register.go add service registry implements using nacos (#2995) 2023-10-12 21:06:37 +08:00
nacos_service.go add service registry implements using nacos (#2995) 2023-10-12 21:06:37 +08:00
nacos_watcher.go fix issue #3100 (#3106) 2023-10-30 20:27:48 +08:00
nacos_z_test.go fix issue #3100 (#3106) 2023-10-30 20:27:48 +08:00
nacos.go add service registry implements using nacos (#2995) 2023-10-12 21:06:37 +08:00
README.MD feat: add metric feature support in goframe (#3138) 2024-03-24 21:18:30 +08:00

GoFrame Nacos Registry

Use nacos as service registration and discovery management.

Installation

go get -u -v github.com/gogf/gf/contrib/registry/nacos/v2

suggested using go.mod:

require github.com/gogf/gf/contrib/registry/nacos/v2 latest

Example

Reference example

server

package main

import (
	"github.com/gogf/gf/contrib/registry/nacos/v2"
	"github.com/gogf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/net/ghttp"
	"github.com/gogf/gf/v2/net/gsvc"
)

func main() {
	gsvc.SetRegistry(nacos.New(`127.0.0.1:8848`).
        SetClusterName("DEFAULT").
        SetGroupName("DEFAULT_GROUP"))

	s := g.Server(`hello.svc`)
	s.BindHandler("/", func(r *ghttp.Request) {
		g.Log().Info(r.Context(), `request received`)
		r.Response.Write(`Hello world`)
	})
	s.Run()
}

client

package main

import (
	"fmt"
	"time"

	"github.com/gogf/gf/contrib/registry/nacos/v2"
	"github.com/gogf/gf/v2/frame/g"
	"github.com/gogf/gf/v2/net/gsel"
	"github.com/gogf/gf/v2/net/gsvc"
	"github.com/gogf/gf/v2/os/gctx"
)

func main() {
	gsvc.SetRegistry(nacos.New(`127.0.0.1:8848`))
	gsel.SetBuilder(gsel.NewBuilderRoundRobin())

	client := g.Client()
	for i := 0; i < 100; i++ {
		res, err := client.Get(gctx.New(), `http://hello.svc/`)
		if err != nil {
			panic(err)
		}
		fmt.Println(res.ReadAllString())
		res.Close()
		time.Sleep(time.Second)
	}
}

License

GoFrame Nacos is licensed under the MIT License, 100% free and open-source, forever.