文档章节

rabbitmq学习(一)

hensemlee
 hensemlee
发布于 2018/10/18 21:25
字数 1158
阅读 11
收藏 0

RabbitMQ是目前非常热门的一款消息中间件,具有高可靠、易拓展、高可用及丰富的功能

1.什么是消息中间件

消息是指在应用间传送的数据。包含文本字符串、JSON、内嵌对象

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

两种传递模式:点对点(P2P,Point-to-Point)模式、发布订阅模式(Pub/Sub)

点对点模式基于队列,消息生产者发送消息到队列,消息消费者从队列中接受消息

发布订阅模式模式定义了如何向一个内容节点发布和订阅消息,这个内容节点称为主题,消息发布者将消息发布到某个主题,而消息订阅者则从主题中订阅消息,发布订阅模式在消息的一对多广播时采用

2.消息中间件的作用

解耦:

冗余(存储):有些情况下,处理数据的过程会失败,消息中间件可以把数据进行持久化直到它们已经被处理,通过这一方式规避了数据丢失风险

扩展性:消息中间件解耦了应用的处理过程,所以提高消息入队和处理的效率是很容易的,只要另外增加处理过程即可,不需要改变代码,也不需要调节参数

削峰:在访问量剧增的情况下,应用仍然需要继续发挥,但是这样的突发流量并不常见。如果以能处理这类峰值为标准而投入资源,无疑是巨大的浪费。

可恢复性:消息中间件降低了进程间的耦合度,所以即使一个处理消息的进程挂掉,加入消息中间件中的消息仍然可以在系统恢复后进行处理

顺序保证性:在大多数使用场景下,数据处理的顺序很重要,大部分消息中间件支持一定程度上的顺序性

缓冲:在任何重要的系统中,都会存在需要不同处理时间的元素。消息中间件通过一个缓冲层来帮助任务最高效率地执行,写入消息中间件的处理会尽可能快速。该缓冲层有助于控制和优化数据流经过系统的速度

异步通信:在很多时候应用不想也不需要立即处理消息。消息中间件提供了异步处理机制,允许应用把一些消息放入消息中间件中,但不立即处理它,在之后需要的时候再慢慢处理

3.rabbitmq的起源

rabbitmq是采用erlang语言实现AMQP(Advanced Message Queuing Protocol)的消息中间件。

4.rabbitmq的安装

系统环境:

CentOS 7.5

erlang:R16B03-1

rabbitmq:rabbitmq-server 3.6.8

安装所需各种类库:

为了避免安装出问题先把各种类库安装

yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel

erlang安装:

rabbitmq依赖erlang,需要安装erlang,为了方便利用yum命令安装即可:yum install erlang

输入erl验证是否安装成功,进入Erlang后可以使用如下命令退出Erlang:q().

rabbitmq安装:

wget https://github.com/rabbitmq/rabbitmq-server/releases/download/rabbitmq_v3_6_8/rabbitmq-server-generic-unix-3.6.8.tar.xz
tar xvf rabbitmq-server-generic-unix-3.6.8.tar.xz -C /opt
mv rabbitmq_server-3.6.8 rabbitmq

修改/etc/profile文件,添加下面的环境变量:

erport PATH=$PATH:/opt/rabbitmq/sbin

erport RABBITMQ_HOME=/opt/rabbitmq

5.rabbitmq的运行

启动:

rabbitmq-server [-detached]

默认情况下,访问rabbitmq服务的用户名和密码是guest和guest,且无法远程访问,需添加新用户

添加新用户:

添加用户名为root密码为root的用户

rabitmqctl add_user root root

为root用户设置所有权限:

rabbitmqctl set_permissions -p / root "." "." ".*"

设置root用户为管理员角色

rabbitmqctl set_user_tags root administrator

开启web管理界面:

rabbitmq-plugins enable rabbitmq_management

浏览器输入 http://你的远程服务器IP:15672/ 用root登录即可

© 著作权归作者所有

共有 人打赏支持
hensemlee
粉丝 7
博文 72
码字总数 46465
作品 0
徐汇
程序员
私信 提问
rabbitmq-server 安装

一,安装rabbitmq-server 1.安装erlang wget https://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm rpm -Uvh erlang-solutions-1.0-1.noarch.rpm rpm --import https:/......

丿小贰丶
2018/05/08
0
0
zabbix自动发现rabbitmq

参考文档 http://blog.csdn.net/qq29778131/article/details/52537288?ticket=ST-77459-cUGNcZF1BJBtNuZoZe1i-passport.csdn.net #python脚本 一,实现功能 实现自动发现rabbitmq queue,并监......

typuc
2018/06/26
0
0
#DDBMS#rabbitmq安装

考虑了下,决定以可靠性为前提,在DDBMS低层支撑架构中用上rabbitmq,像OpenStack一样以RPC为主交互 安装rabbitmq: apt-get install rabbitmq-server 安装pika库: pip install pika 相关的...

Hochikong
2015/02/28
0
0
NET下RabbitMQ实践[配置篇]

这个系列目前计划写四篇,分别是配置,示例,WCF发布,实战。当然不排除加餐情况。 介绍: rabbitMQ是一个在AMQP协议标准基础上完整的,可服用的企业消息系统。他遵循Mozilla Public Licens...

长平狐
2012/11/06
282
0
CentOS6.7系统安装RabbitMQ3.7.8集群环境

一、安装Erlang 1、RabbitMQ3.7.8 对Erlang/OTP的版本要求 RabbitMQ3.7.8 要求Erlang/OTP版本:19.3.6.4 ~ 21.0.x 这个链接(http://www.rabbitmq.com/which-erlang.html)有详细说明. 2、Erl......

静夜明灯
2018/10/07
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周一乱弹 —— 白掌柜说了卖货不卖身

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @爱漫爱 :这是一场修行分享羽肿的单曲《Moony》 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :开不开心? 开心呀, 我又不爱睡懒觉…...

小小编辑
今天
7
0
大数据教程(11.7)hadoop2.9.1平台上仓库工具hive1.2.2搭建

上一篇文章介绍了hive2.3.4的搭建,然而这个版本已经不能稳定的支持mapreduce程序。本篇博主将分享hive1.2.2工具搭建全过程。先说明:本节就直接在上一节的hadoop环境中搭建了! 一、下载apa...

em_aaron
今天
2
0
开始看《JSP&Servlet学习笔记》

1:WEB应用简介。其中1.2.1对Web容器的工作流程写得不错 2:编写Servlet。搞清楚了Java的Web目录结构,以及Web.xml的一些配置作用。特别是讲了@WebServlet标签 3:请求与响应。更细致的讲了从...

max佩恩
今天
4
0
mysql分区功能详细介绍,以及实例

一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例。mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可...

吴伟祥
今天
3
0
SQL语句查询

1.1 排序 通过order by语句,可以将查询出的结果进行排序。放置在select语句的最后。 格式: SELECT * FROM 表名 ORDER BY 排序字段ASC|DESC; ASC 升序 (默认) DESC 降序 1.查询所有商品信息,...

stars永恒
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部