温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

rabbitmq概念是什么

发布时间:2021-12-23 13:45:44 来源:亿速云 阅读:141 作者:iii 栏目:云计算

这篇文章主要讲解了“rabbitmq概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“rabbitmq概念是什么”吧!

首先,装好RMQ,且激活了Web管理服务之后(需要先暂停服务,然后重启,看帖子),就可以通过http://localhost:15672来访问了(用户名/密码是:guest/guest,这个虽然叫guest但是确实超级管理员权限)。

这个网页其实很有意思,到目前为止,我觉得非常有用的内容是,他里面可以看到你声明的Queue,Exchange,RoutingKey(这个要点击某个Exchange才能看到)。看到这些有什么用呢?最重要的一点就是,他们是真实存在的!而且存在于RMQ服务器上!不存在于Producer,也不存在于Consumer。换句话说,他们不会随着你的程序的消亡而消亡!(当然你程序让他们死,他们当然会死,我指的是一般情况。)好,在展开一下,假如你的程序里面声明了一个不会自动消亡的Queue和一个Exchange,那么第一次运行,这2个对象就被创建出来了,那么他们就永远存在,第二次运行,你就不必再声明了。这就是为什么,RabbitMQ.Client里面某些参数都是字符串,而不是一般类库的对象实例。

那个作者其实没有明确交代清楚几个基本的概念:

  1. Consumer是直接从Queue里面取消息的,不用经过Exchange。这点要牢记,而且从所有取消息的API,只接受Queue的名字,就可以印证。

  2. Producer要发送消息,是不能直接往Queue里面发的,必须经过Exchange,而且发消息一定要指定RoutingKey。这个也可以从发消息的API得到印证。

  3. Exchange和Queue(可以一对多)彼此是通过RoutingKey这条“纽带”来绑定的!Exchange、RoutingKey、Queue这三者关系紧密。这个也要牢记!发消息的时候,需要指定的是Exchange和RoutingKey,无法指定Queue。这个很Make Sense吧!有点像MVC的关系(Producer是Model,将消息(with RoutingKey)传给Exchange,Exchange是Controller来派发消息到指定的Queue(s))。

  4. Exchange有4种类型:Direct、Fanout、Topic、Headers。这个看后面4张图就基本可以了解。

  5. RMQ提供了一个默认的Exchange,名字是空字符串。他是Direct类型的,绑定到所有的Queue(而且每一个Queue和这个无名Exchange之间的RoutingKey是Queue的名字)。那个作者是这样说的:每当你声明了一个Queue,就会有一个默认的Exchange。我也不知道他说的对不对,反正就有那么一个默认的Exchange就对了。这个不用你显式声明(就存在)就对了。

这里贴一下PEQC关系图:

rabbitmq概念是什么

这里贴一下Exchange4种类型:Direct、Fanout、Topic、Headers。

rabbitmq概念是什么

rabbitmq概念是什么

rabbitmq概念是什么

rabbitmq概念是什么

1. 在创建ConnectFactory时,我们可以传入主机名、端口号、用户名/密码、虚拟Host等参数。

2. 也可以使用ampq://用户名:密码@主机名:端口号/%2f

3. Channel是轻量级的TCP/IP连接, 而Connection是非常Expensive的。

4. 消息不是直接发到Queue的,而是Producer通过Exchange来发送的。

5. 每当声明一个Queue时,会自动绑定到默认的Exchange上。而且不能解绑、不能删除、不能显式声明,只能用来发消息。

感谢各位的阅读,以上就是“rabbitmq概念是什么”的内容了,经过本文的学习后,相信大家对rabbitmq概念是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI