以下是RabbitMQ 3.9.7镜像模式集群与Spring Boot 2.5.5整合的完整攻略,包含两个示例说明。
示例1:使用Docker Compose创建RabbitMQ集群
步骤1:创建docker-compose.yml文件
在任意目录下创建docker-compose.yml文件,内容如下:
version: '3.8'
services:
rabbitmq1:
image: rabbitmq:3.9.7-management-alpine
hostname: rabbitmq1
ports:
- "5672:5672"
- "15672:15672"
environment:
RABBITMQ_ERLANG_COOKIE: "secret cookie here"
RABBITMQ_NODENAME: "rabbitmq1@rabbitmq1"
RABBITMQ_CLUSTER_NODE_TYPE: "disc"
RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: "-rabbitmq cluster_formation.peer_discovery_backend rabbitmq_peer_discovery_k8s"
RABBITMQ_SERVER_START_ARGS: "-rabbitmq cluster_formation.k8s.hostnames.1 rabbitmq1.rabbitmq-hs.default.svc.cluster.local"
volumes:
- rabbitmq1:/var/lib/rabbitmq
rabbitmq2:
image: rabbitmq:3.9.7-management-alpine
hostname: rabbitmq2
ports:
- "5673:5672"
- "15673:15672"
environment:
RABBITMQ_ERLANG_COOKIE: "secret cookie here"
RABBITMQ_NODENAME: "rabbitmq2@rabbitmq2"
RABBITMQ_CLUSTER_NODE_TYPE: "disc"
RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: "-rabbitmq cluster_formation.peer_discovery_backend rabbitmq_peer_discovery_k8s"
RABBITMQ_SERVER_START_ARGS: "-rabbitmq cluster_formation.k8s.hostnames.1 rabbitmq1.rabbitmq-hs.default.svc.cluster.local"
volumes:
- rabbitmq2:/var/lib/rabbitmq
volumes:
rabbitmq1:
rabbitmq2:
步骤2:启动RabbitMQ集群
在docker-compose.yml文件所在目录下,运行以下命令启动RabbitMQ集群:
docker-compose up -d
步骤3:验证集群状态
在浏览器中访问http://localhost:15672/,使用默认的用户名和密码(guest/guest)登录RabbitMQ管理界面。在“Overview”选项卡中,您应该可以看到两个节点的状态都是“running”。
示例2:使用Spring Boot连接RabbitMQ集群
步骤1:添加依赖
在pom.xml文件中添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
步骤2:配置RabbitMQ连接
在application.properties文件中添加以下配置:
spring.rabbitmq.host=rabbitmq1,rabbitmq2
spring.rabbitmq.port=5672
spring.rabbitmq.username=guest
spring.rabbitmq.password=guest
spring.rabbitmq.virtual-host=/
步骤3:创建消息发送者
创建一个消息发送者类,用于发送消息到RabbitMQ:
@Component
public class MessageSender {
@Autowired
private RabbitTemplate rabbitTemplate;
public void sendMessage(String message) {
rabbitTemplate.convertAndSend("direct-exchange", "direct-routing-key", message);
}
}
步骤4:创建消息接收者
创建一个消息接收者类,用于接收消息:
@Component
public class MessageReceiver {
@RabbitListener(queues = "direct-queue")
public void receiveMessage(String message) {
System.out.println("Received message: " + message);
}
}
步骤5:启动应用程序
启动Spring Boot应用程序,并在控制台中查看消息接收情况。
以上就是RabbitMQ 3.9.7镜像模式集群与Spring Boot 2.5.5整合的完整攻略,包含两个示例说明。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:RabbitMQ 3.9.7 镜像模式集群与Springboot 2.5.5 整合 - Python技术站