rabbitmq
Posted gaizhongfeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rabbitmq相关的知识,希望对你有一定的参考价值。
在所有的消息系统中,其基本组成一队就是生产者、消费者、消息组件, 消息组件的功能就是消息的缓存
但是在rabbitmq中 , 消息组件的组成: Exchange:交换空间管理所有的队列
rabbitmq 核心概念:
- Queue:数据队列
- RoutingKey:如果说有的 RoutingKey 都一样, 那么就属于广播消息;而不一样,怎表示点对点消息
- Broker :消息队列服务主机
- Exchange: 消息交换机,它指定消息按什么规则路由到哪个队列
- Queue: 消息队列载体,每个消息都会被投入到一个或多个队列
- Binding:绑定,把exchange 和 queue 按照路由规则绑定起来
- Routing Key:路由关键字,exchange 根据这个关键字进行消息投递
- vhost:虚拟主机, 一个broker里可以设多个vhost , 实现用户权限的分离
- producer:消息生产者
- consumer: 消息消费者
- channel :消息通道 , 在客户端的每一个连接里,可以建多个channel,每个channel 代表一个会话任务
在rabbitmq中有一个虚拟主机的概念(Vhost), 所谓的虚拟主机可以理解为不同的用户空间,也就是说各个用户可以有自己的队列信息, 有自己的操作用户
rabbit mq 系统架构图
当程序开发时,可能不止用到一个队列,可能有订单的队列、消息的队列、任务的队列等等,那么就需要给不同的queue发信息,那么和每一个队列连接的这个概念,就叫Channel
再往下来,当我们开发的时候还有时候会用到这样一种功能,就是当我发送一条消息,需要让几个queue都收到,那么怎么解决这个问题呢,难道我要给每一个queue发送一次消息?那岂不是浪费带宽又浪费资源,我们能想到什么办法呢,当然是我们发送给RabbitMQ服务器一次,然后让RabbitMQ服务器自己解析需要给哪个Queue发,那么Exchange就是干这件事的
但是我们给Exchange发消息,他怎么知道给哪个Queue发呢?这里就用到了RoutingKey和BindingKey
BindingKey是Exchange和Queue绑定的规则描述,这个描述用来解析当Exchange接收到消息时,Exchange接收到的消息会带有RoutingKey这个字段,Exchange就是根据这个RoutingKey和当前Exchange所有绑定的BindingKey做匹配,如果满足要求,就往BindingKey所绑定的Queue发送消息,这样我们就解决了我们向RabbitMQ发送一次消息,可以分发到不同的Queue的过程
rabbitmq 依靠的开发语言是ErLang,所以如果想使用RabbitMQ,首先一定要配置开发环境, 测试环境是否安装成功,在命令行输入 erl:
退出: "halt()." 命令
http://erlang.org/download/otp_win64_18.3.exe。
新建系统变量:变量名 ERLANG_HOME 变量值 D:\\softInstall\\erl8.3(Erlang安装目录)
添加到PATH:%ERLANG_HOME%\\bin;
http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.9/rabbitmq-server-3.6.9.exe
新建系统变量:变量名 RABBITMQ_SERVER 变量值 D:\\softInstall\\rabbitMQ\\rabbitmq_server-3.6.9(RabbitMQ Server安装目录)
添加到PATH:%RABBITMQ_SERVER%\\sbin;
以管理员身份运行cmd.exe,进入目录D:\\softInstall\\rabbitMQ\\rabbitmq_server-3.6.9\\sbin(RabbitMQ Server安装目录),运行cmd命令:rabbitmq-plugins.bat enable rabbitmq_management
以管理员身份运行cmd.exe,运行命令:net stop RabbitMQ && net start RabbitMQ。启动RabbitMQ Server,在浏览器输入地址:http://localhost:15672,输入默认账号:guest 密码:guest,就能进入RabbitMQ界面了。
以上是关于rabbitmq的主要内容,如果未能解决你的问题,请参考以下文章
RabbitMQRabbitMQ和Erlang下载与安装步骤—2023超详细最新版