01 RabbitMQ介绍和安装


1 RabbitMQ介绍

1 AMQP 和 JMS

MQ是消息通信的模型;实现MQ的大致有两种主流方式:AMQP、JMS。

  • AMQP,即 Advanced Message Queuing Protocol(高级消息队列协议),是一个网络协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同的开发语言等条件的限制。2006年,AMQP 规范发布。AMQP是一种协议,更准确的说是一种binary wire-level protocol(链接协议)。这是其和JMS的本质差别,AMQP不从API层进行限定,而是直接定义网络交换的数据格式。
  • JMS即Java消息服务(JavaMessage Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。

AMQP 与 JMS 区别

  • JMS是定义了统一的接口,来对消息操作进行统一;AMQP是通过规定协议来统一数据交互的格式
  • JMS限定了必须使用Java语言;AMQP只是协议,不规定实现方式,因此是跨语言的。
  • JMS规定了两种消息模式;而AMQP的消息模式更加丰富

市场上常见的消息队列有如下:

  • ActiveMQ:基于JMS
  • ZeroMQ:基于C语言开发
  • RabbitMQ:基于AMQP协议,erlang语言开发,稳定性好
  • RocketMQ:基于JMS,阿里巴巴产品
  • Kafka:类似MQ的产品;分布式消息系统,高吞吐量

1.2 RabbitMQ介绍

RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。

RabbitMQ官方地址:http://www.rabbitmq.com/

RabbitMQ提供了6种模式:简单模式work模式Publish/Subscribe发布与订阅模式Routing路由模式Topics主题模式RPC远程调用模式(远程调用,不太算MQ;暂不作介绍)

官网对应模式介绍:https://www.rabbitmq.com/getstarted.html

RabbitMQ 中的相关概念
  • Broker:接收和分发消息的应用,RabbitMQ Server就是 Message Broker
  • Virtual host:出于多租户和安全因素设计的,把 AMQP 的基本组件划分到一个虚拟的分组中,类似于网络中的 namespace 概念。当多个不同的用户使用同一个 RabbitMQ server 提供的服务时,可以划分出多个vhost,每个用户在自己的 vhost 创建 exchange/queue 等。
  • Connection:publisher/consumer 和 broker 之间的 TCP 连接。
  • Channel:如果每一次访问 RabbitMQ 都建立一个 Connection,在消息量大的时候建立 TCP - Connection的开销将是巨大的,效率也较低。Channel 是在 connection 内部建立的逻辑连接,如果应用程序支持多线程,通常每个thread创建单独的 channel 进行通讯,AMQP method 包含了channel id 帮助客户端和message broker 识别 channel,所以 channel 之间是完全隔离的。Channel 作为轻量级的 Connection 极大减少了操作系统建立 TCP connection 的开销
RabbitMQ 的基础架构

基础架构

  1. 生产者(应用)通过用户名和密码和broker 之间的 TCP 连接

  2. 用户名和密码会绑定具体的虚拟主机(Virtual host),消息将会投递到这个虚拟主机

    rabbitMQ设计希望应用之间通过虚拟主机进行隔离,每个虚拟主机可以设置用户名和密码做到安全控制。所以我们在开发的时候需要先去建一个账户绑定虚拟主机,其中rabbitMQ默认提供了一个来宾用户可以访问所有的虚拟主机

  3. 消息通过交换机和路由分配到消息队列中,最终消费者也通过用户名和密码拿到消息进行消费

    rabbitMQ提供了多种模式,有些模式可以不走交换机直接投递到具体的消息队列。

2 安装

2.1 Mac 安装

官网安装教程:https://www.rabbitmq.com/install-homebrew.html

  1. 安装HomeBrew,brew官网
  2. 使用brew安装rabbitmq
 brew install rabbitmq
  1. 安装目录: /usr/local/Cellar/rabbitmq/3.6.6

  2. /usr/local/sbin配置到环境变量

export PATH=$PATH:/usr/local/sbin
  1. 启动服务
rabbitmq-server

或者

brew services start rabbitmq # 启动
brew services stop rabbitmq # 停止
brew services restart rabbitmq
  1. 访问后台管理: http://localhost:15672/
    用户名和密码默认都是: guest

2.2 windows 安装 (todo)

2.3 Linux 安装 (todo)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值