請問一下,同樣的代碼,啟動時消費者沒有連接上MQ服務器如何解決
我用的配置文件是yml形式,生產者那邊配置沒問題,可以正常連接服務器并發送消息。
消費者這邊一樣的,并且可以正常啟動SpringBootApplication,但是在控制臺中rabbitConnectionFactory已經注冊了,之后卻沒有連接服務器的操作,同時控制臺輸出也為空,沒有進入Receiver類。以下是控制臺輸出,Receiver類和yml配置文件,請問一下是哪里沒有配置正確。
application.yml #rabbitmq基礎配置 spring: ??rabbitmq: ????addresses:?127.0.0.1:5672 ????username:?guest ????password:?guest ????virtual-host:?/ ????connection-timeout:?15000 #rabbitmq消費者配置 ????listener: ??????simple: ????????concurrency:?5 ????????max-concurrency:?10 ????????acknowledge-mode:?manual ????????prefetch:?1 ??http: ????encoding:?UTF-8 ??jackson: ????date-format:?yyyy-MM-dd?HH:mm:ss ????time-zone:?GMT+8 ????default-property-inclusion:?non_null server: ??servlet: ????context-path:?/ ??port:?8002
@Component public?class?OrderReceiver?{ ????//Rabbit以注解的形式進行監聽 ????@RabbitListener( ????????????bindings?=?@QueueBinding( ????????????????????value?=?@Queue(value?=?"order-queue",?durable?=?"true"), ????????????????????exchange?=?@Exchange(value?=?"order-exchange"?,?type?=?"topic"), ????????????????????key?=?"order.#" ????????????) ????) ????@RabbitHandler ????public?void?onOrderMsg(@Payload?Order?order?,?@Headers?Map<String,Object>?headers,?Channel?channel)?throws?IOException?{ ????????//消費者操作 ????????System.err.println("消費者活動"); ????????System.out.println("訂單ID:?"?+?order.getId()); ????????Long?deliveryTag?=?(Long)?headers.get(AmqpHeaders.DELIVERY_TAG); ????????//手工模式,響應ACK ????????channel.basicAck(deliveryTag,?false); ????}
2022-03-25
已經連接了MongoDB,不缺。函數里面加一個exit,解決
2018-10-17
問題大致解決,參考了樓上朋友出現的問題。我用的idea,按照視頻上那樣把SpringBoot入口包和項目的包同級放的話,就不會自動調用到項目包中的bean,把項目包放在入口包的子級以后,雖然還有報錯,但是已經可以連上MQ服務器了。