384.11. 映射规则
服务器的服务名称映射使用下列规则进行
- 是否存在与来自 端点的 endpoint uri 匹配的排除模式?如果 yes,则跳过。
- 在 serviceServiceMapping 中是否存在与来自 端点的端点 uri 匹配的 serviceServiceMapping 吗?如果是,则使用找到的服务名称
- 在 serviceServiceMapping 中是否存在与当前路由的路由 ID 匹配的 serviceServiceMapping 吗?如果是,则使用找到的服务名称
- serviceServiceMapping 中是否存在与启动交换的原始路由 ID 匹配的匹配项?如果是,则使用找到的服务名称
- 未找到服务名称,不会按 zipkin 跟踪交换
客户端的服务名称映射使用以下规则进行
- 是否存在与来自 端点的 endpoint uri 匹配的排除模式?如果 yes,则跳过。
- clientServiceMapping 中是否存在与要发送到消息的端点端点的端点 uri 匹配的匹配项?如果是,则使用找到的服务名称
- clientServiceMapping 中是否存在与当前路由的路由 ID 匹配的匹配项?如果是,则使用找到的服务名称
- clientServiceMapping 中是否存在与启动交换的原始路由 ID 匹配的匹配项?如果是,则使用找到的服务名称
- 未找到服务名称,不会按 zipkin 跟踪交换
384.11.1. 没有客户端或服务器映射
如果没有配置客户端或服务器服务映射,CamelZipkin 以回退模式运行,并使用 endpoint uris 作为服务名称。
在上例中,这意味着服务名称将被定义为您自己添加以下代码:
zipkin.addServerServiceMapping("activemq:queue:inbox", "activemq:queue:inbox"); zipkin.addClientServiceMapping("http:someserver/somepath", "http:someserver/somepath");
这不是推荐的方法,但可以在不执行任何服务名称映射的情况下快速启动并运行。但是,当您在基础架构中有多个系统时,您应该考虑使用人类可读的服务名称,而是映射到,而不使用 camel 端点 uri。