2017-04-19 5 views
0
내가 /주제/밀어/{organizationId} 내가 오류를 얻고있다 형식으로 항목을 밀어하려고

RabbitMQ 주제 형식 - 주요 주제 아래 하위 주제

messagingTemplate.convertAndSend("/topic/pushing/" + obj.getCustomerid(), obj); 

오류 :

15:06:48.901 [reactor-tcp-io-1] ERROR o.s.m.s.s.StompBrokerRelayMessageHandler - Received ERROR {message=[Invalid destination], content-type=[text/plain], version=[1.0,1.1,1.2], content-length=[53]} session=system text/plain payload='/pushing/2963_ent' is not a valid topic destination

그러나 나는 점에 슬래시를 대체,이 형식 /topic/pushing.{organizationId}로 변경하는 경우, 그것을 잘 작동하고 :

messagingTemplate.convertAndSend("/topic/pushing." + obj.getCustomerid(), obj); 

어떻게하면 슬래시를 유지할 수 있고 기본 주제 아래에 하위 주제가 있는지 알 수 있습니다.

답변

1

AMQP 0.9.1 specification이 화제 교환에 대해 말하고있다 :

The topic exchange type works as follows: 1. A message queue binds to the exchange using a routing pattern, P. 2. A publisher sends the exchange a message with the routing key R. 3. The message is passed to the message queue if R matches P. The routing key used for a topic exchange MUST consist of zero or more words delimited by dots. Each word may contain the letters A-Z and a-z and digits 0-9.

The routing pattern follows the same rules as the routing key with the addition that * matches a single word, and # matches zero or more words. Thus the routing pattern *.stock.# matches the routing keys usd.stock and eur.stock.db but not stock.nasdaq.

그래서 "/"라우팅 키에 승인 및 사용 구분 기호 점입니다하지 않습니다.