go-micro基于微服務(wù)庫的可插拔 RPC
Go-Micro 是一個(gè)基于微服務(wù)庫的可插拔 RPC,為編寫分布式應(yīng)用程序提供基本構(gòu)件。它是 Micro 工具包的一部分,支持 Proto-RPC 和 JSON-RPC 的請(qǐng)求/響應(yīng)協(xié)議,默認(rèn)設(shè)置 Consul 為探索。
示例服務(wù)可以在 examples/service 找到。
特征
| 特征 | 包 | 內(nèi)置插件 | 描述 |
| Discovery | Registry | consul | 用來溝通的一種定位服務(wù)方式 |
| Client | Client | rpc | 用來將RPC請(qǐng)求變成服務(wù) |
| Codec | Codec | proto,json | 對(duì)請(qǐng)求進(jìn)行編碼/解碼處理 |
| Balancer | Selector | random | 服務(wù)節(jié)點(diǎn)過濾和池 |
| Server | Server | rpc | 監(jiān)聽和服務(wù)器的RPC請(qǐng)求 |
| Pub/Sub | Broker | http | 發(fā)布和訂閱事件 |
| Transport | Transport | http | 服務(wù)之間的通信機(jī)制 |
示例服務(wù)
| 項(xiàng)目 | 描述 |
| greeter | greeter 服務(wù)(包括 Go、Ruby、Python ) |
| geo-srv | 使用 hailocab/go-geoindex 進(jìn)行地理位置跟蹤服務(wù) |
| geo-api | 為地理位置跟蹤和搜索提供的 HTTP API 處理程序 |
| geocode-srv | 使用 Google Geocoding API 提供地理編碼服務(wù) |
| hailo-srv | 一種用于hailo出租車服務(wù)開發(fā)者的api服務(wù) |
| place-srv | 存儲(chǔ)和檢索地點(diǎn)的微服務(wù) |
| slack-srv | 將Slack機(jī)器人的API當(dāng)成一個(gè)go-micro 的RPC服務(wù) |
| twitter-srv | 一種用于Twitter的API微服務(wù) |
| user-srv | 一種為用戶管理和認(rèn)證提供的微服務(wù) |
入門
這是一個(gè)以 greeter 服務(wù)為例的快速入門指南。
必備條件
我們需要一個(gè)服務(wù)發(fā)現(xiàn)機(jī)制來解決服務(wù)的名稱到地址的映射,默認(rèn)設(shè)置Consul為探索。Discovery是可插拔的,你可以使用 kubernetes, zookeeper 等。我們的實(shí)踐可以在 go-plugins 上找到。
安裝Consul
https://www.consul.io/intro/getting-started/install.html
運(yùn)行Consul
$ consul agent -dev -advertise=127.0.0.1
運(yùn)行服務(wù)
$ go run examples/service/main.go 2016/03/14 10:59:14 Listening on [::]:50137 2016/03/14 10:59:14 Broker Listening on [::]:50138 2016/03/14 10:59:14 Registering node: greeter-ca62b017-e9d3-11e5-9bbb-68a86d0d36b6
測試服務(wù)
$ go run examples/service/main.go --client Hello John
評(píng)論
圖片
表情
