版本说明
- JDK 1.8
- RabbitMQ 3.7.15 Erlang 22.0
- SpringBoot 2.3.3.RELEASE
- // TODO 2021年1月8日 整理CentOS安装RabbitMQ流程
1. 在RabbitMQ的Web管理界面,创建test队列
参数的含义
durability:是否持久化(重启或宕机后消息依然保存)
- durable 持久
- transient 暂时
新建maven项目。
2. pom.xml
<?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="ht<div style="color:transparent">本文来源gaodai.ma#com搞#代!码(网</div>tp://maven.apache.org/POM/4.0.0 http://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.3.3.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.demo</groupId> <artifactId>rabbitmq-demo</artifactId> <version>1.0.0</version> <properties> <lombok.version>1.18.12</lombok.version> </properties> <dependencies> <!--web 模块--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- AMQP --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-amqp</artifactId> </dependency> <!-- lombok--> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> <scope>provided</scope> <version>${lombok.version}</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
3. application.yaml
server: port: 20002 spring: rabbitmq: # 这里我改了本地的hosts,实际地址是192.168.0.121 host: vm.com port: 5672 virtual-host: / username: admin password: admin # 开启消息确认模式 # 消息发送到交换机确认机制,是否确认回调 # publisher-confirms: true # 是否返回回调 publisher-returns: true template: #开启mandatory: true, basic.return方法将消息返还给生产者 mandatory: true listener: simple: # 手动应答 acknowledge-mode: manual # 最少消费者数量 concurrency: 1 # 最多消费者数量 max-concurrency: 10 # 支持重试 retry: enabled: true
端口
- 5672:RabbitMQ的通信端口
- 15672:Web管理界面端口
4. RabbitmqDemo.java
@SpringBootApplication @EnableRabbit public class RabbitmqDemoApplication { public static void main(String[] args) { SpringApplication.run(RabbitmqDemoApplication.class, args); } }
5. RabbitConfig.java
@Configuration @Slf4j public class RabbitConfig { private RabbitTemplate rabbitTemplate; @Bean public RabbitTemplate rabbitTemplate(ConnectionFactory connectionFactory) { rabbitTemplate = new RabbitTemplate(connectionFactory); return rabbitTemplate; } }