Go-Micro微服務入門(一):環境搭建

from:https://www.toutiao.com/a6752699652321051147/

所依賴軟件

Go-Micro微服務入門(一):環境搭建

各個軟件及版本

PS:下文中所有軟件安裝均基於Linux系統。

安裝GO(golang)

下載go安裝包:

wget https://studygolang.com/dl/golang/go1.13.3.linux-amd64.tar.gz

解壓安裝包到/usr/local目錄:

tar -C /usr/local -zxvf go1.13.3.linux-amd64.tar.gz

配置環境變量:

vim /etc/profile
#新增以下內容
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
export GOPATH=$HOME/go
export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct

保存之後,執行:

source /etc/profile

驗證go是否安裝成功:

go version

看到輸出類似下列內容即可:

go version go1.13.3 linux/amd64

安裝micro

在任意目錄執行:

go get github.com/micro/micro

驗證micro是否安裝成功:

micro --version

看到輸出類似下列內容即可:

micro version 1.13.1

安裝protobuf

下載protobuf安裝包:

wget https://github.com/protocolbuffers/protobuf/releases/download/v3.10.0/protoc-3.10.0-linux-x86_64.zip

解壓安裝包到/usr/local目錄:

unzip -d /usr/local/protoc protoc-3.10.0-linux-x86_64.zip

配置環境變量:

vim /etc/profile
#新增以下內容
export PATH=$PATH:/usr/local/protoc/bin

驗證是否安裝成功:

protoc --version

看到輸出類似下列內容即可:

libprotoc 3.10.0

安裝protoc-gen-go

在任意目錄執行:

go get -u github.com/golang/protobuf/protoc-gen-go

安裝ETCD

下載etcd安裝包:

wget https://github.com/etcd-io/etcd/releases/download/v3.4.2/etcd-v3.4.2-linux-amd64.tar.gz

解壓並將etcd和etcdctl兩個二進制文件拷貝到/usr/local/bin 目錄:

#解壓安裝包至/tmp目錄
tar -C /tmp -zxvf etcd-v3.4.2-linux-amd64.tar.gz
#拷貝etcd和etcdctl至/usr/local/bin目錄
cp /tmp/etcd-v3.4.2-linux-amd64/{etcd,etcdctl} /usr/local/bin
#驗證etcd是否安裝成功:
etcd --version

配置ETCD集羣

關於etcd集羣配置,共有三種形式:靜態啓動、etcd服務發現、dns服務發現。

該系列教程重點在於go-micro的使用,所以etcd的集羣配置不會詳細講解,本文采用相對便捷的etcd服務發現形式來配置集羣。對於其他兩種集羣形式讀者可自行查閱資料去實踐一下。

etcd集羣推薦採用奇數個節點,此處我們使用三個節點組成一個etcd集羣:

PS:因爲筆者是在本地電腦上演示,所以使用同一個ip不同端口來模擬三臺不同的機器。

Go-Micro微服務入門(一):環境搭建

模擬3個etcd節點

etcd啓動會監聽本地的兩個端口,一個用於客戶端交互,一個用戶集羣內部交互。

etcd常用配置項說明:

Go-Micro微服務入門(一):環境搭建

etcd常用配置項說明

準備工作:

  1. 訪問etcd公共發現服務:https://discovery.etcd.io/new?size=3 (size=3,表示創建的集羣由3個節點組成)。
  2. 得到一個url:https://discovery.etcd.io/8692168162049f92ac053ade822284ff 該url將在下列配置中使用(該url只是在建立集羣的時候使用,集羣建立之後就沒什麼作用了。此外,該URL有個有效時間,過期會失效,下次需要用的時候,再次訪問https://discovery.etcd.io/new生成即可)。

使用下列命令分別啓動3個etcd節點:

啓動節點1:

etcd --name etcd1 \
--data-dir /tmp/etcd1 \
--initial-advertise-peer-urls http://192.168.49.234:2380 \
--listen-peer-urls http://192.168.49.234:2380 \
--listen-client-urls http://192.168.49.234:2379,http://127.0.0.1:2379 \
--advertise-client-urls http://192.168.49.234:2379 \
--discovery https://discovery.etcd.io/8692168162049f92ac053ade822284ff

啓動節點2:

etcd --name etcd2 \
--data-dir /tmp/etcd2 \
--initial-advertise-peer-urls http://192.168.49.234:2480 \
--listen-peer-urls http://192.168.49.234:2480 \
--listen-client-urls http://192.168.49.234:2479,http://127.0.0.1:2479 \
--advertise-client-urls http://192.168.49.234:2479 \
--discovery https://discovery.etcd.io/8692168162049f92ac053ade822284ff

啓動節點3:

etcd --name etcd3 \
--data-dir /tmp/etcd3 \
--initial-advertise-peer-urls http://192.168.49.234:2580 \
--listen-peer-urls http://192.168.49.234:2580 \
--listen-client-urls http://192.168.49.234:2579,http://127.0.0.1:2579 \
--advertise-client-urls http://192.168.49.234:2579 \
--discovery https://discovery.etcd.io/8692168162049f92ac053ade822284ff

以上命令都執行成功之後,我們需要驗證集羣狀態,確保集羣組建成功:

#查看集羣成員
etcdctl member list
#查看集羣狀態
etcdctl --endpoints=http://192.168.49.234:2479,http://192.168.49.234:2379,http://192.168.49.234:2579 endpoint status
#查看集羣健康情況
etcdctl --endpoints=http://192.168.49.234:2479,http://192.168.49.234:2379,http://192.168.49.234:2579 endpoint health
服務。
發佈了101 篇原創文章 · 獲贊 51 · 訪問量 68萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章