RubbitMQ_pomrub-程序员宅基地

技术标签: C#  RubbitMQ  

RubbitMQ


ConnectionFactory:与RabbitMQ服务器连接的管理器

Connection:与RabbitMQ服务器的连接

Channel:与Exchange的连接

Exchange:接受消息提供者(生产者)的消息,并根据消息的RoutingKey和Exchange绑定的BindingKey分配消息
ExchangeType: 如果是Direct类型,则会将消息中的RoutingKey与该Exchange关联的所有Binding中的BindingKey进行比较,如果相等,则发送到该Binding对应的Queue中。
如果是 Fanout 类型,则会将消息发送给所有与该 Exchange 定义过 Binding 的所有 Queues 中去,其实是一种广播行为
如果是Topic类型,则会按照正则表达式,对RoutingKey与BindingKey进行匹配,如果匹配成功,则发送到对应的Queue中。

Queue:存储消息接收者(消费者)的消息

RoutingKey:指定当前消息被谁接受

BindingKey:指定当前Exchange下,什么样的RoutingKey会被下派到当前绑定的Queue中

Broker:简单来说就是消息队列服务器实体。
Exchange:消息交换机,它指定消息按什么规则,路由到哪个队列。
Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
Routing Key:路由关键字,exchange根据这个关键字进行消息投递。
vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
producer:消息生产者,就是投递消息的程序。
consumer:消息消费者,就是接受消息的程序。
channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。

消息队列的使用过程大概如下:

(1)客户端连接到消息队列服务器,打开一个channel。
(2)客户端声明一个exchange,并设置相关属性。
(3)客户端声明一个queue,并设置相关属性。
(4)客户端使用routing key,在exchange和queue之间建立好绑定关系。
(5)客户端投递消息到exchange。

持久化

  • 队列持久化需要在声明队列时添加参数 durable=True,这样在rabbitmq崩溃时也能保存队列
  • 仅仅使用durable=True ,只能持久化队列,不能持久化消息
  • 消息持久化需要在消息生成时,添加参数 properties=pika.BasicProperties(delivery_mode=2)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/lansedongtianmengfei/article/details/102620674

智能推荐

Excel和Python求解线性规划问题_为啥python求出的指派问题和excel求出的值不一样-程序员宅基地

文章浏览阅读863次,点赞2次,收藏7次。文章目录一、线性规划的基本思想二、Excel求解线性规划三、Python 编程实现【scipy库】四、参考????一、线性规划的基本思想为求解决策变量,需要将目标函数、约束条件表达为决策变量的函数式,若约束条件和目标函数都是线性的,即表示約束条件的数学式子都是线性等式或线性不等式,表示问题最优化指标的目标函数都昌线性函数,则该问题就是线性规划的问题。例:已知 {x≤0x+2y≥0x−2y+4≥0\left\{\begin{aligned} x\leq 0 \\ x+2y \geq 0 \\ x-2_为啥python求出的指派问题和excel求出的值不一样

解决跨域问题的java工具类_java第三方跨域工具类-程序员宅基地

文章浏览阅读249次。import org.apache.juli.logging.Log;import org.apache.juli.logging.LogFactory;import org.apache.tomcat.util.res.StringManager;import org.springframework.core.Ordered;import org.springframework.cor..._java第三方跨域工具类

_Container_base12-程序员宅基地

文章浏览阅读3.1k次。_Container_base12当看到list的源码的时候发现顶层还有这个东东,就在这里也记录一下文件中的位置#include <xutility>大致结构//listnod继承的类型在这里定义的typedef _Container_base12 _Container_base;typedef _Iterator_base12 _Iterator_base;//...__container_base12

Matlab极坐标系(Polarplot)常用设置_matlab 极坐标-程序员宅基地

文章浏览阅读4w次,点赞70次,收藏277次。记录程序人生环境:Win 10最近找关于matlab中极坐标旋转的设置方法,发现网上大多方法都不太实用。这里整理了关于polarplot的相关设置以及对极坐标刻度进行旋转的实用方法。具体步骤:1 . 新建极坐标系polarplot(theta, rho) % theta表示的角度,rho是对应的半径。例:theta= -2*pi:0.001:2*pi;A=1-sin(theta);polarplot(theta,A,'b')2 . 设置极坐标系字体大小p_matlab 极坐标

梯度下降法和(拟)牛顿法区别及介绍-程序员宅基地

文章浏览阅读9.1k次,点赞10次,收藏28次。梯度下降法和牛顿法区别梯度下降法和牛顿法都是求解无约束最优化问题的常用方法。 假设f(x)f(x)f(x)为RnRn\mathbf{R}^n上具有一阶连续偏导数的函数,要求姐的无约束最优化问题为 minx∈Rn&amp;amp;amp;amp;amp;amp;nbsp;f(x)minx∈Rn&amp;amp;amp;amp;amp;amp;nbsp;f(x)\min_{x \in \mathbf{R}^n} \ f(x) x∗x∗x^*表示目标函数的极小点。下面分别介绍梯度

短剧分销系统平台开发搭建,开发短剧分销系统,源码授权系统独立部署-程序员宅基地

文章浏览阅读479次,点赞9次,收藏3次。本文简要介绍了短剧分销系统的现状、施工过程、系统的功能和更新项目。想了解建立短剧分销系统的私人信息沟通。

随便推点

mac c语言 可视化,mac安装Redis可视化工具-Redis Desktop Manager-程序员宅基地

文章浏览阅读311次。Redis是一个超精简的基于内存的键值对数据库(key-value),一般对并发有一定要求的应用都用其储存session,乃至整个数据库。不过它公自带一个最小化的命令行式的数据库管理工具,有时侯使用起来并不方便。不过Github上面已经有了很多图形化的管理工具,而且都针对REDIS做了一些优化,如自动折叠带schema的key等。Redis Desktop Manager一款基于Qt5的跨平台Re..._mac rdm

实习周记-day6_实习周记博客园-程序员宅基地

文章浏览阅读206次。今天分析了一下项目结构,4个大模块,一个主要通信模块,一个底层处理模块,一个ui模块,一个自动化测试模块,看了通讯模块,最主要就是core跟rest小模块,理解项目最主要先看通调用过程,可以先用测试模块debug来查看调用过程,测试入口可能跟实际rest入口不同,但是可以很好的理解实际请求处理流程,看完处理流程再找入口就简单多了,每个人理解项目的方法不同,但是都是有一些通用技巧的。除了看项目之外,每日的排核酸真心累,打底一小时..._实习周记博客园

Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之ORACLE集群概念和原理(二)...-程序员宅基地

文章浏览阅读124次。ORACLE集群概念和原理(二)概述:写下本文档的初衷和动力,来源于上篇的《oracle基本操作手册》。oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总。然后形成体系的总结,一则进行回顾复习,另则便于查询使用。本图文文档亦源于此。阅读Oracle RAC安装与使用教程前,笔者先对这篇文章整体构思和形成进行梳理。由于阅读者知识储备层次不同,我将从Oracle RAC安装..._集群darts

【vue设计与实现】渲染器 1-渲染器与相应系统的结合&渲染器基本概念_innerhtml和渲染器-程序员宅基地

文章浏览阅读354次。由于首次渲染时已经把oldVnode渲染到container内了,所以再次调用renderer.render函数并尝试渲染newVnode的时候,就不能简单的执行挂载动作了。这里,先暂时将渲染器限定在DOM平台,既然渲染器用来渲染真实DOM元素,那么严格来说,下面的函数就是一个合格的渲染器。渲染器就是用来执行渲染任务的,渲染器不仅能够渲染真是DOM元素,还是框架跨平台能力的关键。关于这里为什么用了一个createRender的函数,其实渲染器和渲染的概念是不同的,这就是响应系统和渲染器之间的关系。..._innerhtml和渲染器

GO语言学习之路10_golang replace -1-程序员宅基地

文章浏览阅读122次。2022/02/01package mainimport ( "fmt" "strconv" "strings")//1.字符串中常用的系统函数func main() { //*** 1.1 统计字符串的长度,按字节 len(str) str1 := "hello中国" //utf-8 ASCII字符占一个字节 一个汉字占三个字节 fmt.Println("str len = ", len(str1)) // 11 //*** 1._golang replace -1

【硬件设计】模拟电子基础三--集成运算放大电路_设计一个集成运算放大器-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏46次。本篇讲述集成运算放大电路的原理以及运用_设计一个集成运算放大器

推荐文章

热门文章

相关标签