golang微服務(wù)框架go-micro 入門筆記1.搭建 go-micro環(huán)境

微服務(wù)的本質(zhì)是讓專業(yè)的人做專業(yè)的事情,做出更好的東西畴栖。

golang具備高并發(fā)颊艳,靜態(tài)編譯等特性肾筐,在性能、安全等方面具備非常大的優(yōu)勢娇斑。go-micro是基于golang的微服務(wù)編程框架策添,go-micro操作簡單、編碼高效毫缆、功能強大唯竹。但是網(wǎng)絡(luò)上資料偏少,本系列文章定位最簡單最容易上手的go-micro入門教程,所有案列來自實操苦丁,而非網(wǎng)絡(luò)上的復(fù)制粘貼浸颓。

本章節(jié)的目的是讓大家最快速搭建好go-micro環(huán)境

軟件 環(huán)境
操作系統(tǒng) win10
golang go 12.7/AMD64
micro micro version 1.8.4
consul consul 1.5.4

安裝micro

最快速有效的方法是使用GO1.11以上版本并且設(shè)置環(huán)境變量

#linux 下
export GO111MODULE=on
export GOPROXY=https://goproxy.io
# windows下設(shè)置如下環(huán)境變量
setx GO111MODULE on
setx GOPROXY https://goproxy.io
# 使用如下指令安裝
go get -u -v github.com/micro/micro
go get -u -v github.com/micro/go-micro

如果沒有g(shù)it請自行安裝git

#下載地址
https://git-scm.com/downloads/

安裝 protoc

訪問如下網(wǎng)址

https://github.com/protocolbuffers/protobuf/releases

下載,不同的版本文件名稱不一樣,我們這里選擇protoc-3.9.1-win64.zip

protoc-3.9.1-win64.zip

解壓到目標文件架,我們以e:\dev為例

e:\dev\protoc-3.9.1-win64

添加e:\dev\protoc-3.9.1-win64\bin到環(huán)境變量path

安裝protoc-gen-micro插件

這個插件主要作用是通過.proto文件生成適用于go-micro的代碼

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

安裝 consul

下載windows版本

https://www.consul.io/downloads.html

解壓到

e:\dev\consul

添加e:\dev\consul到環(huán)境變量path
使用如下指查看是否安裝成功,如下所示安裝成功

>consul
Usage: consul [--version] [--help] <command> [<args>]
Available commands are:
    acl            Interact with Consul's ACLs
    agent          Runs a Consul agent
    catalog        Interact with the catalog
    config         Interact with Consul's Centralized Configurations
    connect        Interact with Consul Connect
    debug          Records a debugging archive for operators

hello,world

創(chuàng)建微服務(wù)

使用如下指令創(chuàng)建微服務(wù)

>micro new techidea8.com/microapp/hello
Creating service go.micro.srv.hello in E:\winlion\gopath\src\techidea8.com\microapp\hello

.
├── main.go
├── plugin.go
├── handler
│   └── hello.go
├── subscriber
│   └── hello.go
├── proto\hello
│   └── hello.proto
├── Dockerfile
├── Makefile
├── README.md
└── go.mod


download protobuf for micro:

brew install protobuf
go get -u github.com/golang/protobuf/{proto,protoc-gen-go}
go get -u github.com/micro/protoc-gen-micro

compile the proto file hello.proto:

cd E:\winlion\gopath\src\techidea8.com\microapp\hello
protoc --proto_path=.:$GOPATH/src --go_out=. --micro_out=. proto/hello/hello.proto

生成適配proto的golang代碼

注意:在win系統(tǒng)下$GOPATH環(huán)境變量無效,因此如上腳本將創(chuàng)建微服務(wù)失敗,因此我們需要對如上腳本進行處理

#切換到項目目錄下
>cd /d E:\winlion\gopath\src\techidea8.com\microapp\hello

# 根據(jù)proto生成文件
>protoc --proto_path=. --go_out=. --micro_out=. proto/hello/hello.proto

啟動應(yīng)用

>go run main.go
2019/08/19 13:00:46 Transport [http] Listening on [::]:54689
2019/08/19 13:00:46 Broker [http] Connected to [::]:54690
2019/08/19 13:00:46 Registry [mdns] Registering node: go.micro.srv.hello-4851dce2-ab5d-4e4c-801e-44dae5d93f26
2019/08/19 13:00:46 Subscribing go.micro.srv.hello-4851dce2-ab5d-4e4c-801e-44dae5d93f26 to topic: go.micro.srv.hello
2019/08/19 13:00:46 Subscribing go.micro.srv.hello-4851dce2-ab5d-4e4c-801e-44dae5d93f26 to topic: go.micro.srv.hello

查看是否啟動

>micro list services
go.micro.srv.hello
topic:go.micro.srv.hello

啟動restful api接口支持支持

注意其中的--namespace參數(shù),我們每一個微服務(wù)都屬于一個命名空間,通過api暴露出來該命名空間后,滿足go.micro.srv.*格式的微服務(wù)都可以訪問。如go.micro.srv.hello可以通過如下格式訪問

http://127.0.0.1:8080/user/call
>micro api --namespace=go.micro.srv
2019/08/19 13:07:11 Registering API Default Handler at /
2019/08/19 13:07:11 HTTP API Listening on [::]:8080
2019/08/19 13:07:11 Transport [http] Listening on [::]:54934
2019/08/19 13:07:11 Broker [http] Connected to [::]:54935
2019/08/19 13:07:11 Registry [mdns] Registering node: go.micro.api-1753185c-b8e1-49c4-aa0f-617f243a8e2a

測試

restd插件請求接口


rested接口

推薦閱讀

掃微信二維碼實現(xiàn)網(wǎng)站登陸提供體驗地址和源代碼

開源項目golang go語言后臺管理框架restgo-admin

支持手勢觸摸,可左右滑動的日歷插件

你必須知道的18個互聯(lián)網(wǎng)業(yè)務(wù)模型

推薦閱讀

掃微信二維碼實現(xiàn)網(wǎng)站登陸提供體驗地址和源代碼

開源項目golang go語言后臺管理框架restgo-admin

支持手勢觸摸,可左右滑動的日歷插件

你必須知道的18個互聯(lián)網(wǎng)業(yè)務(wù)模型

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市产上,隨后出現(xiàn)的幾起案子棵磷,更是在濱河造成了極大的恐慌,老刑警劉巖晋涣,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件泽本,死亡現(xiàn)場離奇詭異,居然都是意外死亡姻僧,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門蒲牧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撇贺,“玉大人,你說我怎么就攤上這事冰抢∷伤唬” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵挎扰,是天一觀的道長翠订。 經(jīng)常有香客問我,道長遵倦,這世上最難降的妖魔是什么尽超? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮梧躺,結(jié)果婚禮上似谁,老公的妹妹穿的比我還像新娘。我一直安慰自己掠哥,他們只是感情好巩踏,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著续搀,像睡著了一般塞琼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上禁舷,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天彪杉,我揣著相機與錄音,去河邊找鬼牵咙。 笑死在讶,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的霜大。 我是一名探鬼主播构哺,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了曙强?” 一聲冷哼從身側(cè)響起残拐,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎碟嘴,沒想到半個月后溪食,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡娜扇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年错沃,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雀瓢。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡枢析,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出刃麸,到底是詐尸還是另有隱情醒叁,我是刑警寧澤柏腻,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布椅挣,位于F島的核電站,受9級特大地震影響秩伞,放射性物質(zhì)發(fā)生泄漏吁伺。R本人自食惡果不足惜饮睬,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望篮奄。 院中可真熱鬧续捂,春花似錦、人聲如沸宦搬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽间校。三九已至矾克,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間憔足,已是汗流浹背胁附。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留滓彰,地道東北人控妻。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像揭绑,于是被迫代替她去往敵國和親弓候。 傳聞我的和親對象是個殘疾皇子郎哭,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容