[golang] go micro 微服务部署

1、安装Service Discovery
    默认情况请安装consul(下载地址:https://www.consul.io/downloads.html),下载对应的系统下的文件,将可执行文件放入GOPATH下面的bin目录下
2、安装Protobuf
    安装protoc (下载地址:https://github.com/protocolbuffers/protobuf/releases),下载对应的系统下的文件,将可执行文件放入GOPATH下面的bin目录下

安装好上面的的两个micro依赖后,将依赖执行文件放入环境变量中(可以将其放入go的环境变量中,go环境本身需已经加入了环境变量)

3、下载go-micro支持插件
    由于golang.org/x/net被墙了,所以需要设置代理访问
    go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
    go get -u github.com/micro/protoc-gen-micro
    https_proxy=192.168.3.5:1080 go get -u github.com/micro/micro  #代理地址修改为:https://goproxy.io

4、编辑器所在环境的gopath目录下的./pkg/mod/下面需要包含引用的包,不然编辑器编辑的时候将无法引用到包(不能提示对应信息-标红【goland】)

5、编辑proto格式文件  |  protobuf  代替json
    1、syntax = "proto3"; //指定格式
    2、package 服务包名 【对应服务名称】
    3、service 对应数据结构名称
    4、message 消息体(请求响应的数据格式)
    5、protoc --micro_out=. --go_out=plugins=micro:. address_hh.proto  【micro_out后面跟的是.micro.go文件存放地址 . 标识当前目录,go_out同理,最后带上要转化的proto文件的路径 plugins表示使用指定的插件来执行】

6、golang(1.11以上) modules的使用    更新vendor包插件
    1、go mod init [module name]        #初始化modules
    2、go mod tidy            #自动更新依赖关系,并且将包下载放入cache
    3、go build(run) -mod=vendor [project]            #忽略cache里的包,只使用vendor目录里的版
    4、go mod edit -require="github.com/chromedp/[email protected]"            #单独更新指定依赖包,@后面加上你需要的版本号

7、mysql使用的GORM插件,执行语句打印可设置如下
    1、通用设置全部打印,在初始化db的时候添加
        db.LogMode(true)
    2、在要打印的语句前添加打印设定
        db.Debug().Where("name = ?", "jinzhu").First(&User{})

8、微服务框架使用micro框架




go micro 框架

./micro -registry=mdns web

./address -registry=mdns

猜你喜欢

转载自www.cnblogs.com/hhao321/p/11429198.html