账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    rabbitMQ 与springboot整合报错AMQP协议版本不匹配,如何解决?
    64
    0
    问题描述控制台显示AMQP protocol version mismatch; we are version 0-9-1, server sent signature 3,1,0,0问题出现的环境背景及自己尝试过哪些方法看到一个博主说要ssl证书 或者是和activeMQ冲突了 但是还是不太好用正常一个springboot与rabbitmq的整合相关代码POM文件:<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.6</version> <relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>RabbitMQDemo</artifactId><version>0.0.1-SNAPSHOT</version><name>RabbitMQDemo</name><description>RabbitMQDemo</description><properties> <java.version>1.8</java.version></properties><dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- swagger --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> <!-- rabbitmq --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency></dependencies><build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins></build></project>配置文件:spring.rabbitmq.host=127.0.01spring.rabbitmq.port=5672spring.rabbitmq.username=guestspring.rabbitmq.password=guestpackage com.example.rabbitmqdemo.config;import org.springframework.amqp.core.Queue;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;rabbitMQ配置文件:@Configurationpublic class RabbitConfig {@Beanpublic Queue demoString(){ return new Queue("demoQueue");}}SWagger配置文件:package com.example.rabbitmqdemo.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;@Configuration@EnableSwagger2public class SwaggerConfig {@Beanpublic Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.any()) .paths(PathSelectors.any()).build();}private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("Swagger ApI Doc") .description("This is a restful api document cf Swagger.") .version("1.0") .build();}}消费者package com.example.rabbitmqdemo.send;import org.springframework.amqp.rabbit.annotation.RabbitHandler;import org.springframework.amqp.rabbit.annotation.RabbitListener;import org.springframework.stereotype.Component;@Component@RabbitListener(queues = "demoQueue")public class Consumer {@RabbitHandlerpublic void recieved(String msg) { System.out.println("[demoQueue] recieved message" + msg);}}生产者package com.example.rabbitmqdemo.send;import org.springframework.amqp.core.AmqpTemplate;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;import java.text.SimpleDateFormat;import java.util.Date;@Componentpublic class RabbitProducer {@Autowiredprivate AmqpTemplate rabbitTemplate;public void sendDemoQueue() { Date date = new Date(); String dateString = new SimpleDateFormat("YYYY-mm-dd hh:MM:ss").format(date); System.out.println("[demoQueue] send msg:" + dateString); this.rabbitTemplate.convertAndSend("demoQueue", dateString);}}controller:@RestControllerpublic class RabbitMqController {@Autowiredprivate RabbitProducer rabbitProducer;@GetMapping("/sendDemoQueue")public Object sendDemoQueue(){ rabbitProducer.sendDemoQueue(); return "success";}}你期待的结果是什么?实际看到的错误信息又是什么?
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 苍山飞雪 普通会员 1楼

      AMQP协议版本不匹配可能是因为你的spring Boot项目使用了AMQP 1.1.15版本,而 RabbitMQ 服务器使用了AMQP 1.0.17版本。为了解决这个问题,你可以尝试以下步骤:

      1. 更新Spring Boot项目:在你的pom.xml文件中,找到并更新你的spring-boot-starter-amqp依赖。例如,如果你使用的是Maven,你可以这样添加:

      xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency>

      1. 重启服务:如果上述方法无效,你可以尝试重启你的服务。在你的Spring Boot应用中,你可以使用java -jar your-app.jar命令启动你的服务。在服务启动后,你可以查看System.out.println("AMQP Version: " + System.getProperty("amqp.version"));来获取AMQP版本信息。

      2. 更新RabbitMQ服务器:如果重启服务后,问题仍未解决,你可以尝试更新RabbitMQ服务器。在RabbitMQ的官方文档中,你可以找到关于如何更新AMQP版本的详细信息。

      希望以上信息能对你有所帮助。如果你还有其他问题,欢迎随时提问。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部