RabbitMQ (入门概念篇)

RabbitMQ是基于AMQP(Advanced Message Queuing Protocol)的可复用的消息系统,AMQP提供统一消息服务的应用层的标准高级消息队列协议,用于消息中间件的设计。

RabbitMQ的开发语言是Erlang,可以使完全不同的Application共享数据。是程序中解耦的一大利器,当程序中一些不需要及时返回且耗时时间比较长的逻辑,可以使用MQ进行异步处理,缩短了请求响应时间,吞吐就大了。

基本概念

1:Host :Server服务器主机

          (name主机名,port端口,VirtualHost虚拟主机,username用户名,password密码)

2:Exchange:交换机,用于指定消息按照什么规则,路由到什么队列。

               (name,交换机名称,type交换机类型,Durable是否持久化,AutoDelete是否自动删除)

      其中交换机类型包括(topic,direct,fanout,x-delayed-message)

3:Queue :队列,即消息的容器,每个消息都可以生产到一个或多个队列。

     (name:队列名称,Durable是否持久化,AutoDelete是否自动删除,NoAck是否消息确认)

4:RoutingKey:路由关键字。Exchange根据此进行消息投递。

5:Binding:绑定,按照路由关键字把Exchange和Queue绑定关联起来。

6:Channel:消息的传输信道。每一个连接,可建立多Channel,每个Channel代表一个会话。

7:Producer:生产者。发送消息的程序。

8:Consumer:消费者。接收消息的程序。

生产/消费的流程

  1:根据Server主机地址,端口,虚拟主机,账号和密码 设置ConnectionFactory

  2:创建新的连接 NewConnection

  3:创建通道 CreateChannel

  4:声明创建队列QueueDeclare

  5:发送消息Publish/接收消息Consume

  6:关闭通道CloseChannel

  8:关闭连接CloseConnection

原文地址:https://www.cnblogs.com/localhost2016/p/8875843.html

时间: 2024-08-01 16:49:17

RabbitMQ (入门概念篇)的相关文章

RabbitMQ入门与使用篇

介绍 RabbitMQ是一个由erlang开发的基于AMQP(Advanced Message Queue)协议的开源实现.用于在分布式系统中存储转发消息,在易用性.扩展性.高可用性等方面都非常的优秀.是当前最主流的消息中间件之一. RabbitMQ的官方 概念: Brocker:消息队列服务器实体. Exchange:消息交换机,指定消息按什么规则,路由到哪个队列. Queue:消息队列,每个消息都会被投入到一个或者多个队列里. Binding:绑定,它的作用是把exchange和queue按

Linux Capabilities 入门教程:概念篇

原文链接:Linux Capabilities 入门教程:概念篇 Linux 是一种安全的操作系统,它把所有的系统权限都赋予了一个单一的 root 用户,只给普通用户保留有限的权限.root 用户拥有超级管理员权限,可以安装软件.允许某些服务.管理用户等. 作为普通用户,如果想执行某些只有管理员才有权限的操作,以前只有两种办法:一是通过 sudo 提升权限,如果用户很多,配置管理和权限控制会很麻烦:二是通过 SUID(Set User ID on execution)来实现,它可以让普通用户允许

【转帖】H5 手机 App 开发入门:概念篇

H5 手机 App 开发入门:概念篇 http://www.ruanyifeng.com/blog/2019/12/hybrid-app-concepts.html 作者: 阮一峰 日期: 2019年12月10日 感谢 腾讯课堂NEXT学院 赞助本站,腾讯官方的前端课程 免费试学. 手机现在是互联网的最大入口.根据<中国互联网报告>,手机网民已经超过8亿,人均每天上网三个多小时. 毫不奇怪,手机应用软件(mobile application,简称 mobile App)的开发工程师供不应求,一

RabbitMQ基本概念和使用

RabbitMQ是一个消息代理,核心原理:发送消息,接收消息. RabbitMQ主要用于组件之间的解耦,消息发送者无需知道消息使用者的存在,反之亦然.   单向解耦                                        双向解耦(如:RPC) 例如一个日志系统,很容易使用RabbitMQ简化工作量,一个Consumer进行消息的正常处理,另一个Consumer复制对消息进行日志记录,只要在程序中指定两个Consumer所监听的queue以相同的方式绑定到同一个exchan

2.RABBITMQ 入门 - WINDOWS - 生产和消费消息 一个完整案例

关于安装和配置,见上一篇 1.RABBITMQ 入门 - WINDOWS - 获取,安装,配置 公司有需求,要求使用winform开发这个东西(消息中间件),另外还要求开发一个日志中间件,但是也是要求做成win form的,这明显不合理,因为之前,服务器上我已经放置了一个  短信的winform的服务.那么到后期的话,登录服务器之后,全是 一个个的窗体挂在那儿,这明显合不合常理,但是领导要求这么玩,也没办法, 因为卧虎要负责的是消费 消息,所以重点说明 消费端 该案例的接收端,源自网上的代码片段

NET下RabbitMQ实践[配置篇]

这个系列目前计划写四篇,分别是配置,示例,WCF发布,实战.当然不排除加餐情况.  介绍: rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统.他遵循Mozilla Public License开源协议.采用 Erlang 实现的工业级的消息队列(MQ)服务器. RabbitMQ的官方站:http://www.rabbitmq.com/          AMQP(高级消息队列协议) 是一个异步消息传递所使用的应用层协议规范,作为线路层协议,而不是API(例如JMS),A

智普教育Python视频教程之入门基础篇,python笔记

智普教育Python视频教程之入门基础篇,python笔记 print id()内存地址 type()变量类型 windows命令行下edit命令 python数据类型不需要指定类型 定义hostname="www.google.com" 结果运行后总是告诉我NameError: name 'socket' is not defined 哪位帮我分析一下,怎么改才对 没用过socket,不过你试着在第一行加入 import socket C:\>notepad somefile.

java学习之入门扫盲篇

概要 最近这几天开始进入java的学习,接触到了好多不是很了解的概念,像JDK.JRE.JVM.GC等等这些,放到这里来进行下扫盲. java java是一种面向对象程序设计语言和java平台的总称,即java包括java语言和java平台. java语言 java语言跟我们以前接触过的C#.C++语言一样都是面向对象的语言,拥有面向对象语言的基本特点,java语言也有它自身的特点,例如增加了垃圾回收的一些特点.同时java语言的编程风格跟C#.C++也特别的相似,所有java语言是比较易学的.

RabbitMQ入门:主题路由器(Topic Exchange)

上一篇博文中,我们使用direct exchange 代替了fanout exchange,这次我们来看下topic exchange. 一.Topic Exchange介绍 topic exchange和direct exchange类似,都是通过routing key和binding key进行匹配,不同的是topic exchange可以为routing key设置多重标准. direct路由器类似于sql语句中的精确查询:topic 路由器有点类似于sql语句中的模糊查询. 还记得吗?我