• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

go-micro+consul+gin

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

安装(前提是本地已安装protobuf和protof的go扩展)

go get github.com/micro/micro

go get github.com/micro/go-micro

go get github.com/micro/protoc-gen-micro

go get github.com/micro/go-plugins/registry/consul

支持consul需要单独安装这个包

go get github.com/micro/go-plugins/registry/consul

micro生成新项目

micro new --gopath=false --type=srv micpro

进入到 proto文件的同级目录,然后执行以下命令生成go文件

protoc  --micro_out=. --go_out=. *.proto

package main

import (
	"github.com/micro/go-micro"
	"github.com/micro/go-micro/util/log"
	"github.com/micro/go-plugins/registry/consul"
	"micpro/handler"
	micpro "micpro/proto/micpro"
)

func main() {

	consulRegis := consul.NewRegistry()

	// New Service
	service := micro.NewService(
		micro.Name("go.micro.srv.micpro"),
		micro.Version("latest"),
		micro.Registry(consulRegis),
		micro.Address("127.0.0.1:10345"),
	)

	// Initialise service
	service.Init()

	// Register Handler
	micpro.RegisterMicproHandler(service.Server(), new(handler.Micpro))

	// Run service
	if err := service.Run(); err != nil {
		log.Fatal(err)
	}
}

  

将micro框架proto目录下的文件拷贝到gin目录下,然后在main.go中使用consul

package main

import (
	context2 "context"
	"fmt"
	micpro "gintemp/proto/micpro"
	"github.com/gin-gonic/gin"
	"github.com/micro/go-micro"
	"github.com/micro/go-micro/client"
	"github.com/micro/go-plugins/registry/consul"
	"time"
)

func microCall(context *gin.Context){

	reg := consul.NewRegistry()
	service := micro.NewService(micro.Registry(reg))
	micServ := micpro.NewMicproService("go.micro.srv.micpro",service.Client())
	res,err := micServ.Call(context2.TODO(),&micpro.Request{Name:"mayuan"},func(o *client.CallOptions) {
		o.RequestTimeout = time.Second * 30
		o.DialTimeout = time.Second * 30
	})
	if err != nil{
		fmt.Println(err)
	}
	context.Writer.WriteString(res.Msg)
}


func main() {
	route := gin.Default()
	route.GET("/", microCall)
	route.Run(":8080")
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap