一,原因:
學(xué)習(xí)研究go-micro已經(jīng)有兩三天了,在這里做個(gè)總結(jié),有2點(diǎn)原因,第1點(diǎn)方便以后如果有一段時(shí)間沒有用過micro導(dǎo)致幾乎都忘了,那么這篇文章方便自己在很短的時(shí)間內(nèi)重朔對(duì)micro的知識(shí)體系,第2個(gè)原因也算給自己一個(gè)交代,比較花了時(shí)間去研究了。接下來會(huì)從go-micro庫,和micro工具兩方面。
二,go-micro
介紹:go-micro可以理解為一個(gè)可以很快創(chuàng)建微服務(wù)器的第三方庫,從可提供功能上分一下幾點(diǎn):
1,可提供開發(fā)服務(wù)端:這個(gè)服務(wù)端只能通過其他微服務(wù)通過rpc方式調(diào)用。當(dāng)你看到用protoc工具生成的.micro.go文件的時(shí)候你會(huì)發(fā)現(xiàn),主要包含2部分,第1部分接口是給調(diào)用方提供的,定義了作為客戶端如何調(diào)用服務(wù)端。第2部分接口是服務(wù)端接口。通過實(shí)現(xiàn)接口,就可以實(shí)現(xiàn)服務(wù)端功能。大體上做server的流程如下。
1.1創(chuàng)建一個(gè)service實(shí)例(相當(dāng)與micro整體對(duì)外的接口)。Micro.NewService
1.2初始化service實(shí)例。Service.init()
1.3實(shí)踐自己的Handler邏輯。
1.4將自己實(shí)現(xiàn)的Handler和service綁定注冊(cè)。
1.5 service運(yùn)行。 ?service.run.
2,可提供開發(fā)web服務(wù)端:用micro做web服務(wù)端的優(yōu)勢在于可以在這個(gè)web服務(wù)端內(nèi)部實(shí)現(xiàn)client接口,進(jìn)而通過rpc方式調(diào)用其他用micro搭建的微服務(wù)。大體上創(chuàng)建的流程如下。
2.1創(chuàng)建一個(gè)webservice實(shí)例(可設(shè)置靜態(tài)文件路由).
2.2初始化service
2.3注冊(cè)自己的handler函數(shù)。
2.4 service啟動(dòng)運(yùn)行。
3,可提供開發(fā)網(wǎng)關(guān)api: 其實(shí)就是對(duì)后面多個(gè)服務(wù)端起到一個(gè)聚合的作用,因?yàn)閙icro工具中網(wǎng)關(guān)就是基于go-micro開發(fā)的,初步看了一下micro中網(wǎng)關(guān)的源碼大體設(shè)計(jì)流程如下。

第二部分micro工具
1,做api使用:上面也有介紹這個(gè)api工具就是基于go-micro寫的,啟動(dòng)需要注意兩個(gè)比較主要的參數(shù),--namespace、 --handler.一個(gè)是命名空間,一個(gè)是api,rpc,event中那種方式。
2,做cli控制臺(tái)使用:這個(gè)比較常用,主要提供一下功能。
2.1代替另一個(gè)微服務(wù)中的client端,調(diào)用call方法測試自己微服務(wù)。
2.2檢查自己的微服務(wù)狀態(tài),例如服務(wù)列表,服務(wù)是否?;?。
2.3可以把指定的微服務(wù)注冊(cè)/撤銷到另一個(gè)服務(wù)發(fā)現(xiàn)中。
3,做web UI使用:我的理解就是一個(gè)web界面的控制臺(tái)。
4,proxy代理使用:不同的局域網(wǎng)是不能訪問的,即使是各種局域網(wǎng)中的電腦能夠訪問外網(wǎng)。因?yàn)橹虚g有所謂的nat技術(shù)。感覺這個(gè)proxy就是nat穿透技術(shù)的一種。