- 授权协议: Apache
- 开发语言: Google Go
- 操作系统: 跨平台
- 软件首页: https://github.com/micro/micro/tree/master/car
- 软件文档: https://github.com/micro/micro/tree/master/car
- 官方下载: https://github.com/micro/micro.git
软件介绍
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
算法技术手册(原书第2版)
George T. Heineman、Gary Pollice、Stanley Selkow / 杨晨、曹如进 / 机械工业出版社 / 2017-8-1 / 89.00元
本书使用实际代码而非伪代码来描述算法,并以经验主导支撑数学分析,侧重于应用且规范严谨。本书提供了用多种程序设计语言实现的文档化的实际代码解决方案,还介绍了近40种核心算法,其中包括用于计算点集的Voronoi图的Fortune算法、归并排序、多线程快速排序、AVL平衡二叉树实现以及空间算法。一起来看看 《算法技术手册(原书第2版)》 这本书的介绍吧!
