RabbitMQ介绍

RabbitMQ介绍

本文主要从一下几个方面介绍:

MQ

MQ(Message Queue)消息队列,通过典型的生产者和消费者模型。生产者不断向消息队列中生产消息,消费者不断从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松实现系统间解耦。别名为消息中间件,通过高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。

MQ有哪些

ActiveMQ、RabbitMQ、Kafka、RocketMQ

不同MQ的特点

  1. ActiveMQ
    ActiveMQ是Apache出品,最流行的,能力强劲的开源消息总线。它是一个完全支持JMS规范的消息中间件。丰富的API,多种集群架构模式让ActiveMQ在业界成为老牌的消息中间件,在中小型企业颇受欢迎!
  2. Kafka
    Kafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属Apache*项目。Kafka主要特点是基于Pull的模式来出来消息的消费,追求高吞吐量,一开始的目的就是用于日志收集和传输。0.8版本开始支持复制,不支持事务,对消息的重复、丢失、错误没有严格要求,适合产生大量数据的互联网服务的数据收集业务。
  3. RocketMQ
    RocketMQ是阿里开源的消息中间件,他是纯java开发,具有高吞吐量、高可用性、适合大规模分布式应用的特点。RocketMQ思路起源于Kafka,但并不是Kafka的一个Copy,它对消息的可靠传输及事务性做了优化,目前在阿里集团被广泛应用于交易、充值、流计算、消息推送、日志流式处理、binglog分发等场景。
  4. RabbitMQ
    RabbitMQ使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。-------甚至不丢失任何消息,可以恢复机制

AMQP

AMQP(advanced message queuing protocol),是一种协议,更准确的说是一种binary wire-level protocol(链接协议)。这是其和JMS的本质差别,AMQP不从API层进行限定,而是直接定义网络交换的数据格式。这使得AMQP的provider天然性就是跨平台的。

启动MQ前的工作(默认端口15672)

1.rabbitmq.config的64行修改来宾用户的访问权限

2.执行如下命令启动昂rabbitmq中的插件管理
rabbitmq-puligins enable rabbitmq_management

3.启动rabbitMq
sytemctl start rabbitmq-server
重启rabbitMq
sytemctl restart rabbitmq-server
关闭rabbitMq
sytemctl stop rabbitmq-server
查看服务状态
sytemctl status rabbitmq-server
查看防火墙状态
sytemctl status firewalld
关闭防火墙状态
sytemctl disable firewalld
sytemctl stop firewalld

RabbitMQ管理命令行

服务启动相关
sytemctl start|restart|status|stop rabbitmq-server
管理控制命令
rabbitmqctl help
插件管理命令
rabbitmq-plugins enable|disable|list(展示所有插件)|set(对插件进行重置操作)

上一篇:RabbitMQ SpringAMQP


下一篇:alpine的docker环境中php安装amqp扩展