RabbitMQ消息中间件

目录

消息中间件

介绍RabbitMQ

什么是消息队列

RabbitMQ单机部署


消息中间件

消息中间件也成为消息队列,指用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。

当下主流的中间件有:

RabbitMQ、Kafka、ActiveMQ、RocketMQ等

消息中间件的优点:

         能够在客户端和服务器之间进行同步和异步的连接,并且在任何时刻都可以将消息进行传送和转发,是分布式系统中非常重要的组件,主要用来解决应用耦合、异步通信、流量削峰等问题。

消息中间件的作用:

解耦,冗余,扩展性,削峰,可恢复性,顺序保证,缓冲,异步通信。

介绍RabbitMQ

RabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。

什么是消息队列

MQ 全称为Message Queue, 消息队列。是一种应用程序对应用程序的通信方法。

应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。

消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

RabbitMQ单机部署

查看erlang和rabbitmq版本对应关系:RabbitMQ Erlang Version Requirements — RabbitMQ

编译安装erlang

安装erlang的依赖包
[root@rabbit ~]# yum install -y *epel* gcc-c++ unixODBC unixODBC-devel openssl-devel ncurses-devel

[root@rabbit src]# wget http://erlang.org/download/otp_src_21.3.tar.gz
[root@rabbit src]# tar -zxvf otp_src_21.3.tar.gz -C /usr/local/
[root@rabbit ~]# cd otp_src_21.3
[root@rabbit otp_src_21.3]# ./configure --prefix=/usr/local/bin/erlang --without-javac
[root@rabbit otp_src_21.3]# make && make install
[root@rabbit ~]# vim /etc/profile.d/erlang.sh
ERLANG_HOME=/usr/local/bin/erlang
PATH=$PATH:$ERLANG_HOME/bin
export ERLANG_HOME PATH

[root@rabbit ~]# source /etc/profile.d/erlang.sh    #有命令 “erl” ,即安装 erlang 成功

编译安装Rabbitmq

[root@rabbit src]# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-generic-unix-3.7.14.tar.xz
[root@rabbit src]# xz -d rabbitmq-server-generic-unix-3.7.14.tar.xz
[root@rabbit src]# tar xvf rabbitmq-server-generic-unix-3.7.14.tar -C /usr/local/
[root@rabbit ~]# vim /etc/profile.d/rabbit.sh
RABB_HOME=/usr/local/rabbitmq_server-3.7.14
PATH=$PATH:$RABB_HOME/sbin
export RABB_HOME PATH
[root@rabbit ~]# source /etc/profile.d/rabbit.sh

启动rabbitMQ web界面:
[root@rabbit ~]# rabbitmq-plugins enable rabbitmq_management

启动rabbitMQ:
[root@rabbit ~]#rabbitmq-server -detached

[root@rabbit ~]# ss -tunlp 
Netid State      Recv-Q Send-Q Local Address:Port                Peer Address:Port              
tcp   LISTEN     0      128                *:22                             *:*                   users:(("sshd",pid=935,fd=3))
tcp   LISTEN     0      128                *:15672                          *:*                   users:(("beam.smp",pid=38881,fd=76))
tcp   LISTEN     0      100        127.0.0.1:25                              *:*                   users:(("master",pid=1088,fd=13))
tcp   LISTEN     0      128                *:25672                          *:*                   users:(("beam.smp",pid=38881,fd=65))
tcp   LISTEN     0      128                *:80                             *:*                   users:(("nginx",pid=62188,fd=6),("nginx",pid=62186,fd=6))
tcp   LISTEN     0      128                *:4369                           *:*                   users:(("epmd",pid=38461,fd=3))
tcp   LISTEN     0      128             [::]:22                          [::]:*                   users:(("sshd",pid=935,fd=4))
tcp   LISTEN     0      100            [::1]:25                          [::]:*                   users:(("master",pid=1088,fd=14))
tcp   LISTEN     0      128             [::]:5672                        [::]:*                   users:(("beam.smp",pid=38881,fd=75))
tcp   LISTEN     0      128             [::]:80                          [::]:*                   users:(("nginx",pid=62188,fd=7),("nginx",pid=62186,fd=7))
tcp   LISTEN     0      128             [::]:4369                        [::]:*                   users:(("epmd",pid=38461,fd=4))


 #查看当前的rabbit用户
[root@rabbit ~]# rabbitmqctl list_users 
Listing users ...
user	tags
guest	[administrator]   #当前用户只有guest,只能本地登入,无法远程访问。

 #添加用户和密码
[root@rabbit ~]# rabbitmqctl add_user admin 123456   
Adding user "admin" ...

 #添加用户的配置、读写全部权限
[root@rabbit ~]# rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"   
Setting permissions for user "admin" in vhost "/" ...

#把用户分配asministrator角色
[root@rabbit ~]# rabbitmqctl set_user_tags admin administrator  
Setting tags for user "admin" to [administrator] ...

测试:
在浏览器上输入: http://ip:15672  


登入页面:

RabbitMQ消息中间件_第1张图片

你可能感兴趣的:(消息中间件,rabbitmq,运维,云计算,linux)