目录

  • 1 初识Java EE
    • 1.1 新建目录
    • 1.2 新建目录
  • 2 Spring Boot知识回顾
    • 2.1 学习目标
    • 2.2 ​Spring Boot简介
      • 2.2.1 Eclipse中Spring Boot开发环境安装
      • 2.2.2 Eclipse中手工构建Spring Boot项目(一)
      • 2.2.3 Eclipse中手工构建Spring Boot项目(二)
      • 2.2.4 Spring Tool Suite中构建Spring boot项目
      • 2.2.5 Spring Boot的开发步骤
  • 3 Spring Boot核心配置
    • 3.1 学习目标
    • 3.2 Spring Boot核心配置
    • 3.3 基本配置
    • 3.4 日志配置
    • 3.5 读取应用配置
  • 4 Spring Boot的Web开发
    • 4.1 学习目标
    • 4.2 Spring Boot的Web开发支持
    • 4.3 Thymeleaf模板引擎
      • 4.3.1 Spring Boot与Thymeleaf实现页面信息国际化
      • 4.3.2 Spring Boot与Thymeleaf的表单验证
    • 4.4 Spring Boot处理JSON数据
    • 4.5 Spring Boot文件上传与下载
    • 4.6 Spring Boot的异常统一处理
    • 4.7 Spring Boot对JSP的支持
    • 4.8 Spring Boot与MyBatis的集成
    • 4.9 Spring Boot与MyBatis整合(项目重构)
  • 5 Spring Boot的数据访问
    • 5.1 学习目标
    • 5.2 REST
      • 5.2.1 REST 简介
      • 5.2.2 Spring Boot整合REST
      • 5.2.3 Spring Data REST
    • 5.3 Spring Data JPA
      • 5.3.1 简单条件查询-案例专家抽取系统
      • 5.3.2 关联查询 (一对一)
      • 5.3.3 关联查询 (一对多)
      • 5.3.4 关联查询 (多对多)
      • 5.3.5 @Query和@Modifying注解
      • 5.3.6 排序与分页查询
    • 5.4 Spring Boot使用JdbcTemplate
    • 5.5 Spring Boot的事务管理
    • 5.6 MongoDB
    • 5.7 Redis
      • 5.7.1 安装Redis
      • 5.7.2 SpringBoot整合Redis
      • 5.7.3 使用StringRedisTemplate和RedisTemplate
    • 5.8 数据缓存Cache
      • 5.8.1 Spring Boot缓存支持
      • 5.8.2 Redis Cache运行测试
      • 5.8.3 ehCache
  • 6 Spring Boot的安全控制
    • 6.1 学习目标
    • 6.2 Spring Security快速入门
    • 6.3 基于Spring Data JPA的Spring Boot Security操作实例
    • 6.4 基于MyBatis的Spring Boot Security操作实例
  • 7 异步消息
    • 7.1 学习目标
    • 7.2 消息模型
    • 7.3 JMS消息代理
    • 7.4 AMQP消息代理
  • 8 Spring Boot的热部署与单元测试
    • 8.1 学习目标
    • 8.2 开发的热部署
      • 8.2.1 模板引擎的热部署
      • 8.2.2 使用spring-boot-devtools进行热部署
    • 8.3 Spring Boot的单元测试
  • 9 监控Spring Boot应用
    • 9.1 学习目标
    • 9.2 端点的分类与测试
    • 9.3 自定义端点
    • 9.4 自定义HealthIndicator
  • 10 电子商务平台开发
    • 10.1 学习目标
    • 10.2 系统设计与实现
    • 10.3 后台管理子系统
    • 10.4 前端页面子系统
AMQP消息代理
  • 1 知识讲解
  • 2 RabbitMQ实例

AMQP消息代理


AMQP(Advanced Message Queuing Protocol)即高级消息队列协议,是一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件的不同产品、不同开发语言等条件的限制。


AMQP模型(AMQP Model):一个由关键实体和语义表示的逻辑框架,遵从AMQP规范的服务器必须提供这些实体和语义。为了实现本规范中定义的语义,客户端可以发送命令来控制AMQP服务器。

消费者(Consumer):一个从消息队列中请求消息的客户端应用程序。

生产者(Producer):一个向交换器发布消息的客户端应用程序。

虚拟主机(Virtual Host):一批交换器、消息队列和相关对象。虚拟主机是共享相同的身份认证和加密环境的独立服务器域。客户端应用程序在登录到服务器之后,可以选择一个虚拟主机。

交换器(Exchange):服务器中的实体,用来接收生产者发送的消息并将这些消息路由给服务器中的队列。

交换器类型(Exchange Type):基于不同路由语义的交换器类。

消息队列(Message Queue):一个命名实体,用来保存消息直到发送给消费者。

绑定器(Binding):消息队列和交换器之间的关联。

绑定器关键字(Binding Key):绑定的名称。一些交换器类型可能使用这个名称作为定义绑定器路由行为的模式。

路由关键字(Routing Key):一个消息头,交换器可以用这个消息头决定如何路由某条消息。

连接(Connection):一个网络连接,比如TCP/IP套接字连接。

会话(Session):端点之间的命名对话。在一个会话上下文中,保证“恰好传递一次”。

信道(Channel):多路复用连接中的一条独立的双向数据流通道。为会话提供物理传输介质。

客户端(Client):AMQP连接或者会话的发起者。AMQP是非对称的,客户端生产和消费消息,服务器存储和路由这些消息。

服务器(Server):接受客户端连接,实现AMQP消息队列和路由功能的进程。也称为“消息代理”。

端点(Peer):AMQP对话的任意一方。一个AMQP连接包括两个端点(一个是客户端,一个是服务器)。

搭档(Partner):当描述两个端点之间的交互过程时,使用术语“搭档”来表示“另一个”端点的简记法。比如我们定义端点A和端点B,当它们进行通信时,端点B是端点A的搭档,端点A是端点B的搭档。




片段集(Assembly):段的有序集合,形成一个逻辑工作单元。

段(Segment):帧的有序集合,形成片段集中一个完整子单元。

帧(Frame):AMQP传输的一个原子单元。一个帧是一个段中的任意分片。

控制(Control):单向指令,AMQP规范假设这些指令的传输是不可靠的。

命令(Command):需要确认的指令,AMQP规范规定这些指令的传输是可靠的。

异常(Exception):在执行一个或者多个命令时可能发生的错误状态。

类(Class):一批用来描述某种特定功能的AMQP命令或者控制。

消息头(Header):描述消息数据属性的一种特殊段。

消息体(Body):包含应用程序数据的一种特殊段。消息体段对于服务器来说完全透明——服务器不能查看或者修改消息体。

消息内容(Content):包含在消息体段中的的消息数据。

持久存储(Durable):一种服务器资源,当服务器重启时,保存的消息数据不会丢失。

临时存储(Transient):一种服务器资源,当服务器重启时,保存的消息数据会丢失。

持久化(Persistent):服务器将消息保存在可靠磁盘存储中,当服务器重启时,消息不会丢失。

非持久化(Non-Persistent):服务器将消息保存在内存中,当服务器重启时,消息可能丢失。