# 安裝指南
## 依賴
我們需要服務發現,所以讓我們啟動Consul(默認),或者通過[go-plugins](https://github.com/micro/go-plugins)替換。
### Consul
```
brew install consul
consul agent -dev
```
或者
```
docker run consul
```
### Multicast DNS
我們可以使用Multicast DNS進行零依賴的服務發現
將`--registry=mdns`傳遞給任何命令,例如`micro --registry = mdns list services`
## Go Micro
Go Micro是Go開發微服務的RPC框架
### 安裝
```
go get github.com/micro/go-micro
```
### Protobuf
如果您使用代碼生成,您還需要使用protoc-gen-go
```
go get github.com/micro/protobuf/{proto,protoc-gen-go}
```
訪問[github.com/micro/go-micro](https://github.com/micro/go-micro)了解更多。
## 工具包
Micro工具包提供了訪問微服務的各種方法
### 安裝
```
go get github.com/micro/micro
```
### Docker
可用預制docker images
```
docker pull microhq/micro
```
### 嘗試CLI
運行greeter服務
```
go get github.com/micro/examples/greeter/srv && srv
```
服務清單
```
$ micro list services
consul
go.micro.srv.greeter
```
獲取服務
```
$ micro get service go.micro.srv.greeter
service go.micro.srv.greeter
version 1.0.0
Id Address Port Metadata
go.micro.srv.greeter-34c55534-368b-11e6-b732-68a86d0d36b6 192.168.1.66 62525 server=rpc,registry=consul,transport=http,broker=http
Endpoint: Say.Hello
Metadata: stream=false
Request: {
name string
}
Response: {
msg string
}
```
查詢服務
```
$ micro query go.micro.srv.greeter Say.Hello '{"name": "John"}'
{
"msg": "Hello John"
}
```