RabbitMQ从入门到精通----基本概念

理解消息通信

当我们提到消息通信时,经常会联想到向微信以及QQ这些即时通信的工具,不过这些不是我们所要讨论的RabbitMQ消息通信,二者之间有着很大的区别,虽然RabbitMQ与前者有着类似的地方,但是RabbitMQ更为灵活,向邮箱一类的通信工具,具有着一定的格式,但是AMQP(高级消息队列)更为灵活,消息没有固定的结构,同时可以存储二进制数据。

生产者与消费者

当我们学习多线程的时候,最经典的问题就是生产者以及消费者,二者有着一定的耦合数据,那么我们今天讨论的RabbitMQ可以理解为数据的存储容器,他不负责生产数据,同时我们也可以理解为,RabbitMQ是一个路由的作用负责接收生产者的数据,同时负责发送数据给消费者。

生产者:创建信息,发送给RabbitMQ,消息包含两部分内容:有效载荷(payload)和标签(label),有效载荷就是我们所要传递的数据,标签即为描述有效载荷的信息,RabbitMQ根据标签,来决定谁将获得信息的拷贝。

消费者:它们链接到代理服务器RabbitMQ上,然后订阅到队列( quene)上,把消息队列想象为特定的邮箱,每当消息到达特定的邮箱的时候,RabbitMQ或将其发送给一个订阅的消费者上面。

理解起来非常简单,我们可以把它想象成为一个特别大的通道,同时RabbitMQ为一个转送站, 负责将将生产者的数据发送给特定的消费者,生产者以及消费者之间的连接也就是我们经常提到的主题(topic)。

当我们要使用RabbitMQ的时候生产者以及消费者都需要链接到RabbitMQ上,你的应用程序和RabbitMQ程序之间创建一条TCP连接,一旦TCP连接打开之后,应用程序就可以创建AMQP信道,信道是建立在TCP连接之上,每条信道都会有唯一的ID,AMQP库进行保存,不论发送信息还是接受信息都是建立在信道的基础上,在信道上进行传输。

信道的作用:避免过多的TCP连接,当信息并发量较大的时候,如果都采用TCP链接则会创建过多的连接,很快就会碰到性能瓶颈,但是为了使每个线程具有私密性,各个不相互干扰,那么我们便创建了信道。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值