go-micro v2運開實踐-框架篇(1)初始化專案安裝micro

huangyanming發表於2022-04-25

初始化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。

Windows安裝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 協議》,轉載必須註明作者和本文連結

相關文章