初始化git專案
進入工作目錄,按照go規範,我們定義一個工作目錄應,這是我在windows環境中的定義的路徑D:\go\src\github.com\869413421
,在工作磁碟下的go/src中建立,後續加上倉庫型別如github.com,gitee等,最後加上該站點賬號。
建立專案資料夾
mkdir micro-service
關聯github倉庫
cd micro-service
git init
git remote add origin https://github.com/869413421/micro-service.git
git pull origin main
安裝micro
在安裝前,我們首先明確瞭解go-micro和micro具體是什麼東西。避免後續因為這兩項有關聯的技術產生一些混淆。
- go-micro:一款微服務開發框架,它是所有開發的核心,開發者可以利用它編碼快速開發出服務。
- micro:一個基於go-micro實現的微服務命令列工具包,它對於微服務開發是非必要的。但是能給開發提供很多便利,例如生成模板專案,提供web儀表盤,提供API閘道器,檢視服務狀態,呼叫服務等等。
拉取micro映象
docker pull micro/micro:v2.9.3
生成micro生成專案模板
windows
在windows下執行命令要使用CMD執行
docker run --rm -v D:\go\src\github.com\869413421\micro-service:/www -w /www micro/micro:v2.9.3 new --namespace=micro --type=service user
linux
docker run --rm -v $(pwd):/www -w /www micro/micro:v2.9.3 new --namespace=micro --type=service user
安裝protobuf
在執行生成模板命令後,我們可以等如下提示
Creating service micro.service.user in user
.
├── main.go
├── generate.go
├── plugin.go
├── handler
│ └── user.go
├── subscriber
│ └── user.go
├── proto
│ └── user
│ └── user.proto
├── Dockerfile
├── Makefile
├── README.md
├── .gitignore
└── go.mod
download protoc zip packages (protoc-$VERSION-$PLATFORM.zip) and install:
visit https://github.com/protocolbuffers/protobuf/releases
download protobuf for micro:
go get -u github.com/golang/protobuf/proto
go get -u github.com/golang/protobuf/protoc-gen-go
go get github.com/micro/micro/v2/cmd/protoc-gen-micro
compile the proto file user.proto:
cd user
make proto
上圖中我們可以得知,我們首先需要安裝protoc
提示中已經有連結,下載好後設定好環境變數,執行命令protoc --version
,如果不知道如何安裝,可以去網上搜尋相關文章,這裡不多贅述了。
安裝專案依賴相關包
go get -u github.com/golang/protobuf/proto
go get -u github.com/golang/protobuf/protoc-gen-go
go get github.com/micro/micro/v2/cmd/protoc-gen-micro
調整專案結構,生成protobuf程式碼
Windows中沒有make,但是可以透過安裝MinGW或者MinGW-w64,得到make。
cd user
修改proto/user/user.proto
檔案
加上option go_package = "proto/user";
指定編譯的包路徑
執行make proto
,執行成功後可以看到protoc
為我們生成的程式碼
修改go.mod
檔案
module github.com/{your_name}/micro-service/user
將賬戶替換你的github賬號,方便後續管理
執行go mod tidy
下載生成生成程式碼依賴的包
看到相關包不再飄紅,至此編寫程式碼的初始化工作已經完成,後續中我們需要透過docker-compose
安裝微服務所需要的基礎設施。
本作品採用《CC 協議》,轉載必須註明作者和本文連結