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