服务发现对服务进行注册并发布其连接信息,以使其他服务了解如何连接到服务。随着应用向微服务和面向服务的架构转变,服务发现已经成为所有分布式系统的必要组成部分,增加了这些环境的运维复杂性。点击以下标题,回顾第一部分内容:
HRM 用法
现在您已经了解了 HRM 的工作原理和与它相关的要求,本部分将介绍用于 HTTP 路由、日志记录、监控和从节点的 HRM 语法。
HTTP 路由
服务必须包含一个标记,其标记键以 com.docker.ucp.mesh.http 开头。如果服务需要公开多个端口,那么可以使用多个标记,例如,com.docker.ucp.mesh.http.80 和 com.docker.ucp.mesh.http.443。80 和 443 用来通过端口号区别 HRM 标记。您可以使用任何值,只要确保它们彼此不同并且您可以跟踪它们即可。
连接到 HRM 使用的服务的标记键必须以 com.docker.ucp.mesh.http 开头,例如,com.docker.ucp.mesh.http.80 和 com.docker.ucp.mesh.http.443。
标记的值是以逗号分隔的键/值对(以等号分隔)列表。可以使用以下对:
- external_route (必需) — 要路由到该服务的外部 URL。示例:http://myapp.example.com 和 sni://myapp.example.com
- internal_port — 用于服务的内部端口。如果服务发布多个端口,此为必需。示例:80 和 8443
- sticky_sessions — 如果存在,使用该命名的 cookie 来将用户路由到此服务的相同后端任务。将会在本文档后面的 Sticky Sessions 部分对它进行详细说明。
- redirect — 如果存在,执行到指定 URL 的重定向。请参阅本文档后面的重定向部分。