# Micro SideCar
SideCar
提供了一个
集成应用程序到微型
生态系统
的HTTP接口
。
它类似于
Netflix
称为Prana
的SideCar。
**
特性
**
*
登记
发现系统
*
主机
的
其他
服务发现
*
健康检查服务
*
HTTP API
和负载平衡
要求
*
通过
PubSub的
的WebSockets
**
入门
**
**安装**
<pre class="brush:shell;toolbar: true; auto-links: false;">go get github.com/micro/micro</pre>
**运行**
micro
sidecar默认在端口8081
运行
。
开始
sidecar
<pre class="brush:shell;toolbar: true; auto-links: false;">micro sidecar</pre>
如果你想在启动程序自动
登记
一个应用程序
可以选择指定
的应用程序
服务器
名称和地址。
<pre class="brush:shell;toolbar: true; auto-links: false;">micro sidecar --server_name=foo --server_address=127.0.0.1:9090</pre>
**
服务安全
TLS
**
Sidecar
支持
TLS证书
的安全
服务
<pre class="brush:shell;toolbar: true; auto-links: false;">micro --enable_tls --tls_cert_file=/path/to/cert --tls_key_file=/path/to/key sidecar</pre>
**
主机发现
**
<pre class="brush:shell;toolbar: true; auto-links: false;">curl http://127.0.0.1:8081/registry?service=go.micro.srv.example
{
"name":"go.micro.srv.example",
"nodes":[{
"id":"go.micro.srv.example-c5718d29-da2a-11e4-be11-68a86d0d36b6",
"address":"[::]","port":60728
}]
}</pre>
**
注册/
注销
服务
**
注册
<pre class="brush:shell;toolbar: true; auto-links: false;">curl -H 'Content-Type: application/json' http://127.0.0.1:8081/registry -d
{
"Name": "foo.bar",
"Nodes": [{
"Port": 9091,
"Address": "127.0.0.1",
"Id": "foo.bar-017da09a-734f-11e5-8136-68a86d0d36b6"
}]
}</pre>
注销
<pre class="brush:shell;toolbar: true; auto-links: false;">curl -X "DELETE" -H 'Content-Type: application/json' http://127.0.0.1:8081/registry -d
{
"Name": "foo.bar",
"Nodes": [{
"Port": 9091,
"Address": "127.0.0.1",
"Id": "foo.bar-017da09a-734f-11e5-8136-68a86d0d36b6"
}]
}</pre>
**健康检查**
利用“--healthcheck_url=”
启用micro sidecar使得
健康
检查工作
<pre class="brush:shell;toolbar: true; auto-links: false;">$ micro sidecar --server_name=foo --server_address=127.0.0.1:9090 \
--healthcheck_url=http://127.0.0.1:9090/_status/health
I0523 12:25:36.229536 85658 car.go:184] Registering foo-6ebf29c0-013e-11e5-b55f-68a86d0d36b6
I0523 12:25:36.241680 85658 car.go:188] Starting sidecar healthchecker</pre>
**
HTTP RPC API
**
通过http rpc api查询micro
服务。
<pre class="brush:shell;toolbar: true; auto-links: false;">$ curl -d 'service=go.micro.srv.example' \
-d 'method=Example.Call' \
-d 'request={"name": "John"}' http://127.0.0.1:8081/rpc
{"msg":"go.micro.srv.example-c5718d29-da2a-11e4-be11-68a86d0d36b6: Hello John"}</pre>
**
通过WebSockets的
PubSub
**
通过
WebSocket的
接口连接到micro的
Pub/Sub
<pre class="brush:shell;toolbar: true; auto-links: false;">c, _, _ := websocket.DefaultDialer.Dial("ws://127.0.0.1:8081/broker?topic=foo", make(http.Header))
go func() {
for {
_, p, err := c.ReadMessage()
if err != nil {
return
}
var msg *broker.Message
json.Unmarshal(p, &msg)
fmt.Println(msg.Data)
}
}()
ticker := time.NewTicker(time.Second)
for _ = range ticker.C {
if err := c.WriteMessage(1, []byte(`hello world`)); err != nil {
return
}
}</pre>
**
代理CLI
请求
**
sidecar还充当CLI
代理
<pre class="brush:shell;toolbar: true; auto-links: false;">$ micro --proxy_address=127.0.0.1:8081 list services
go.micro.srv.greeter</pre>
**
统计仪表板
**
您可以通过--enable_stats旗子启动
统计
仪表板。
它将在
/统计中
显示出来。
<pre class="brush:shell;toolbar: true; auto-links: false;">micro --enable_stats sidecar</pre>
![image](http://static.oschina.net/uploads/img/201603/22143329_oYI4.png)