384.11. 映射规则
使用以下规则进行服务器的服务名称映射
- 是否有与 from 端点的端点 uri 匹配的排除模式?如果是,则跳过。
- serviceServiceMapping 中是否有匹配项,它与来自端点的端点 uri 匹配?如果为 yes,则使用找到的服务名称
- serviceServiceMapping 中是否有与当前路由的路由 ID 匹配?如果为 yes,则使用找到的服务名称
- serviceServiceMapping 中是否有匹配项,与交换启动的原始路由 id 匹配?如果为 yes,则使用找到的服务名称
- 未找到服务名称,无法按 zipkin 跟踪交换
客户端的服务名称映射使用以下规则
- 是否有与 from 端点的端点 uri 匹配的排除模式?如果是,则跳过。
- clientServiceMapping 中是否有匹配项,与消息发送到的端点的 endpoint uri 匹配?如果为 yes,则使用找到的服务名称
- clientServiceMapping 中是否有与当前路由的路由 ID 匹配?如果为 yes,则使用找到的服务名称
- clientServiceMapping 中是否有匹配项,与交换启动的原始路由 id 匹配?如果为 yes,则使用找到的服务名称
- 未找到服务名称,无法按 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。