RabbitMQ学习笔记(一):RabbitMQ入门及Linux安装RabbitMQ

一、RabbitMQ的基本概念

RabbitMQ简介:

    RabbitMQ是一个消息代理:它接受和转发消息。你可以把它想象成一个邮局:当你把你想要发布的邮件放在邮箱中时,你可以确定邮差先生最终将邮件发送给你的收件人。在这个比喻中,RabbitMQ是邮政信箱,邮局和邮递员。

    RabbitMQ和邮局的主要区别在于它不处理纸张,而是接受,存储和转发二进制数据块 - 消息。引自(https://www.rabbitmq.com/tutorials/tutorial-one-java.html)官网介绍。

    许多生产者可以发送进入一个队列的消息,并且许多消费者可以尝试从一个队列接收数据。实质上是生产者——消费者关系。

什么叫消息队列:

    消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。

    消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来确保消息的可靠传递。消息发布者只管把消息发布到 MQ 中而不用管谁来取,消息使用者只管从 MQ 中取消息而不管是谁发布的。这样发布者和使用者都不用知道对方的存在。

RabbitMQ特点:

    RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。

    AMQP协议:高级消息队列协议,是一个提供统一消息服务的标准,为面向消息的中间件设计

AMQP协议核心概念:

  • Server:又叫Broker,接受客户端的连接

  • Connection:连接,应用程序和Broker的网络连接

  • Channel:网络信道,进行读写的操作,客户端可建立多个,每一个代表一个会话任务

  • Message:消息,服务器和应用程序之间传送的数据

  • Virtual host:虚拟地址,用于进行逻辑隔离,最上层的消息路由

  • Exchange:交换机,接收消息,根据路由键转发消息到绑定的队列

  • binding:交换机和队列之间的虚拟连接,其中可包含routing key

  • Routing key:一个路由规则

  • Queue:消息队列,保存消息并将它们转发给消费者

RabbitMQ优点:

  1. 开源、性能优秀,稳定性有保障

  2. 提供可靠性消息投递模式(confirm)、返回模式(return)

  3. 与SpringAMQP完美整合,api丰富

  4. 集群模式丰富,高可用模式,镜像队列模型

  5. 保证数据不丢失的前提下做到高可用                       

 RabbitMQ消息流程:

流程理解:

    生产者(procuder)发送信息到交换机(Exchange),然后交换机根据路由键(RoutingKey)转发消息到所绑定的队列(Queue),然后消费者接收监听的队列中的消息

二、RabbitMQ在Linux中的安装

首先安装之前要准备一些会用到的安装包:

yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz

然后下载(下载的Erlang版本和RabbitMQ版本必须对应,具体可到官网中查看)
wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm

下载好之后安装,因为RabbitMQ是基于Erlang语言的首先要安装Erlang安装包,按上边下载顺序安装

安装好之后,需要配置文件:

vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app

比如修改密码、配置等等,例如:loopback_users 中的 <<"guest">>,只保留guest

服务启动和停止命令:

启动 rabbitmq-server start &

停止 rabbitmqctl app_stop

查看启动状态 lsof -i:5672

管理插件:rabbitmq-plugins enable rabbitmq_management

CentOs7版本 关闭防火墙: systemctl stop firewalld.service

开启防火墙: systemctl start firewalld.service

访问地址可视化工具地址:http://你的服务器ip:15672/

发布了30 篇原创文章 · 获赞 12 · 访问量 3480

猜你喜欢

转载自blog.csdn.net/zx1293406/article/details/89082886