首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么AMQP是双向RPC协议?

AMQP(Advanced Message Queuing Protocol)是一种消息队列协议,它被设计用于在分布式系统中进行可靠的消息传递。AMQP之所以被称为双向RPC(Remote Procedure Call)协议,是因为它支持双向的消息通信。

首先,AMQP允许客户端和服务器之间进行双向的消息传递。客户端可以向服务器发送请求消息,服务器可以接收并处理这些请求,并将响应消息发送回客户端。这种双向通信模式使得AMQP可以用于实现RPC,即客户端可以通过发送请求消息来调用远程服务器上的方法,并获取返回的响应消息。

其次,AMQP支持发布/订阅模式。在这种模式下,消息的发送者称为发布者,消息的接收者称为订阅者。发布者可以将消息发送到一个或多个主题(topic),而订阅者可以订阅感兴趣的主题并接收相应的消息。这种模式下的消息通信也是双向的,发布者可以向订阅者发送消息,而订阅者也可以向发布者发送反馈或其他消息。

AMQP的双向通信特性使得它非常适合在分布式系统中进行远程过程调用和消息传递。它可以用于构建可靠的、高性能的系统架构,实现各种应用场景,如实时通信、任务分发、事件驱动架构等。

腾讯云提供了一款基于AMQP协议的消息队列产品,称为消息队列 CMQ(Cloud Message Queue)。CMQ提供了高可靠性、高可用性的消息传递服务,支持亿级消息堆积和百万级消息并发。您可以通过以下链接了解更多关于腾讯云消息队列 CMQ的信息:https://cloud.tencent.com/product/cmq

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Web | 什么 RPC 消息协议 ?

什么 RPC 消息协议? 消息协议的概念听起来非常的高大上,但是消息协议到底指代的是什么,看概念很难理解的。 消息协议指通讯双方传输的数据(消息)如何表达描述的。...接下来我用一张图来讲讲我对消息协议的理解: 之前的文章我们已经明白了 RPC 就是远端过程调用,在上面这张图中客户端发起调用的一方,服务端程序被调用的一方。...在这次简单的远端过程调用中,需要在网络中传递的调用的方法名、参数1、参数2以及方法的执行结果,而开头说的消息协议指的就是这些需要在网络中传递的数据它的表现形式/组成形式是什么样的。...这里就需要客户端按照特定的格式将这些数据打包成一个整体,这里的特定格式指的就是消息协议。 消息协议应该如何设计? 消息协议在设计的过程中应该尽量达成以下两个目标,并且注意三个问题。...,然后使用 RPC 实现彼此调用。

1.1K20

既然有HTTP协议为什么还要有RPC

我想起了我刚工作的时候,第一次接触RPC协议,当时就很懵,我HTTP协议用的好好的,为什么还要用RPC协议? 于是就到网上去搜。...每个特点展开都能聊一篇文章,而今天我们需要关注的基于字节流这一点。 字节流可以理解为一个双向的通道里流淌的数据,这个数据其实就是我们常说的二进制数据,简单来说就是一大堆 01 串。...基于TCP协议的HTTP和RPC协议 到这里,我们回到文章标题的问题。 既然有HTTP协议为什么还要有RPC? 其实,TCP70年代出来的协议,而HTTP90年代才开始流行的。...所以我们该问的不是既然有HTTP协议为什么要有RPC,而是为什么RPC还要有HTTP协议。 那既然有RPC了,为什么还要有HTTP呢?...为什么既然有了HTTP2,还要有RPC协议? 这个由于HTTP22015年出来的。那时候很多公司内部的RPC协议都已经跑了好些年了,基于历史原因,一般也没必要去换了。

77520
  • 有了 HTTP 协议为什么还要 RPC 协议,两者有什么区别?

    我们都知道 HTTP 协议在传输层协议 TCP 之上的,所以效率来看的话,RPC 当然要更胜一筹啦!下面来具体说一说 RPC 服务和 HTTP 服务。...实际应用过程中,五层协议结构里面没有表示层和会话层的。应该说它们和应用层合并了。 我们应该将重点放在应用层和传输层这两个层面。因为 HTTP 应用层协议,而 TCP 传输层协议。...好,知道了网络的分层模型以后我们可以更好地理解为什么 RPC 服务相比 HTTP 服务要 Nice 一些!...我们知道 HTTP2.0 基于二进制的 HTTP 协议升级版本,目前各大浏览器都在快马加鞭的加以支持。 这个 RPC 框架基于 HTTP 协议实现的,底层使用到了 Netty 框架的支持。...③Dubbo 阿里集团开源的一个极为出名的 RPC 框架,在很多互联网公司和企业应用中广泛使用。协议和序列化框架都可以插拔及其鲜明的特色。

    9.8K00

    为什么说 TCP 协议可靠的?

    TCP 协议 TCP/IP 协议栈中的传输层的协议,TCP协议又叫传输控制协议(Transport Control Protocal)。众所周知,它是一个可靠协议。...那 TCP 协议如何保证不丢包呢?这个本文重点讲述的内容。 1 TCP 协议的作用 ISO(国际标准化组织)曾提出一个 OSI 七层模型。...其中协议有 ARP 协议(地址解析协议)、RARP 协议(反向地址转换协议) 网际层:负责数据的传输,路由以及地址选择。最主要的协议 IP 协议。 传输层:确认数据传输以及进行纠错处理。...常见的应用层协议有 HTTP 协议、FTP 协议(文件传输协议)、SMTP 协议(简单邮件传输协议)等 2 TCP 协议通信特点 TCP 协议实现端口到端口的通信。...3 TCP 实现可靠通信的两种方式 我们都知道 IP 协议“不太靠谱”。因为 IP 协议不可靠的,所以 IP 数据包可能在传输过程中发生错误或者丢失。

    4.4K21

    程序员,你也该懂系统集成之服务集成交互技术——网络协议了吧?

    ● gRPC:由Google开发,一款语言中立、平台中立、开源的远程过程调用协议。基于HTTP2标准设计,具有诸如双向流、流控、头部压缩、单TCP连接上的多复用请求等特性。...● AMQP:全称Advanced Message Queuing Protocol,一个进程间传递异步消息的协议AMQP使用长连接,一个使用TCP提供可靠投递的应用层协议。...RabbitMQ就是遵从AMQP协议开发的一个RPC远程调用框架。RabbitMQ中的交换器、交换器类型、队列、绑定、路由键等都遵循AMQP中相应的概念。...● RSocket:一种用于反应式应用程序的新网络协议第七层语言无关的应用网络协议一种基于Reactive Streams背压的双向、多路复用、消息的二进制协议。...○ channel:双向异步通信,也就是支持Channel。 选择适合你的协议 上述应用层协议我们精心选择的微服务可能会使用的网络协议,不同的网络协议适合不同的应用场景。

    34520

    RPC 通信协议吗 ?→ 我们来看下它的演进过程

    RPC 就是实现远程方法调用的方式之一;说 RPC 不是协议,可能很多小伙伴难以置信,以为我在骗你们 ?   ...这些协议孰好孰坏,本文不做过多阐述,这里提出来只是想告诉大家:序列化与反序列化协议 RPC 中的重要一环 总结   1、RPC 的演进过程 ?   ...2、RPC 的组成要素     三要素:动态代理、序列化与反序列化协议、网络通信协议     网络通信协议可以是 TCP、UDP,也可以是 HTTP 1.x、HTTP 2,甚至有能力可以是自定义协议   ...3、RPC 框架     RPC 不等同于 RPC 框架,RPC 一个概念,一个分布式通信方式     基于 RPC 产生了很多 RPC 框架:Dubbo、Netty、gRPC、BRPC、Thrift...、JSON-RPC 等等     RPC 框架对 RPC 进行了功能丰富,包括:服务注册、服务发现、服务治理、服务监控、服务负载均衡等功能   现在回到标题:RPC 通信协议吗 ?

    77310

    TCP协议为什么3次握手,4次挥手

    TCP(Transport Control Protocol)一个传输层协议,提供Host-To-Host数据的可靠传输,支持全双工一个连接导向的协议。...TCP/IP五层模型 应用层 传输层 网络层 数据链路层 物理层 TCP在传输层的协议,主要实现主机到主机通信,前提需要知道主机们的网络地址(IP地址),但是TCP不负责实际地址到地址的传输,因此TCP...协议把IP地址给底层的网络层处理。...会话应用层的概念,连接传输层的概念。 TCP一个双工协议,数据任何时候都可以双向传输。这就意味客户端和服务端可以平等地发送接收信息。...TCP一个连接向导的协议,设计有建立连接(握手)和断开连接(挥手)的过程。TCP没有设计会话(Session),因为会话应用层的行为。

    77100

    TCP协议为什么3次握手,4次挥手

    TCP(Transport Control Protocol)一个传输层协议,提供Host-To-Host数据的可靠传输,支持全双工一个连接导向的协议。...会话应用层的概念,连接传输层的概念。 TCP一个双工协议,数据任何时候都可以双向传输。这就意味客户端和服务端可以平等地发送接收信息。...TCP一个连接向导的协议,设计有建立连接(握手)和断开连接(挥手)的过程。TCP没有设计会话(Session),因为会话应用层的行为。...图片 TCP协议为什么3次握手,4次挥手 断开连接的过程(4次挥手) 可以类比建立连接的过程 1、客户端要求断开连接,会发送一个断开的请求,FIN。...图片 TCP协议为什么3次握手,4次挥手 总结,来说为什建立连接的时候3次握手,断开连接的时候4次挥手,说白了就是在握手的时候双方没有过多的事情,所以在服务端接收到客户端的请求后,立马又发送了一个建立连接的请求

    23000

    计网 - 传输层协议 TCP:TCP 为什么握手 3 次、挥手 4 次?

    TCP 的握手和挥手 TCP 协议的基本操作 建立连接的过程(3次握手) 断开连接的过程(4 次挥手) 总结 Question TCP 为什么 3 次握手,4 次挥手? ?...无论应用开发、框架设计选型、做底层和优化,还是定位线上问题,只要碰到网络,就逃不开 TCP 协议相关的知识。 TCP 协议为什么握手 3 次,挥手却是 4 次?...最后,如果任何时刻数据都可以双向收发,这就是全双工,全双工需要大于 1 条线路 。 当然这里的线路,一个抽象概念,你可以并发的处理信号,达到模拟双工的目的。...TCP 一个双工协议,数据任何时候都可以双向传输。这就意味着客户端和服务端可以平等地发送、接收信息。正因为如此,客户端和服务端在 TCP 协议中有一个平等的名词——Host(主机)。...---- Question TCP 为什么 3 次握手,4 次挥手? 让我们来总结下: TCP 为什么 3 次握手,4 次挥手?

    48420

    PHP高级编程之消息队列原理与实现方法详解

    什么消息队列 消息队列(英语:Message queue)一种进程间通信或同一进程的不同线程间的通信方式 2. 为什么使用消息队列 消息队列技术分布式应用间交换信息的一种技术。...MQ与RPC有什么不同? MQ通常传递无规则协议,这个协议由用户定义并且实现存储转发;而RPC通常是专用协议,调用过程返回结果。 4....如果大型团队,通常是定义好消息协议,然后各自开发各自的部分,例如一个团队负责写推送协议部分,另一个团队负责写接收与处理部分。 那么为什么我们不讲消息队列框架化呢?...怎么实现消息队列框架 下面作者开发的一个SOA框架,该框架提供了三种接口,分别是SOAP,RESTful,AMQP(RabbitMQ),理解了该框架思想,你很容易进一步扩展,例如增加XML-RPC,...消息队列协议 消息协议一个数组,将数组序列化或者转为JSON推送到消息队列服务器,这里使用json格式的协议

    44230

    PHP高级编程之消息队列

    什么消息队列 消息队列(英语:Message queue)一种进程间通信或同一进程的不同线程间的通信方式 2. 为什么使用消息队列 消息队列技术分布式应用间交换信息的一种技术。...MQ与RPC有什么不同? MQ通常传递无规则协议,这个协议由用户定义并且实现存储转发;而RPC通常是专用协议,调用过程返回结果。 4....如果大型团队,通常是定义好消息协议,然后各自开发各自的部分, 例如一个团队负责写推送协议部分,另一个团队负责写接收与处理部分。 那么为什么我们不讲消息队列框架化呢?...怎么实现消息队列框架 下面作者开发的一个SOA框架,该框架提供了三种接口,分别是SOAP,RESTful,AMQP(RabbitMQ),理解了该框架思想,你很容易进一步扩展,例如增加XML-RPC,...消息队列协议 消息协议一个数组,将数组序列化或者转为JSON推送到消息队列服务器,这里使用json格式的协议

    1.4K40

    消息中间件RabbitMQ

    消息中间件RabbitMQ 1.什么消息中间件 MQ全称为Message Queue,消息队列应用程序和应用程序之间的通信方法。 为什么使用MQ?...AMQP 和 JMS MQ消息通信的模型;实现MQ的大致有两种主流方式:AMQP、JMS。...3.1 AMQP AMQP 一种协议,更准确的说是一种 binary wire-level protocol(链接协议)。...3.3 AMQP 与 JMS 区别 JMS 定义了统一的接口,来对消息操作进行统一; AMQP通过规定协议来统一数据交互的格式 JMS 限定了必须使用Java语言; AMQP只是协议,不规定实现方式...协议,erlang 语言开发,稳定性好 RocketMQ:基于 JMS,阿里巴巴产品 Kafka:类似MQ的产品;分布式消息系统,高吞吐量 RabbitMQ由erlang语言开发,基于AMQP(Advanced

    52220

    RabbitMQ详解

    在分布式的系统中,消息队列也会被用在很多其它的方面,比如:分布式事务的支持,RPC的调用等等。...RabbitMQ介绍 RabbitMQ实现AMQP(高级消息队列协议)的消息中间件的一种,最初起源于金融系统,用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。...RabbitMQ主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。保存这个数据。...AMQP,即Advanced Message Queuing Protocol,高级消息队列协议应用层协议的一个开放标准,为面向消息的中间件设计。...AMQP的主要特征面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。

    65010

    【我们一起来学 RabbitMQ 一 】RabbitMQ 的基本介绍

    Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。...AMQP 是什么? 高级消息队列协议,它使得遵从该规范的客户端应用和消息中间件服务器的全功能互操作成为可能 客户端应用可以通过这个协议与消息代理和它实现的 AMQP 模型进行交互通信 MQ 是什么?...Banding 绑定,用于消息队列和交换机之间的关联 一个绑定就是基于路由键将交换机和消息队列连接起来的路由规则,所以可以将交换器理解成一个由绑定构成的路由表 Channel 信道,多路复用连接中的一条独立的双向数据流通道...信道建立在真实的TCP连接内虚拟链接,AMQP命令都是通过新到发出去的,不管发布消息、订阅队列还是接收消息,这些动作都是通过信道完成的,为了复用一条TCP连接 Connection 网络连接,例如一个...客户端监听RPC响应队列,接收到RPC调用结果 总结 RabbitMQ一套开源(MPL)的消息队列服务软件 RabbitMQ 组件中都包含如下部分 生产者 消费者 broker 实体 virtual

    48660

    MQ消息中间件(工作+面试)

    AMQP协议介绍 AMQP,即Advanced Message Queuing Protocol,高级消息队列协议应用层协议的一个开放标准,为面向消息的中间件设计。...JMS早期消息中间件进行标准化的一个尝试,它仅仅是在API级进行了规范,离创建互操作能力还差很远。 与JMS不同,AMQP一个Wire级的协议,它描述了在网络上传输的数据的格式,以字节为流。...7)Zyre 一个Broker,实现了RestMS协议AMQP协议,提供了RESTful HTTP访问网络AMQP的能力。...(a) 分布计算环境/远程过程调用 (DCE/RPC) RPCDCE的成分,一个由开放软件基金会(OSF)发布的应用集成的软件标准。...4.通道(Channel) 通道两个管理器之间的一种单向点对点的的通信连接,如果需要双向交流,可以建立一对通道。

    2.4K70

    消息中间件的发展史一个有趣的历史故事

    RocketMQ在实现上借鉴了Kakfa的思想,所以也不支持AMQP协议,并且你会发现在Kafka和RocketMQ中都有类似Topic和Consumer Group的概念,而这些概念在AMQP协议不存在的...AMQP协议详解 前面说到消息中间件有2种协议,JMS和AMQP。...详细说一下AMQP协议,毕竟现在用RabbitMQ的公司还是很多的,要想学好RabbitMQ,AMQP协议必须要清楚的。...AMQP协议模型 上图AMQP协议中一个消息的流转过程,画的的很清楚,不详细介绍了。 AMQP核心概念 介绍一些AMQP协议常见的概念。...概念 解释 Server 又称Broker,接受客户端的连接,实现AMQP实体服务 Connection 一个网络连接,比如TCP/IP套接字连接 Channel 多路复用连接中的一条独立的双向数据流通道

    2.9K44

    面试时候说RPC协议?今天的面试就到这里,你先回去等通知吧。

    大家好,我程序员牛肉。 今天在刷订阅号的时候,搜了一下RPC。发现很多公众号都用“协议”来形容RPC。这在我看来明显不对的,RPC怎么能算是一种协议呢? 只说PRC或许不太够,也有点难理解。...LPC机制提供了面向报文传递的进程间通信,而LPC则是建立在这个基础上的高层机制,目的提供跨进程的过程调用。 简单介绍了一下LPC本地过程调用,那你猜一下RPC的R哪个单词呢?...当然Remote了。 RPC(Remote Procedure Call,远程过程调用) PRC客户端将调用一个本地方法,而这个本地方法则是负责透明的与远程服务端进行过程间通信。...PRC根本就谈不上所谓的协议,他只是一个“调用远程服务”的行为而已。...通过我的介绍,相信你已经了解“什么RPC”,下次可不要说RPC一个协议了,他就是一个“屏蔽网络细节来调用远程方法”的行为。 所以我觉得其实“Http”也算是一种RPC的实现方案,不知道你怎么看呢?

    13010

    rabbitmq使用mqtt协议

    IOT)平台,rabbitmq 不是消息队列吗,原来rabbitmq有两种协议,消息队列用的AMQP协议,而用在智能硬件中的MQTT协议。...RabbitMQ实现AMQP(高级消息队列协议)的消息中间件的一种,RabbitMQ主要是为了实现系统之间的双向解耦而实现的。当生产者大量产生数据时,消费者无法快速消费,那么需要一个中间层。...AMQP,即Advanced Message Queuing Protocol,高级消息队列协议应用层协议的一个开放标准,为面向消息的中间件设计。...AMQP的主要特征面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。 RabbitMQ一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端。...MQTT协议为什么用在在物联网(IOT) 在物联网(IOT)环境中,设备会很受制于环境的影响,比如带宽低、网络延迟高、网络通信不稳定等,显然异步消息协议更为适合IOT应用程序。

    3.2K10

    java输出结果保留两位小数,经典好文

    基础知识 RabbitMQ一个开源的消息代理和队列服务器,用来通过普通协议在完全不同的应用之间共享数据,它是使用Erlang语言来编写的,并且基于AMQP协议的; RabbitMQ高性能的原因 Erlang...协议 什么AMQP高级消息队列协议 AMQP(Advanced Message Queueing Protocol)定义:具有现代特征的二进制协议。...一个提供统一消息服务的应用层标准高级消息队列协议应用层协议的一个开放标准,为面向消息的中间件设计 AMQP协议模型: Publisher 推送消息前先与Server建立连接,找到Virtual...发送者将消息发送给交换机,这样就能完成消息的推送了 整体架构图 基本概念 Broker 消息队列服务进程,接收客户端的连接,实现AMQP实体服务。...客户端(RPC调用方)监听RPC响应队列,接收到RPC调用结果。

    33620
    领券