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