[喵咪MQ(1)]RabbitMQ简单介绍准备工作
[喵咪MQ(1)]RabbitMQ简单介绍准备工作
前言
哈喽大家好呀! 看标题就知道我们这次要讲MQ,之前博客中有提到的KafKa理论上来说也是一个优秀的MQ队列软件,比较知名的MQ有:Go语言编写的 nsq , 阿里云的RocketMQ , 大名鼎鼎的KafKa 以及 redis(也可以做队列),不过我们这次的主角是RabbitMQ.
附上:
喵了个咪的博客:w-blog.cn
RabbitMQ官网 :http://www.rabbitmq.com/
1.队列做什么?RabbitMQ是什么?
队列是什么
我们先回答第一个问题,队列做什么, 摘抄自百度百科:在项目中,将一些无需即时返回且耗时的操作提取出来,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量。 比较通俗易懂的解释就是 一个请求处理一些事情 A 业务耗时 30ms B业务 耗时 20ms 然后发邮件 耗时 50ms ,吧其中的发送邮件 写入队列 有一个专门负责发送邮件的程序接受这个队列的消息在吧邮件发送出去,这样这个请求原来要用100ms现在只需要50ms , 借助队列可以吧很多原本很消耗时间的操作单独有序处理
RabbitMQ是什么?
RabbitMQ是一个队列软件,它在AMQP协议基础上来提供了一个具有 可靠性、灵活的路由、集群、事务、高可用的队列、消息排序、可视化管理工具等功能的一个强大队列软件,并且RabbitMQ由erlang语言实现天生具备高并发高可用
选择一个专业队列来供使用RabbitMQ是一个很好的选择
2. 准备工作
这里使用centos6.5进行安装说明
安装erlang环境
安装RabbitMQ 就需要先安装erlang环境:
下载并安装最新版本的erlang(如果系统中已安装老版本的erlang,卸载后再安装新版本)
yum remove erlang
wget http://www.rabbitmq.com/releases/erlang/erlang-18.1-1.el6.x86_64.rpm
yum install erlang-18.1-1.el6.x86_64.rpm
使用 yum install 会安装依赖 rpm -ivh 只能直接安装 不然会有很多提示依赖异常
无法使用可以
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
yum install erlang
国外源比较慢
然后下载RabbitMQ进行安装
安装RabbitMQ
下载安装最新版本的rabbitmq并且使用yum安装
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el6.noarch.rpm
yum install rabbitmq-server-3.6.6-1.el6.noarch.rpm
启动开机配置
开启服务并且配置为开机自启
service rabbitmq-server start
chkconfig rabbitmq-server on
3 总结
本小节主要介绍RabbitMQ的特性,并且安装好RabbitMQ,下一节我们就开始在单机情况下如何使用RabbitMQ,怎么使用web界面进行管理,用户权限以及vhost是什么?感谢大家的支持本节就到这里下节再见!
注:笔者能力有限有说的不对的地方希望大家能够指出,也希望多多交流!
- AutoMapper 使用实践
- CTF---安全杂项入门第二题 A记录
- PyTorch(总)---PyTorch遇到令人迷人的BUG与记录
- 手把手带你进入TOP20的商超销售预测
- 【干货荟萃】机器学习&深度学习知识资料大全集(二)(论文/教程/代码/书籍/数据/课程等)
- 逆天通用水印扩展篇~新增剪贴板系列的功能和手动配置,卸除原基础不常用的功能
- 【专知-Java Deeplearning4j深度学习教程06】用卷积神经网络CNN进行图像分类
- 万恶的剪贴板==》为存储而生
- AdaBoost算法(R语言)
- CTF---Web入门第六题 因缺思汀的绕过
- 小案例(六):预测小偷行为(python)
- 小案例(五):销量预测(python)
- SQL:插入指定标识列的数据时候的小错误
- 逻辑回归与梯度下降详解
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- android MediaRecorder实现录屏时带录音功能
- php根据地址获取百度地图经纬度的实例方法
- Android 代码一键实现银行卡绑定功能
- Android 通过cmake的方式接入opencv的方法步骤
- Yii框架响应组件用法实例分析
- Android开发学习实现简单计算器
- Android Studio finish()方法的使用与解决app点击“返回”(直接退出)
- Android 8.1隐藏状态栏图标的实例代码
- Android制作登录页面并且记住账号密码功能的实现代码
- Yii框架分页技术实例分析
- PHP命名空间与自动加载机制的基础介绍
- Flutter下Android Studio配置gradle的方法
- Flutter 实现整个App变为灰色的方法示例
- Android studio开发小型对话机器人app(实例代码)
- php中的钩子理解及应用实例分析