作用:基于GO語言開發(fā),用于實現(xiàn)分布式系統(tǒng)的服務(wù)發(fā)現(xiàn)與配置的等管理。
目前成都創(chuàng)新互聯(lián)已為上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計、大理州網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
特性:
開發(fā)模式的下,一般我們的都是基于客戶端的自注冊的模式進行,意思就是服務(wù)啟動的時候,把服務(wù)的信息都提交到的我們的注冊中心上。
當(dāng)我們的Consumerl消費者請求Prodcuer的是,會先從Consul獲取到存貯Producter的數(shù)據(jù)(地址IP 和端口等)的臨時表,從這個臨時表里面任選一個Producr是的IP和Port,進行服務(wù)的請求
近幾年誕生了很多微服務(wù)框架,比如JAVA的Spring Cloud、Dubbo;Golang的GoKit和GoMicro以及NodeJs的Seneca。幾乎每種主流語言都有其對應(yīng)的微服務(wù)框架。
Go在微服務(wù)框架中有其獨特的優(yōu)勢,至于優(yōu)勢在哪,自行g(shù)oogle。
1、GoKit框架
這是一個工具包的集合,可以幫助攻城獅構(gòu)建強大、可靠和可維護的微服務(wù)。提供了用于實現(xiàn)系統(tǒng)監(jiān)控和彈性模式組件的庫,例如日志、跟蹤、限流、熔斷等。
基于這個框架的應(yīng)用程序架構(gòu)由三個主要的部分組成:
傳輸層:用于網(wǎng)絡(luò)通信,服務(wù)通常使用HTTP或者gRPC等網(wǎng)絡(luò)傳輸協(xié)議,或者使用NATS等發(fā)布訂閱系統(tǒng)相互通信。
接口層:是服務(wù)器和客戶端的基本構(gòu)建塊。每個對外提供的接口方法都會定義為一個Endpoint,一遍在服務(wù)器和客戶端之間進行網(wǎng)絡(luò)通信,每個端點使用傳輸層通過HTTP或gRPC等具體通信模式對外提供服務(wù)
服務(wù)成:具體的業(yè)務(wù)邏輯實現(xiàn)
2、GoMicro框架
這是一個基于Go語言實現(xiàn)的插件化RPC微服務(wù)框架。提供了服務(wù)發(fā)現(xiàn)、負(fù)載均衡、同步傳輸、異步通信以及事件驅(qū)動等機制,嘗試簡化分布式系統(tǒng)之間的通信,讓開發(fā)者更專注于自身業(yè)務(wù)邏輯的開發(fā)。
GoMicro的設(shè)計哲學(xué)是可插拔的架構(gòu)理念,提供了可快速構(gòu)建系統(tǒng)的組件,并且可以根據(jù)自身的需求對GoMicro提供的默認(rèn)實現(xiàn)進行定制。所有插件都可在倉庫github.com/micro/go-plugins 中找到。
首先保證 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)前運行的微服務(wù)實例:
調(diào)用微服務(wù):
得到以上結(jié)果,表示 Go Micro 的相關(guān)產(chǎn)品安裝完畢!