简介
开源的消息代理和队列服务器,通过普通协议在完全不同的应用之间共享数据,Rabbitmq是适用ErLang语言编写的,并且Rabbitmq是基于amqp协议的
开源、性能优秀,稳定性保障
集群模式丰富,表达式配置,ha模式,镜像队列模式
保证数据不丢失的前提做到高可靠性、可用性
amqp翻译:高级消息队列协议
安装
官网:www.rabbitmq.com
1、安装Linux必要依赖包
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc_c++ kernel-level m4 ncurses-devel tk tc zx
2、下载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
3、进行安装,修改相关配置即可
rpm -ivh rpm后缀的安装包进行安装
配置 vim /etc/hosts 以及 /etc/hostname(Linux防火墙关闭或开放端口)
配置文件:
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
如修改密码、配置等等。例如loopback_users中的<<“guest”>>只保留guest,服务启动和停止
启动rabbitmq-server start &
停止 rabbitmqctl app_stop
4、管理插件 rabbitmq-plugins enable rabbitmq_management
rabbitmq-plugins list–查看插件
5、访问地址:http://192.168.0.105:15672
核心概念
Server:又称Broker,接受客户端链接,实现amqp实体服务
Connection:链接,应用程序与Broker的网络连接
Channel:网络信道,几乎所有的操作都在Channel中进行,Channel是进行消息读写的通道。客户端可建立多个Channel,每个Channel代表一个会话任务。
Message:消息,服务器和应用程序之间传送的数据,由Properties和Body组成。Properties可以对消息进行修饰,比如消息的优先级、延迟等高级特性;Body则就是消息体内容。
Virtual host:虚拟地址,用于进行逻辑隔离,最上层的消息路由。一个Virtual Host里面可以有若干个Exchange和Queue,同一个Virtual Host里面不能有相同名称的Exchange或Queue。
Exchange:交换机,接受消息,根据路由键转发消息到绑定的队列
Binding:Exchange和Queue之间的虚拟链接,binding中可以包含routing key
Routing Key:一个路由规则,虚拟机可用它来确定如何路由一个特定消息
Queue:也称为Messge Queue,消息队列,保存消息并将它们转发给消费者
Rabbitmq消息是如何流转的?