RabbitMQ程序员架构算法设计模式和编程理论

RabbitMQ-理解消息通信-消费者和生产者

2017-03-30  本文已影响605人  GhostStories

消费者和生产者 消息 信道

欢迎访问本人博客:http://wangnan.tech

消费者和生产者

生产者

生产者创建消息,然后发布到代理服务器

消息

什么是消息呢?
消息包含两部分:有效载荷(payload)和标签(label)

消费者

消费者很容易理解,他们连接到代理服务器上,并订阅到队列上,把消息想象成一个具名邮箱,每当消息到达特定邮箱时,RabbitMQ会将其发送给其中一个订阅的/监听消费者

当消费者接受到消息是,它只得到消息的一部分:有效载荷

信道

你必须首先连接到Rabbit,才能消费或者发布消息,你在应用程序和Rabbit代理服务器之间创建一条TCP连接,一旦TCP连接打开,应用程序就可以创建一条AMQP信道

信道是建立在“真实的”tcp连接内的虚拟连接

为什么不直接通过TCP连接发送AMQP命令?
主要原因是对于操作系统来说建立和销毁TCP会话是非常昂贵的开销

如果我们为所有线程只使用一条TCP连接,但又确保每个线程的私密性,就像拥有独立连接一样的话,那不就非常完美了

线程启动后会在现成的连接上创建一条信道,也就获得了连接Rabbit上的私密通信路径,而不会给操作系统的TCP栈造成额外负担,在一条TCP连接上创建多少条信道是没有限制的,把它想象成一束光纤电缆就可以了

有了AMQP,你可以灵活的使用多个信道来满足应用程序的需求,而不会有众多tcp连接的开销

总结

消息通信,特别是AMQP,可以被当做加强版的传输层

当你理解了这些概念,你就吧RabbitMQ看做软件的路由器

(注:内容整理自《RabbitMQ实战》)

上一篇下一篇

猜你喜欢

热点阅读