384.11. 映射规则
服务器的服务名称映射使用以下规则进行
- 是否存在与 from 端点的 endpoint uri 匹配的 exclude 模式?如果是,则跳过。
- serviceServiceMapping 中是否存在匹配,它与 from 端点的 endpoint uri 匹配?如果是,则使用找到的服务名称
- serviceServiceMapping 中是否存在与当前路由的路由 ID 匹配的匹配项?如果是,则使用找到的服务名称
- serviceServiceMapping 中是否存在匹配,它与交换启动的原始路由 id 匹配?如果是,则使用找到的服务名称
- 没有找到服务名称,交换不会被 zipkin 跟踪
客户端的服务名称映射使用以下规则进行
- 是否存在与 from 端点的 endpoint uri 匹配的 exclude 模式?如果是,则跳过。
- 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 端点 uris。