Я работал над приложением на основе микросервиса для электронной коммерции.Структура HTTP-запроса: внешний интерфейс -> заказ -> доставка -> rabbitmq -> мастер очереди.Транспортный контейнер получает информацию о трассировке из заказа, но не передается rabbitmq.Есть ли какая-либо конфигурация, которую я должен сделать?Я думал, что использование «spring-cloud-starter-zipkin» поможет мне справиться с этим без усилий.
(tcpdump) доставка получить запрос на отправку с информацией о трассировке:
2018-05-11 14:52:47.225204 IP 172.18.0.1.55648 > 172.18.0.8.80: Flags [P.], seq 1:320, ack 1, win 229, options [nop,nop,TS val 316382616 ecr 316382616], length 319: HTTP: POST /shipping HTTP/1.1
E..sF.@.@............`.PU5.6.f
.....Y......
........POST /shipping HTTP/1.1
Accept: application/json
Content-Type: application/json
X-B3-TraceId: a5a28c66a3557a66
X-B3-SpanId: 94e11436dc6c4bee
X-B3-Sampled: 1
X-Span-Name: http:/shipping
X-B3-ParentSpanId: 1a084fd84593e495
User-Agent: Java/1.8.0_131
Host: shipping
Connection: keep-alive
Content-Length: 79
доставка отправлена на rabbitmqотсутствуют данные трассировки.
2018-05-11 14:52:47.228864 IP 172.18.0.8.34840 > 172.18.0.6.5672: Flags [P.], seq 3168203512:3168203740, ack 344352272, win 237, options [nop,nop,TS val 316382617 ecr 316375545], length 228
E...;.@.@..............(......f.....Y=.....
................<.(....shipping-task........g.<.........O...application/json.UTF-8...<
__TypeId__S...,works.weave.socks.shipping.entities.Shipment.........O{"id":"8b92ebba-d95d-4212-af3e-6304ba5fc363","name":"57a98d98e4b00679b4a830b2"}.
РЕДАКТИРОВАНИЕ: некоторый код запроса на отправку: (отправка - это просто объект с идентификатором и именем)
@ResponseStatus(HttpStatus.CREATED)
@RequestMapping(value = "/shipping", method = RequestMethod.POST)
public
@ResponseBody
Shipment postShipping(@RequestBody Shipment shipment) {
System.out.println("Adding shipment to queue...");
try {
rabbitTemplate.convertAndSend("shipping-task", shipment);
} catch (Exception e) {
System.out.println("Unable to add to queue (the queue is probably down). Accepting anyway. Don't do this " +
"for real!");
}
return shipment;
}