AMQP-0-9-1中文规范

论坛 期权论坛     
选择匿名的用户   2021-5-23 02:00   95   0
<div class="blogpost-body" id="cnblogs_post_body">
<div class="postTitle">
  AMQP-0-9-1中文规范
</div>
<div>
  1 概述
</div>
<div>
  1.1 本文档的目标
</div>
<div>
  此文档定义了一个网络协议-高级消息队列协议(AMQP), 它使一致的客户端程序可以与一致的消息中间件服务器进行通信.
</div>
<div>
  我们面对的是这个领域有经验的技术读者,同时还提供了足够的规范和指南.技术工程师可以根据这些文档,在任何硬件平台上使用各种编程语言来构建遵从该协议的解决方案。
</div>
<div>
  1.2 摘要
</div>
<div>
  1.2.1 为什么使用AMQP?
</div>
<div>
  AMQP在一致性客户端和消息中间件(也称为&#34;brokers&#34;)之间创建了全功能的互操作.
</div>
<div>
  我们的目标是实现一种在全行业广泛使用的标准消息中间件技术,以降低企业和系统集成的开销,并且向大众提供工业级的集成服务。
</div>
<div>
  我们的宗旨是通过AMQP,让消息中间件的能力最终被网络本身所具有,并且通过消息中间件的广泛使用发展出一系列有用的应用程序.
</div>
<div>
  1.2.2 AMQP范围
</div>
<div>
  为了完全实现消息中间件的互操作性,需要充分定义网络协议和消息代理服务的功能语义。
</div>
<div>
  因此,AMQP通过如下来定义了网络协议(AMQP是协议!)和服务端服务:
</div>
<ol><li>一套确定的消息交换功能,也就是“高级消息交换协议模型”。AMQP模型包括一套用于路由和存储消息的功能模块,以及一套在这些模块之间交换消息的规则。</li><li>一个网络线级协议(数据传输格式),AMQP促使客户端可使用AMQ模型来与服务器交互.</li></ol>
<div>
  可以只实现AMQP协议规范中的的部分语义,但是我们相信这些明确的语义有助于理解这个协议。
</div>
<div>
  1.2.3 高级消息队列模型(AMQ 模型)
</div>
<div>
  我们需要明确定义服务器语义,因为所有服务器实现都应该与这些语义保持一致性,否则就无法进行互操作. 因此AMQ 模型定义了一系列模块化组件和标准规则来进行协作. 有三种类型的组件可以连接服务器处理链来创建预期的功能:
</div>
<div>
  1. &#34;交换器(exchange)&#34; :接收来自发布者应用程序的消息,并基于任意条件(通常是消息属性和内容)将这些消息路由到消息队列(message queues).
</div>
<div>
  2.&#34;消息队列(message queue)&#34;:存储消息直到它们可以被消费客户端应用程序(或多线程应用程序)安全处理.
</div>
<div>
  3.&#34;绑定(binding)&#34;:定义了消息队列与交换器之间的关系,并提供了消息路由条件.
</div>
<div>
  使用这些模型我们可以很容易地模拟经典的存储转发队列和面向消息中间件的主题订阅概念. 我们还可以表示更为复杂的概念,例如:基于内容的路由,工作负载分配和按需消息队列。
</div>
<div>
  大致上讲, AMQP 服务器类似与邮件服务器, 每个交换器都扮演了消息传送代理,每个消息队列都作为邮箱,而绑定则定义了每个传送代理中的路由表.发布者发送消息给独立的传送代理,然后传送代理再路由消息到邮箱中.消费者从邮箱中收取消息. 相比较而言,在AMQP之前的许多中间件系统中,发布者直接发送消息到独立收件箱(在存储转发队列的情况下),或者发布到邮件列表中 (在主题订阅的情况下).
</div>
<div>
  区别就在于用户可以控制消息队列和交换器之间的绑定规则,这可以做很多有趣的事情,比如定义一条规则:“将所有包含这样消息头的消息都复制一份再发送到消息队列中”。
</div>
<div>
  AMQ模型是基于下面的需求来驱动设计的:
</div>
<div>
  1. 支持与主要消息产品相媲美的语义。.
</div>
<div>
  2. 提供与主要消息产品相媲美的性能水平.
</div>
<div>
  3. 允许通过应用程序使用服务器特定语义来编程.
</div>
<div>
  4.灵活性,可扩展性,简单性
</div>
<div>
  1.2.4 高级消息队列协议(AMQP)
</div>
<div>
  AMQP协议是具有现代特征的二进制协议: 它是多通道的, 协商的,异步的,安全的,便携的,自然的,高效的。 AMQP通常划分成两层:
  <br>
  <img alt="" height="403" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-a2e67201f948baff650e02b92b38af73.png" width="1183">
  <br>
  <br>
  <div>
   功能层( functional layer)定义了一系列命令(分成功能独立的逻辑类),可为应用程序做有用工作。
  </div>
  <div>
   传输层,将这些方法从应用程序应用搬到服务器并返回,它同时会处理通道复用,帧同步, 内容编码,心跳检测, 以及数据表示和错
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP