今天兴致勃勃的准备把之前的微服务部署到测试服务器上,一开始挺顺利,clean、package一切都朝着预期的方向发展,我把项目上传到Linux 服务器之后,准备启动微服务,开始挺顺利,结果后来提示了这样一段错:
com.rabbitmq.client.MalformedFrameException: AMQP protocol version mismatch; we are version 0-9-1, server sent signature 0,1,0,0
at com.rabbitmq.client.impl.Frame.protocolVersionMismatch(Frame.java:170) ~[amqp-client-4.0.2.jar!/:4.0.2]
at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:107) ~[amqp-client-4.0.2.jar!/:4.0.2]
at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:164) ~[amqp-client-4.0.2.jar!/:4.0.2]
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:571) ~[amqp-client-4.0.2.jar!/:4.0.2]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_131]
我很纳闷,这是版本不匹配?我用的是rabbitmq,我看了服务器上的rabbitmq也是没启用的状态,为什么会报这个错?,我在网上搜了一圈,发现解决方案跟我的不太匹配,但给我提供是思路;原文链接如下:
大致的思路是端口有问题,我就朝着这个思路去找答案,我看到rabbitmq默认的端口是5672,但我的rabbitmq并没有启动,好奇心促使着我查看下这个端口的使用情况,不看不知道,结果居然被我发现有个服务在使用5672这个端口,也是mq(如下):
java 109685 root 130u IPv6 482194208 0t0 TCP *:amqp (LISTEN)
然后看了查找了下,才发现,原来服务器上还安装了activemq,两个mq的协议不一样,所以启动报错,我把服务器上的activemq的服务停了,然后启用rabbitmq,一切正常OK!