文档章节

RabbitMQ 的安装与工作模式

求学ing
 求学ing
发布于 2014/11/11 17:32
字数 939
阅读 1060
收藏 12
点赞 0
评论 0

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
博文 144
码字总数 72348
作品 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

SpringBoot笔记(十一)RabbitMQ

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

世外大帝 ⋅ 04/25 ⋅ 0

RabbitMQ学习系列(六): RabbitMQ 高可用集群

前面讲过一些RabbitMQ的安装和用法,也说了说RabbitMQ在一般的业务场景下如何使用。不知道的可以看我前面的博客,http://www.cnblogs.com/zhangweizhong/category/855479.html 本来一直想写一...

andrewniu ⋅ 05/09 ⋅ 0

消息中间件—RabbitMQ(集群原理与搭建篇)

摘要:实际生产应用中都会采用消息队列的集群方案,如果选择RabbitMQ那么有必要了解下它的集群方案原理 一般来说,如果只是为了学习RabbitMQ或者验证业务工程的正确性那么在本地环境或者测试...

癫狂侠 ⋅ 05/25 ⋅ 0

RabbitMQ与消息队列模式

MQ全称为Message Queue,消息队列是应用程序和应用程序之间的通信方法; RabbitMQ是开源的,实现了AMQP协议的,采用Erlang(面向并发编程语言)编写的,可复用的企业级消息系统; AMQP(高级消...

Java技术汇 ⋅ 05/15 ⋅ 0

RabbitMQ消息中间件介绍

一、基础介绍 随着分布式应用的发展消息队列中间件成为C/S架构中解耦的一个重要环节,传统的消息传输模型中,C端发出消息,S端必须在线,否则将无法继续进行,而在拥有消息中间件的模型下消息...

qiao645 ⋅ 昨天 ⋅ 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:/......

丿小贰丶 ⋅ 05/08 ⋅ 0

RabbitMQ系列(一):Windows下RabbitMQ安装及入门

1.Windows下安装RabbitMQ需要以下几个步骤 (1):下载erlang,原因在于RabbitMQ服务端代码是使用并发式语言erlang编写的,下载地址:http://www.erlang.org/downloads,双击.exe文件进行安装就...

xiaomin0322 ⋅ 05/09 ⋅ 0

openstack 最简单的 RabbitMQ 监控方法

先来看张图: 这是 Nova 的架构图,我们可以看到有两个组件处于架构的中心位置:数据库和Queue。数据库保存状态信息,而几乎所有的 nova-* 服务都直接依赖于 Queue 实现服务之间的通信和调用...

zhongbeida_xue ⋅ 05/09 ⋅ 0

Centos7 上安装配置 RabbitMQ

一、安装Erlang环境   网上百度了不少安装erlang的教程,大部分都是安装到一半就他丫的翻车了,搞得我好心累                1、在安装erlang之前先安装下依赖文件(这一步不要...

yzy121403725 ⋅ 05/02 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 今天 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Springboot2 之 Spring Data Redis 实现消息队列——发布/订阅模式

一般来说,消息队列有两种场景,一种是发布者订阅者模式,一种是生产者消费者模式,这里利用redis消息“发布/订阅”来简单实现订阅者模式。 实现之前先过过 redis 发布订阅的一些基础概念和操...

Simonton ⋅ 今天 ⋅ 0

error:Could not find gradle

一.更新Android Studio后打开Project,报如下错误: Error: Could not find com.android.tools.build:gradle:2.2.1. Searched in the following locations: file:/D:/software/android/andro......

Yao--靠自己 ⋅ 昨天 ⋅ 0

Spring boot 项目打包及引入本地jar包

Spring Boot 项目打包以及引入本地Jar包 [TOC] 上篇文章提到 Maven 项目添加本地jar包的三种方式 ,本篇文章记录下在实际项目中的应用。 spring boot 打包方式 我们知道,传统应用可以将程序...

Os_yxguang ⋅ 昨天 ⋅ 0

常见数据结构(二)-树(二叉树,红黑树,B树)

本文介绍数据结构中几种常见的树:二分查找树,2-3树,红黑树,B树 写在前面 本文所有图片均截图自coursera上普林斯顿的课程《Algorithms, Part I》中的Slides 相关命题的证明可参考《算法(第...

浮躁的码农 ⋅ 昨天 ⋅ 0

android -------- 混淆打包报错 (warning - InnerClass ...)

最近做Android混淆打包遇到一些问题,Android Sdutio 3.1 版本打包的 错误如下: Android studio warning - InnerClass annotations are missing corresponding EnclosingMember annotation......

切切歆语 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部