一,原因:
目前創(chuàng)新互聯(lián)已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、循化網(wǎng)站維護(hù)等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
學(xué)習(xí)研究go-micro已經(jīng)有兩三天了,在這里做個總結(jié),有2點(diǎn)原因,第1點(diǎn)方便以后如果有一段時間沒有用過micro導(dǎo)致幾乎都忘了,那么這篇文章方便自己在很短的時間內(nèi)重朔對micro的知識體系,第2個原因也算給自己一個交代,比較花了時間去研究了。接下來會從go-micro庫,和micro工具兩方面。
二,go-micro
介紹:go-micro可以理解為一個可以很快創(chuàng)建微服務(wù)器的第三方庫,從可提供功能上分一下幾點(diǎn):
1,可提供開發(fā)服務(wù)端:這個服務(wù)端只能通過其他微服務(wù)通過rpc方式調(diào)用。當(dāng)你看到用protoc工具生成的.micro.go文件的時候你會發(fā)現(xiàn),主要包含2部分,第1部分接口是給調(diào)用方提供的,定義了作為客戶端如何調(diào)用服務(wù)端。第2部分接口是服務(wù)端接口。通過實現(xiàn)接口,就可以實現(xiàn)服務(wù)端功能。大體上做server的流程如下。
1.1創(chuàng)建一個service實例(相當(dāng)與micro整體對外的接口)。Micro.NewService
1.2初始化service實例。Service.init()
1.3實踐自己的Handler邏輯。
1.4將自己實現(xiàn)的Handler和service綁定注冊。
1.5 service運(yùn)行。 ?service.run.
2,可提供開發(fā)web服務(wù)端:用micro做web服務(wù)端的優(yōu)勢在于可以在這個web服務(wù)端內(nèi)部實現(xiàn)client接口,進(jìn)而通過rpc方式調(diào)用其他用micro搭建的微服務(wù)。大體上創(chuàng)建的流程如下。
2.1創(chuàng)建一個webservice實例(可設(shè)置靜態(tài)文件路由).
2.2初始化service
2.3注冊自己的handler函數(shù)。
2.4 service啟動運(yùn)行。
3,可提供開發(fā)網(wǎng)關(guān)api: 其實就是對后面多個服務(wù)端起到一個聚合的作用,因為micro工具中網(wǎng)關(guān)就是基于go-micro開發(fā)的,初步看了一下micro中網(wǎng)關(guān)的源碼大體設(shè)計流程如下。
第二部分micro工具
1,做api使用:上面也有介紹這個api工具就是基于go-micro寫的,啟動需要注意兩個比較主要的參數(shù),--namespace、 --handler.一個是命名空間,一個是api,rpc,event中那種方式。
2,做cli控制臺使用:這個比較常用,主要提供一下功能。
2.1代替另一個微服務(wù)中的client端,調(diào)用call方法測試自己微服務(wù)。
2.2檢查自己的微服務(wù)狀態(tài),例如服務(wù)列表,服務(wù)是否?;睢?/p>
2.3可以把指定的微服務(wù)注冊/撤銷到另一個服務(wù)發(fā)現(xiàn)中。
3,做web UI使用:我的理解就是一個web界面的控制臺。
4,proxy代理使用:不同的局域網(wǎng)是不能訪問的,即使是各種局域網(wǎng)中的電腦能夠訪問外網(wǎng)。因為中間有所謂的nat技術(shù)。感覺這個proxy就是nat穿透技術(shù)的一種。
度娘給出的一個完整答案,總結(jié)的很全面
Java系微服務(wù)框架
· Spring Boot/ Netflix OSS/Spring Cloud
· Dubbo
· Dropwizard
· Akka
· Vert.x/ Lagom/ ReactiveX/Spring 5
· 除了以上介紹的這些主流微服務(wù)框架外,還有Grizzly、KumuluzEE、ConductR、Ninja、Jodd、Restlet、RESTEasy、Payara Micro、Redkale、RestExpress、restx、JessMA、eventuate、Rapidoid、Ratpack、Javalite、JHipster及Bootique.io等
.Net系微服務(wù)框架
· Service Fabric
· Surging
· Steeltoe OSS
· Microdot Framework
· .NET China Foundation
· 除以上框架,還有Xigadee、Apworks framework、Cronus、NancyFx、GRPC等相關(guān)框架和項目
Node.js微服務(wù)框架
· Seneca
· Hapi/ restify/ LoopBack
Go微服務(wù)框架
· Go-Kit
· Goa
· Dubbogo
· 除了上面3種基于Go語言的微服務(wù)框架,還有Micro、Gizmo等
Python微服務(wù)框架
· Nameko, Python的微服務(wù)框架非常少,暫時就列出一個框架
通過beego快速創(chuàng)建一個Restful風(fēng)格API項目及API文檔自動化:
Go 語言構(gòu)建 RESTful Web 服務(wù):
Golang中使用 JWT認(rèn)證來 保障Restful JSON API的安全(英文):
polaris: 一個用go實現(xiàn)的支持restful的web框架:
關(guān)于RESTFUL API 安全認(rèn)證方式的一些總結(jié):
有沒有人用golang實現(xiàn)過restful框架的實例:
Micro 一個用Go語言實現(xiàn)的微服務(wù)框架:
基于微服務(wù)庫的可插拔RPC go-micro:
golang適合做web開發(fā)嗎?:
a-survey-of-5-go-web-frameworks:
Ozzo Framework:
avelino/awesome-go:
Beego Framework:
golang其實不適合做web開發(fā):
Go語言現(xiàn)有Web開發(fā)框架:
使用Golang快速構(gòu)建WEB應(yīng)用:
Martini 極好的 Go WEB 框架:
golang 有哪些比較穩(wěn)定的 web 開發(fā)框架?:
首先保證 Git 和 Go 已經(jīng)安裝成功??梢詤⒖?
其次配置好 GOPATH 環(huán)境變量。
Go Micro 是基于 Go 語言用于開發(fā)的微服務(wù)的 RPC 框架,它是 Micro 的基礎(chǔ),執(zhí)行下面當(dāng)命令安裝:
核心是 gogetgithub.com/micro/go-micro,但一些包需預(yù)先安裝好(由于網(wǎng)絡(luò)或映射原因)。
Protocol Buffers (a.k.a., protobuf) 是 Google 的數(shù)據(jù)交換格式。 在 下載安裝源碼,編譯安裝。本文選擇的 cpp 的版本:
還需要安裝 Go 對 Protobuf 的支持,和 Protobuf 代碼生成器:
Micro 用于提供構(gòu)建微服務(wù)的關(guān)鍵元素集合。
時間會比較久。
至此一個基本的 Go Micro 環(huán)境就安裝完畢。
官方網(wǎng)站給了一個測試用例,我們先體驗一下:
先安裝官方測試案例 srv:
安裝完成后,會在 $GOPATH/bin 下生成 srv 執(zhí)行文件,啟動他。本文已經(jīng)將 $GOPATH/bin 設(shè)置到環(huán)境變量 path 中。
通過命令查看當(dāng)前運(yùn)行的微服務(wù)實例:
調(diào)用微服務(wù):
得到以上結(jié)果,表示 Go Micro 的相關(guān)產(chǎn)品安裝完畢!