Sidecar · go |
您所在的位置:网站首页 › sidecar使用的组件 › Sidecar · go |
1. Micro Sidecar1.1. API1.2. 特征1.3. 入门1.3.1. 安装1.3.2. 依赖1.3.3. 运行1.3.4. 通过ACME使能加密1.3.5. 提供TLS安全1.3.6. 自动健康检查1.4. 注册1.4.1. 注册服务1.4.2. 取消注册1.4.3. 查询服务1.5. Handlers1.5.1. RPC1.5.2. Proxy1.6. 请求映射1.7. 事件1.7.1. 发布1.7.2. 订阅1.8. CLI代理1.9. 统计仪表板1. Micro Sidecar
Micro Sidecar是用于构建高度可用和容错微服务的服务网格。 它与Netflix的Prana,Buoyant的RPC Proxy Linkerd或Lyft的Envoy类似。 Micro Sidecar采用go-micro,具有相同的默认设置和可插拔性。 可以在examples/sidecar找到许多语言的用法示例。 1.1. API该sidecar具有以下HTTP API。 - /[service]/[method] - /broker - /registry - /rpc 1.2. 特征sidecar具有go-micro的所有功能。这是最相关的。 服务发现 消息总线 RPC和代理处理程序 负载平衡,重试,超时 健康检测 统计界面 可通过go-micro插入 1.3. 入门 1.3.1. 安装 go get github.com/micro/micro 1.3.2. 依赖Sidecar使用go-micro,这意味着它有一个默认依赖关系,用于服务发现的Consul。 brew install consul consul agent -dev 1.3.3. 运行默认情况下,在端口8081上运行Micro Sidecar。 启动Sidecar micro sidecar如果要在启动时自动注册应用程序,请指定应用程序服务名和地址。 micro sidecar --server_name=foo --server_address=127.0.0.1:9090 1.3.4. 通过ACME使能加密通过使用ACME提供安全服务 micro --enable_acme sidecar可以指定一个主机白名单 micro --enable_acme --acme_hosts=example.com,proxy.example.com sidecar 1.3.5. 提供TLS安全Sidecar支持使用TLS证书安全地提供服务 micro --enable_tls --tls_cert_file=/path/to/cert --tls_key_file=/path/to/key sidecar 1.3.6. 自动健康检查用“-healthcheck_url=”启动微型边车以启用健康检查器 它执行以下操作: 自动服务注册 定期HTTP健康检查 通过非200响应取消注册 micro sidecar --server_name=foo --server_address=127.0.0.1:9090 \ --healthcheck_url=http://127.0.0.1:9090/health 1.4. 注册 1.4.1. 注册服务 // specify ttl as a param to expire the registration // units ns|us|ms|s|m|h // http://127.0.0.1:8081/registry?ttl=10s 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" }] } 1.4.2. 取消注册 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" }] } 1.4.3. 查询服务 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 }] } 1.5. Handlers 1.5.1. RPC使用json或protobuf查询微服务。对后端的请求将使用go-micro RPC客户端进行。 使用/[service]/[method] 所调用服务的默认名称空间是go.micro.srv curl -H 'Content-Type: application/json' -d '{"name": "John"}' http://127.0.0.1:8081/example/call使用/rpc端口 curl -d 'service=go.micro.srv.example' \ -d 'method=Example.Call' \ -d 'request={"name": "John"}' http://127.0.0.1:8081/rpc 1.5.2. Proxy与api和web服务器一样,sidecar可以提供完整的http代理。 在命令行上启用代理处理程序。 micro sidecar --handler=proxyURL路径中的第一个元素将与名称空间一起用作要路由到的服务。 1.6. 请求映射URL路径映射与Micro API相同 URL的映射如下: Path Service Method /foo/bar go.micro.srv.foo Foo.Bar /foo/bar/baz go.micro.srv.foo Bar.Baz /foo/bar/baz/cat go.micro.srv.foo.bar Baz.Cat版本化的API URL可以很容易地映射到服务名称: Path Service Method /foo/bar go.micro.srv.foo Foo.Bar /v1/foo/bar go.micro.srv.v1.foo Foo.Bar /v1/foo/bar/baz go.micro.srv.v1.foo Bar.Baz /v2/foo/bar go.micro.srv.v2.foo Foo.Bar /v2/foo/bar/baz go.micro.srv.v2.foo Bar.Baz 1.7. 事件 1.7.1. 发布 curl -XPOST \ -H "Timestamp: 1499951537" \ -d "Hello World!" \ "http://localhost:8081/broker?topic=foo" 1.7.2. 订阅 conn, _, _ := websocket.DefaultDialer.Dial("ws://127.0.0.1:8081/broker?topic=foo", make(http.Header)) // optionally specify "queue=[queue name]" param to distribute traffic amongst subscribers // websocket.DefaultDialer.Dial("ws://127.0.0.1:8081/broker?topic=foo&queue=group-1", make(http.Header)) for { // Read message _, p, err := conn.ReadMessage() if err != nil { return } // Unmarshal into broker.Message var msg *broker.Message json.Unmarshal(p, &msg) // Print message body fmt.Println(msg.Body) } 1.8. CLI代理该sidecar还充当CLI访问远程环境的代理。 $ micro --proxy_address=127.0.0.1:8081 list services go.micro.srv.greeter 1.9. 统计仪表板通过--enable_stats标志启用统计信息显示板。它将暴露在/stats上。 micro --enable_stats sidecar |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |