文档章节

RabbitMQ 的安装与工作模式

求学ing
 求学ing
发布于 2014/11/11 17:32
字数 939
阅读 1078
收藏 12

RabbitMQ

  • 概念:

         交换机(exchange type)把消息推送到队列的方法:

    • fanout:不处理路由键,转发到所有绑定的队列上

    • direct:处理路由键,必须完全匹配,即路由键字符串相同才会转发

    • topic:路由键模式匹配,此时队列需要绑定要一个模式上。符号“#”匹配一个或多个词,符号“*”匹配不多不少一个词。因此“audit.#”能够匹配到“audit.irs.corporate”,但是“audit.*” 只会匹配到“audit.irs”

    消息处理的基本流程

    • producer:生产者,是消息产生的源头。

    • exchange:交换机,可以理解为具有路由表的路由规则。

    • queues:队列,装载消息的缓存容器。

    • consumer:消费者,连接到队列并取走消息的客户端。

                注释:RabbitMQ消息模型的核心理念是:发布者(producer)不会直接发送任何消息给队列。事实上,发布者(producer)甚至不知道消息是否已经被投递到队列。

                        发布者(producer)只需要把消息发送给一个交换机(exchange)。交换机非常简单,它一边从发布者方接收消息,一边把消息推送到队列。交换机必须知道如何处理它接收到的消息,是应该推送到指定的队列还是是多个队列,或者是直接忽略消息。这些规则是通过交换机类型(exchange type)来定义的


    • channel:通道,amqp支持一个tcp连接上启用多个mq通信通道,每个通道都可以被作为通信流。

    • binding:绑定,实际上可以理解为交换机的路由规则。每个消息都有一个称为路由键的属性(routing key),就是一个简单的字符串。一个绑定将【交换机,路由键,消息送达队列】三者绑定在一起,形成一条路由规则。

      注释: 绑定(binding)是指交换机(exchange)和队列(queue)的关系。可以简单理解为:这个队列(queue)对这个交换机(exchange)的消息感兴趣. 绑定的时候可以带上一个额外的routing_key参数。为了避免与basic_publish的参数混淆,我们把它叫做绑定键(binding key). 绑定键的意义取决于交换机(exchange)的类型。我们之前使用过的扇型交换机(fanout exchanges)会忽略这个值



        图解:

            


rabbitMQ 很不错的中文介绍:  http://rabbitmq-into-chinese.readthedocs.org/zh_CN/latest/tutorials_with_python/[3]Publish_Subscribe/


安装:

rabbitmq下载地址:http://www.rabbitmq.com/releases/rabbitmq-server/v3.4.1/rabbitmq-server-3.4.1.tar.gz

一:安装需要的包

wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm

rpm -Uvh erlang-solutions-1.0-1.noarch.rpm

yum  -y install erlang

yum -y install xmlto

yum -y install python-simplejson

yum -y install python

yum -y install zip unzip

二:下载rabbitMQ并安装rabbitmq与插件

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.4.1/rabbitmq-server-3.4.1.tar.gz

tar zxvf rabbitmq-server-3.4.1.tar.gz

cd rabbitmq-server-3.4.1

make TARGET_DIR=/usr/local/rabbitmq SBIN_DIR=/usr/local/rabbitmq/sbin MAN_DIR=/usr/local/rabbitmq/man DOC_INSTALL_DIR=/usr/local/rabbitmq/doc install

rabbitmq 安装 完成 然后添加插件

先创建一个目录: mkdir /etc/rabbitmq/

然后执行命令:  /usr/local/rabbitmq/sbin/rabbitmq-plugins enable rabbitmq_management

如果不报错rabbitmq 与 插件就安装好了

三启动 rabbitmq

/usr/local/rabbitmq/sbin/rabbitmq-server &  以后太运行方式启动


启动后本机直接访问http://127.0.0.1:15672     使用guest帐号登陆即可密码也是guest

如果不是本机直接访问需要修改/usr/local/rabbitmq/ebin/rabbit.app文件里的内容

 把 {loopback_users,[<<"guest">>]}  改成  {loopback_users,[]}

然后重启rabbitmq 就可以通过http://IP:15672  访问插件的页面了   初始账户与密码都是guest

/usr/local/sbin/rabbitmqctl stop   停止


以上文字有拷贝有手打,参考文章如下:

http://valleu87.blog.163.com/blog/static/1967034322013101355739758/

http://my.oschina.net/jackwanger/blog/207898

http://www.cnblogs.com/shanyou/p/3902905.html

http://my.oschina.net/hncscwc/blog/262246

http://mchlsun.diandian.com/post/2012-08-29/40037524684








© 著作权归作者所有

共有 人打赏支持
求学ing
粉丝 12
博文 174
码字总数 72348
作品 0
昌平
高可用RabbitMQ安装及使用 

高可用RabbitMQ安装及使用 引言 你是否遇到过两个(多个)系统间需要通过定时任务来同步某些数据?你是否在为异构系统的不同进程间相互调用、通讯的问题而苦恼、挣扎?如果是,那么恭喜你,消...

DemonsI
08/20
0
0
CentOS7.X安装RabbitMQ-3.6.10

CentOS7.0安装RabbitMQ 安装前的准备 源码安装erlang erlang下载 erlang-20.0 加入环境变量 测试启动erlang 安装RabbitMQ 下载地址 Binary .tar.xz .zip cd /rootwget http://www.rabbitmq.c...

qq2233466866
06/11
0
0
配置RabbitMQ默认群集模式

RabbitMQ是什么? MQ(Msaaage Queue,消息队列)是一种应用程序对应用程序的通信方式。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无须专用链接来连接它们。消息传递指...

cchenyz
07/31
0
0
RabbitMQ高级指南:从配置、使用到高可用集群搭建

作者介绍 章为忠,随变科技.net架构师。致力于电商领域的开发与架构设计工作,拥有丰富的电商网站架构搭建经验。博客:http://www.cnblogs.com/zhangweizhong/。 本文大纲: 1. RabbitMQ简介...

章为忠
2017/04/27
0
0
SpringBoot笔记(十一)RabbitMQ

安装Erlang RabbitMQ基于Erlang,所以得先安装Erlang http://www.erlang.org/downloads 根据自己的系统选择下载,安装完了,配置一下path即可 windows默认安装路径: 验证: 有时候可能需要重...

世外大帝
04/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Bash重定向详解

Bash重定向详解 Bash的重定向指的是将命令的输入和输出导向不同地方,而不是默认的标准输入、标准输出和标准错误。Bash的重定向实际上是对标准输入、标准输出和标准错误的重置,进而将所需输...

小陶小陶
今天
3
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
6
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
3
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
4
0
UEFI 模式下如何安装 Ubuntu 16.04

作者:知乎用户 链接:https://www.zhihu.com/question/52092661/answer/259583475 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对UEFI模式下安装U...

寻知者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部