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/chromedp@v0.1.0" #單獨更新指定依賴包,@后面加上你需要的版本號
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