1.初识RabbitMQ

<Excerpt in index | 首页摘要>

*** 感谢阅读这篇博文,欢迎关注与评论!***

原文链接:https://tiantsing.github.io/2019/09/05/1.%E5%88%9D%E8%AF%86RabbitMQ/

  1. 什么是消息中间件?
  2. 消息中间件的作用
  3. RabbitMQ 的安装及简单使用

<The rest of contents | 余下全文>

1.什么是消息中间件?

消息队列中间件 (Message Queue Middleware ,简称为 MQ) 是指利用高效可靠的消息传递机制进行与平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。

2.消息中间件的作用

  • 解耦:在项目启动之初来预测将来会碰到什么需求是极其困难的。消息中间件在处理过程中间插入了一个隐含的、基于数据的接口层,两边的处理过程都要实现这一接口,这允许你独立地扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束即可。
  • 冗余〈存储): 有些情况下,处理数据的过程会失败。消息中间件可以把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。在把 个消息从消息中间件中删除之前,需要你的处理系统明确地指出该消息己经被处理完成,从而确保你的数据被安全地保存直到你使用完毕。
  • 扩展性: 因为消息中间件解耦了应用的处理过程,所以提高消息入队和处理的效率是很容易的,只要另外增加处理过程即可,不需要改变代码,也不需要调节参数。
  • 削峰: 在访问量剧增的情况下,应用仍然需要继续发挥作用,但是这样的突发流 并不常见。如果以能处理这类峰值为标准而投入资源,无疑是巨大的浪费 使用消息中间件能够使关键组件支撑突发访问压力,不会因为突发的超负荷请求而完全崩潰。
  • 可恢复性: 当系统一部分组件失效时,不会影响到整个系统,消息中间件降低了进程间的稿合度,所以即使处理消息的进程挂掉,加入消息中间件中的消息仍然可以在系统恢复后进行处理。
  • 顺序保证: 在大多数使用场景下,数据处理的顺序很重要,大部分消息中间件支持一定程度上的顺序性。
  • 缓冲: 在任何重要的系统中,都会存在需要不同处理时间的元素。消息中间件通过 个缓冲层来帮助任务最高效率地执行,写入消息中间件的处理会尽可能快速,该缓冲层有助于控制和优化数据流经过系统的速度。
  • 异步通信: 在很多时候应用不想也不需要立即处理消息 消息中间件提供了异步处理机制,允许应用把 些消息放入消息中间件中,但并不立即处理它,在之后需要的时候再慢慢处理。

3.RabbitMQ 的安装及简单使用

RabbitMQ 是由 Erlang 语言编写的 也正因如此 在安装 RabbitMQ 之前需要安装 Erlang 。

1.安装Erlang(以Linux环境下为例)
  1. 新建文件夹,将 Erlang 与 RabbitMQ 安装到一起,执行如下命令
cd /usr/local/src/ //进入此目录下
mkdir rabbitmq     //创建文件夹
cd rabbitmq        //进入新创建的文件夹
  1. 修改 rabbitmq-erlang.repo 文件中的内容:
vi /etc/yum.repos.d/rabbitmq-erlang.repo

内容如下:(可以看出是安装的21x版本的 Erlang)

[rabbitmq-erlang] 
name=rabbitmq-erlang
baseurl=https://dl.bintray.com/rabbitmq-erlang/rpm/erlang/21/el/7
gpgcheck=1
gpgkey=https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc
repo_gpgcheck=0
enabled=1
  1. 安装 Erlang
sudo yum install erlang
  1. 验证是否安装成功,输入命令:erl
2.安装 RabbitMQ(以Linux环境下为例)
  1. 将下载的安装包上传到上边创建的rabbitmq目录下,执行如下命令
rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
yum install rabbitmq-server-3.6.1-1.noarch.rpm//选择自己的包进行安装
  1. 常用的 rabbitMQ 命令
启动:systemctl start rabbitmq-server
停止:service rabbitmq-server stop
重启:service rabbitmq-server restart
开机自动启动:systemctl enable rabbitmq-server
查看 rabbitmq-server 状态:rabbitmqctl status
  1. 设置配置文件
cd /etc/rabbitmq
cp /usr/share/doc/rabbitmq-server-3.4.1/rabbitmq.config.example /etc/rabbitmq/
mv rabbitmq.config.example rabbitmq.config
  1. 开启用户远程访问
vi /etc/rabbitmq/rabbitmq.config
%% Uncomment the following line if you want to allow access to the
   %% guest user from anywhere on the network.
   %% {loopback_users, []}  //注意要去掉后面的逗号。
  1. 开启web界面管理工具
rabbitmq-plugins enable rabbitmq_management
service rabbitmq-server restart

可以在本机浏览器输入 http://localhost:15672 访问 rabbitmq 主页,账户 guest 密码 guest

  1. 防火墙开放15672端口
/sbin/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT

注:关闭虚拟机centos的防火墙

一、.对于centos7自带的防火墙的相关指令 
systemctl stop firewalld.service #停止firewall 
systemctl disable firewalld.service #禁止firewall开机启动 
systemctl status firewalld.service #查看firewall的状态
二、iptables防火墙的相关状态 
关闭虚拟机防火墙: 
关闭命令: service iptables stop 
永久关闭防火墙:chkconfig iptables off 
两个命令同时运行,运行完成后查看防火墙关闭状态 
service iptables status 
1 关闭防火墙: service iptables stop 
2 启动防火墙: service iptables start 
3 重启防火墙: service iptables restart 
4 查看防火墙状态: service iptables status 
5 永久关闭防火墙: chkconfig iptables off 
6 永久关闭后启用: chkconfig iptables on
  1. 简单配置 RabbitMQ
  • 添加自定义用户名为 “admin” 以及密码为 “123456” 的管理员账号: 执行命令 rabbitmqctl add_user admin 123456
  • 给 admin 账号设置为管理员:执行命令 rabbitmqctl set_user_tags admin administrator
  • 给 admin 账号授权:执行命令 rabbitmqctl set_permissions -p / admin “.“ “.“ “.*”
  • 查看 admin 账户的权限: 执行命令 rabbitmqctl list_user_permissions admin
  1. 日志文件以及配置文件的位置
  • 日志文件在:$RABBITMQ_LOG_BASE/$RABBITMQ_NODENAME.log下面,一般 $RABBITMQ_LOG_BASE=$RABBITMQ_HOME/var/log/rabbitmq。一般默认日志文件会在/var/log/rabbitmq文件下.

该日志文件的开始部分记录了rabbitmq 启动时查找相关文件的记录,例如:

node           : rabbit@macvm
home dir       : /var/lib/rabbitmq
config file(s) : (none)
cookie hash    : jzIB5AXnFFYHzF/o4qC9sw==
log(s)         : /var/log/rabbitmq/rabbit@macvm.log
    	       : /var/log/rabbitmq/rabbit@macvm_upgrade.log
database dir   : /var/lib/rabbitmq/mnesia/rabbit@macvm

日志记录显示了各个系统文件对应的位置。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值