我正在为一个微服务应用程序实现分布式跟踪。在zipkinui中,我无法获取子url路径。
对于父调用,整个url被捕获为“post/cart/create”。但对于孩子来说,只需要“get”和“post”。不显示子调用的整个url。如何解决这个问题?我需要帮助。
zipkin\u spans表中的数据如上图所示。
我的呼叫服务代码:
public Cart createCartItem(Cart cartItem, String userId) {
Map<String,String> params = new HashMap<String, String>();
params.put("userId", userId);
String inventoryUrl
= "http://item-service/inventory/get/"+cartItem.getItem_id();
ResponseEntity<Integer> response
= restTemplate.getForEntity(inventoryUrl, Integer.class, params);
if(!response.equals(0)) {
Cart cart = cartRepository.save(cartItem);
String inventoryQtyUpdateUrl
= "http://item-service/inventory/qty/"+cartItem.getItem_id();
restTemplate.postForLocation(inventoryQtyUpdateUrl, null, params);
return cart;
}
return null;
}
我使用的依赖项是
Spring Cloud入门侦探
Spring Cloud侦探齐普金
这个问题似乎前后矛盾。有时它显示整个网址,有时不。经过多次测试,我才知道这一点。我甚至用SpringCloudStarterZipkin测试过。但它也没有显示出任何有希望的结果。
所以,如果整个网址是必要的,那么我不应该使用zipkin吗?建议使用spring为微服务提供任何其他跟踪机制。
暂无答案!
目前还没有任何答案,快来回答吧!