一 、RabbitMQ基础组件整体功能概述
二、基础组件开发
4各模块 common、api、core-product、task
(一)、父工程 rabbit-parent
1.pom文件

<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 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.1.5.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.bfxy.base.rabbit</groupId> <artifactId>rabbit-parent</artifactId> <packaging>pom</packaging> <name>rabbit-parent</name> <description>rabbit-parent</description> <version>0.0.1-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>8</java.version> <fasterxml.uuid.version>3.1.4</fasterxml.uuid.version> <org.codehaus.jackson.version>1.9.13</org.codehaus.jackson.version> <druid.version>1.0.24</druid.version> <elastic-job.version>2.1.4</elastic-job.version> <guava.version>20.0</guava.version> <commons-lang3.version>3.3.1</commons-lang3.version> <commons-io.version>2.4</commons-io.version> <commons-collections.version>3.2.2</commons-collections.version> <curator.version>2.11.0</curator.version> <fastjson.version>1.1.26</fastjson.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>${guava.version}</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>${commons-io.version}</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version> </dependency> <!--对json格式的支持 --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>${org.codehaus.jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> </dependency> <dependency> <groupId>com.fasterxml.uuid</groupId> <artifactId>java-uuid-generator</artifactId> <version>${fasterxml.uuid.version}</version> </dependency> </dependencies> <modules> <module>rabbit-common</module> <module>rabbit-api</module> <module>rabbit-core-producer</module> <module>rabbit-task</module> </modules> </project>
(二)、子模块API封装 rabbit-api
1、Message 消息的规划

package com.bfxy.rabbit.api; import java.io.Serializable; import java.util.HashMap; import java.util.Map; import lombok.Data; /** * $Message * @author Alienware * */ @Data public class Message implements Serializable { private static final long serialVersionUID = 841277940410721237L; /* 消息的唯一ID */ private String messageId; /* 消息的主题 */ private String topic; /* 消息的路由规则 */ private String routingKey = ""; /* 消息的附加属性 */ private Map<String, Object> attributes = new HashMap<String, Object>(); /* 延迟消息的参数配置 */ private int delayMills; /* 消息类型:默认为confirm消息类型 */ private String messageType = MessageType.CONFIRM; public Message() { } public Message(String messageId, String topic, String routingKey, Map<String, Object> attributes, int delayMills) { this.messageId = messageId; this.topic = topic; this.routingKey = routingKey; this.attributes = attributes; this.delayMills = delayMills; } public Message(String messageId, String topic, String routingKey, Map<String, Object> attributes, int delayMills, String messageType) { this.messageId = messageId; this.topic = topic; this.routingKey = routingKey; this.attributes = attributes; this.delayMills = delayMills; this.messageType = messageType; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
2014-03-17 SQL 会议消费记录统计
2014-03-17 XQuery的 value() 方法、 exist() 方法 和 nodes() 方法
2014-03-17 SQL存储过程-新增和修改,参数Xml数据类型