A classe Channel (Cliente Java) fornece três métodos para publicar uma mensagem, todos eles com o parâmetro routingkey. A troca de cabeçalhos não precisa da chave de roteamento.
Se eu passar um valor nulo para a chave de roteamento, a seguinte exceção será retornada: "java.lang.IllegalStateException: Configuração inválida:" routingKey "deve ser não nula."
No entanto, se eu passar uma string vazia, funciona. Então a pergunta é: é correto usar uma string vazia?
Respostas:
0 para resposta № 1Sim, é correto usar uma string vazia. A chave de roteamento não é usada por trocas de cabeçalhos, conforme definido na especificação do protocolo AMQP.
A exceção mais provável é lançada porque o driver não sabe nada sobre configuração e é muito mais seguro lidar com todos os erros, incluindo possíveis erros, no lado do cliente.