Micro_SideCar - HTTP接口


Apache
跨平台
Google Go

软件简介

Micro SideCar

SideCar提供了一个集成应用程序到微型生态系统的HTTP接口。

它类似于Netflix称为Prana的SideCar。

特性

  • 登记发现系统

  • 主机的其他服务发现

  • 健康检查服务

  • HTTP API和负载平衡要求

  • 通过PubSub的的WebSockets

入门

安装

go get github.com/micro/micro

运行

micro sidecar默认在端口8081运行。

开始sidecar

micro sidecar

如果你想在启动程序自动登记一个应用程序可以选择指定的应用程序服务器名称和地址。

micro sidecar --server_name=foo --server_address=127.0.0.1:9090

服务安全 TLS

Sidecar支持TLS证书的安全服务

micro --enable_tls --tls_cert_file=/path/to/cert --tls_key_file=/path/to/key sidecar

主机发现

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
    }]
}

注册/ 注销服务

注册

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"
    }]
}

注销

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"
    }]
}

健康检查

利用“–healthcheck_url=”启用micro sidecar使得健康检查工作

$ 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

HTTP RPC API

通过http rpc api查询micro服务。

$ 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"}

通过WebSockets的 PubSub

通过WebSocket的接口连接到micro的Pub/Sub

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
    }
}

代理CLI 请求

sidecar还充当CLI代理

$ micro --proxy_address=127.0.0.1:8081 list services
go.micro.srv.greeter

统计仪表板

您可以通过–enable_stats旗子启动统计仪表板。它将在/统计中显示出来。

micro --enable_stats sidecar