RabbitMQ基本观点和道理
1.AMQP,即Advanced Message Queuing Protocol,高等音讯行列协定,是应用层协定的一个开放规范,为面向音讯的中间件设想。
2.RabbitMQ是一个开源的AMQP完成,效劳器端用Erlang言语编写。
3.Channel
Channel是我们与RabbitMQ打交道的最主要的一个接口,我们大部分的营业操纵是在Channel这个接口中完成的,包含定义Queue、定义Exchange、绑定Queue与Exchange、宣布音讯等。
4.Exchange(生产者将音讯发送到Exchange(交换器),由Exchange将音讯路由到一个或多个Queue中(或许抛弃),RabbitMQ经常运用的Exchange Type有fanout、direct、topic、headers这四种)
5.Queue(RabbitMQ的内部对象,用于存储音讯)
6.基本事情道理
客户端(生产者) send Message -->Exchange (交换机经由过程差别的范例将音讯保存到对应的queue)-->Queue
客户端(消耗者)经由过程定阅来消耗queue中的音讯。
以上基本观点整顿来源于 RabbitMQ基本观点细致引见
在Windows体系中装置RabbitMQ
1. 下载装置erlang (我用的是otp_win64_19.3版本)
下载地点 (依据操纵体系挑选32还64位)
2. 下载装置rabbitmq-server(我用的是rabbitmq-server-3.6.10版本)
下载地点
装置好后,在看装目次下看到
接下来用启用DOS敕令
a. cd 到sbin目次下,我的装置目次是D:\RabbitMQServer\rabbitmq_server-3.6.10\sbin, 输入D: 回车,cd RabbitMQServer\rabbitmq_server-3.6.10\sbin
b. 检察装置是不是胜利敕令 :rabbitmqctl status
c.装置治理插件敕令:rabbitmq-plugins enable rabbitmq_management
装置胜利,在浏览器中输入 http://127.0.0.1:15672/
输入宾客账号 guest 暗码 guest ,胜利上岸进来,是不是是有点小冲动。
guest 账号是治理员账号,可以增加Exchanges,Queues,Admin。但我们平常不运用guest账号,继承用敕令来增加账号和权限。
d:增加用户:rabbitmqctl.bat add_user username password
e:增加“超等治理员”角色: rabbitmqctl.bat set_user_tags username administrator
mymq账号也是超等治理员了,Can access virtual hosts :No access ,可以看到还没有可以接见的虚拟机,接下来增加虚拟机。
f: 增加虚拟机: rabbitmqctl add_vhost vhostName
myvhost虚拟机并没有Users,接下来给虚拟机绑定账号。
g:定虚拟机和用户权限:rabbitmqctl set_permissions -p 虚拟机称号 账户名 ".*" ".*" ".*"
h:处于习气我平常删撤除guest账号:rabbitmqctl.bat delete_user username
好了,从新上岸治理页面,一切正常,接下来最先实战了。
EasyNetQ的基本运用
项目中装置EasyNetQ
EasyNetQ是依赖于RabbitMQ.Client的,所以会被一并装置到项目中。
Publish宣布音讯
Model有个Queue的特征,定义Queue称号和Exchange称号。然后直接用Publish要领把Msg经由过程Model指定的交换机推送到指定行列去。
运转代码,看看MQ的治理页面。
已建立了Model指定的交换机TestQueue.Exchange, Type:topic , Features:D 。D:Durable 申明默许建立的交换机是耐久化的。
由于还没有定阅音讯,所以在Queues中还看不到对应的行列。
Subscribe定阅音讯
为何要在定阅代码上套一个while(true)了? 是为了把控制台顺序模仿成Windows效劳,由于控制台顺序运转一闪而过,没办法真正定阅到MQ的音讯。
现实开辟中,平常用Topself来把控制台顺序宣布成Windows效劳,背面有时间再写一篇关于Topself的进修博客。
再反复适才的Publish操纵,测试下全部流程。
自定义Topic
如许音讯会被发送到称号为Test.开首的一切Queue行列中。
Send和Receive
经由过程send和receive可以将音讯发送到指定行列。
以上就是RabbitMQ基本观点和道理实例的细致内容,更多请关注ki4网别的相干文章!