请选择 进入手机版 | 继续访问电脑版

[java] SpringBoot制止 启动时测试检查rabbitmq操作

[复制链接]
查看45 | 回复8 | 2021-9-13 01:10:57 | 显示全部楼层 |阅读模式
目次

SpringBoot克制 启动时测试检查rabbitmq

标题

在Springboot项目中设置 rabbitmq后,总是在每次启动时自动 测试MQ的毗连 ,假如 测试不通过,就不停 重连,导致项目无法正常启动。本身 在开发 与MQ无关的功能时,无法正常举行 ,非常 耽误时间。如下所示:

  1. org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection timed out: connect
  2. at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptionTranslator.java:62) ~[spring-rabbit-2.0.6.RELEASE.jar:2.0.6.RELEASE]
  3. at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:484) ~[spring-rabbit-2.0.6.RELEASE.jar:2.0.6.RELEASE]
  4. at org.springframework.amqp.rabbit.connection.CachingConnectionFactory.createConnection(CachingConnectionFactory.java:628) ~[spring-rabbit-2.0.6.RELEASE.jar:2.0.6.RELEASE]
  5. at org.springframework.amqp.rabbit.connection.ConnectionFactoryUtils.createConnection(ConnectionFactoryUtils.java:240) ~[spring-rabbit-2.0.6.RELEASE.jar:2.0.6.RELEASE]
  6. at org.springframework.amqp.rabbit.core.RabbitTemplate.doExecute(RabbitTemplate.java:1816) ~[spring-rabbit-2.0.6.RELEASE.jar:2.0.6.RELEASE]
  7. at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1790) ~[spring-rabbit-2.0.6.RELEASE.jar:2.0.6.RELEASE]
  8. at org.springframework.amqp.rabbit.core.RabbitTemplate.execute(RabbitTemplate.java:1771) ~[spring-rabbit-2.0.6.RELEASE.jar:2.0.6.RELEASE]
  9. at org.springframework.amqp.rabbit.core.RabbitAdmin.getQueueProperties(RabbitAdmin.java:345) ~[spring-rabbit-2.0.6.RELEASE.jar:2.0.6.RELEASE]
  10. at org.springframework.amqp.rabbit.listener.AbstractMessageListenerContainer.redeclareElementsIfNecessary(AbstractMessageListenerContainer.java:1604) ~[spring-rabbit-2.0.6.RELEASE.jar:2.0.6.RELEASE]
  11. at org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer$AsyncMessageProcessingConsumer.run(SimpleMessageListenerContainer.java:995) [spring-rabbit-2.0.6.RELEASE.jar:2.0.6.RELEASE]
  12. at java.lang.Thread.run(Thread.java:748) [na:1.8.0_231]
  13. Caused by: java.net.ConnectException: Connection timed out: connect
  14. at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) ~[na:1.8.0_231]
  15. at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) ~[na:1.8.0_231]
  16. at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) ~[na:1.8.0_231]
  17. at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) ~[na:1.8.0_231]
  18. at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) ~[na:1.8.0_231]
  19. at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) ~[na:1.8.0_231]
  20. at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) ~[na:1.8.0_231]
  21. at java.net.Socket.connect(Socket.java:606) ~[na:1.8.0_231]
  22. at com.rabbitmq.client.impl.SocketFrameHandlerFactory.create(SocketFrameHandlerFactory.java:60) ~[amqp-client-5.4.1.jar:5.4.1]
  23. at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1102) ~[amqp-client-5.4.1.jar:5.4.1]
  24. at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1054) ~[amqp-client-5.4.1.jar:5.4.1]
  25. at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:994) ~[amqp-client-5.4.1.jar:5.4.1]
  26. at org.springframework.amqp.rabbit.connection.AbstractConnectionFactory.createBareConnection(AbstractConnectionFactory.java:457) ~[spring-rabbit-2.0.6.RELEASE.jar:2.0.6.RELEASE]
  27. ... 9 common frames omitted
复制代码

查找了很多地方,这里记录一下,怎样 在Springboot启动项目时,怎样 关闭RabbitMq的毗连 测试。

办理

在设置 文件里增长

  1. spring.rabbitmq.listener.direct.auto-startup= false
  2. spring.rabbitmq.listener.simple.auto-startup= false
复制代码

如许 启动时就不会每次都检查RabbitMq是否可以毗连 了

RabbitMQ的简单利用 的Demo

当前利用 的版本:rabbitmq-server-windows-3.8.3

1.声明

当前内容用于本人学习和利用 RabbitMQ这个消息队列,当前内容为SpringBoot操作RabbitMQ的基本操作

本人利用 windows10方式利用 RabbitMQ

2.创建一个测试账户

在这里插入图片形貌

注意 这里的Can access virtual hosts必须修改为/,否则大概 出现毗连 失败,这里利用 账户为root

3.pom依赖

  1. <parent>
  2. <groupId>org.springframework.boot</groupId>
  3. <artifactId>spring-boot-starter-parent</artifactId>
  4. <version>1.5.2.RELEASE</version>
  5. <relativePath />
  6. </parent>
  7. <groupId>SpringBoot-RabbitMQ</groupId>
  8. <artifactId>SpringBoot-RabbitMQ</artifactId>
  9. <version>0.0.1-SNAPSHOT</version>
  10. <packaging>jar</packaging>
  11. <name>SpringBoot-RabbitMQ</name>
  12. <url>http://maven.apache.org</url>
  13. <properties>
  14. <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  15. <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  16. <java.version>1.8</java.version><!-- 更新SpringCloud的版本 -->
  17. </properties>
  18. <dependencies>
  19. <dependency>
  20. <groupId>org.springframework.boot</groupId>
  21. <artifactId>spring-boot-starter-amqp</artifactId>
  22. </dependency>
  23. <dependency>
  24. <groupId>org.springframework.boot</groupId>
  25. <artifactId>spring-boot-starter-actuator</artifactId>
  26. </dependency>
  27. <dependency>
  28. <groupId>org.springframework.boot</groupId>
  29. <artifactId>spring-boot-starter-web</artifactId>
  30. </dependency>
  31. </dependencies>
  32. <build>
  33. <plugins>
  34. <plugin>
  35. <groupId>org.springframework.boot</groupId>
  36. <artifactId>spring-boot-maven-plugin</artifactId>
  37. </plugin>
  38. </plugins>
  39. </build>
复制代码

4.设置 文件application.properties

  1. spring.application.name=rabbitmq-hello
  2. server.port=8080
  3. spring.rabbitmq.host
  4. spring.rabbitmq.host=localhost
  5. spring.rabbitmq.port=5672
  6. spring.rabbitmq.username=root
  7. spring.rabbitmq.password=root
复制代码

5.创建入口类

  1. @RestController
  2. @SpringBootApplication
  3. public class RabbitMQApplication {
  4. @Autowired
  5. AmqpTemplate amqpTemplate;
  6. @RequestMapping("/send")
  7. public String send(String msg) {
  8. amqpTemplate.convertAndSend("test", msg);
  9. return "发送消息成功:===>" + msg;
  10. }
  11. public static void main(String[] args) {
  12. SpringApplication.run(RabbitMQApplication.class, args);
  13. }
  14. @Bean
  15. Queue queue() {
  16. return new Queue("test");
  17. }
  18. @Component
  19. @RabbitListener(queues = "test")
  20. class MsgCustomer {
  21. @RabbitHandler
  22. public void handlerMsg(String msg) {
  23. System.out.println("消息消费者消费===>" + msg);
  24. }
  25. }
  26. }
复制代码

6.测试

在这里插入图片形貌

SpringBoot制止
启动时测试检查rabbitmq操作

7.总结

1.通过利用 SpringBoot操作RabbitMQ的时间 非常简单,直接利用 AmqpTemplate即可

2.通过@RabbitListener指定必要 监听的队列,通过@RabbitHandler方式处理监听后的数据

以上为个人履历 ,渴望 能给大家一个参考,也渴望 大家多多支持脚本之家。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

avatar 陈辞滥调 | 2021-9-18 08:08:27 | 显示全部楼层
回帖也有有水平的!
回复

使用道具 举报

avatar 润唇膏贡 | 2021-9-19 07:42:04 | 显示全部楼层
强,我和我的小伙伴们都惊呆了!
回复

使用道具 举报

avatar hyq481 | 2021-9-20 00:13:21 | 显示全部楼层
灌水不是我的目的!
回复

使用道具 举报

avatar 屎壳郎秧 | 2021-9-27 00:17:30 | 显示全部楼层
论坛的人气不行了!
回复

使用道具 举报

avatar 山东美家环保 | 2021-9-29 02:09:05 | 显示全部楼层
admin楼主该去看心理医生了!
回复

使用道具 举报

avatar 湿湿二 | 2021-10-1 23:45:36 | 显示全部楼层
这么好的帖子,应该加精华!
回复

使用道具 举报

很有看点!
回复

使用道具 举报

admin楼主今年多大了?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则