
RabbitMQ技术入门与实战
文章平均质量分 88
RabbitMQ是一款分布式企业级消息队列系统,具有高可用、高并发、可扩展、易管理等特点。是一款相对完善的消息队列方案。
Super_RD
这个作者很懒,什么都没留下…
展开
-
(十四)RabbitMQ消息队列-启用SSL安全通讯
如果RabbitMQ服务在内网中,只有内网的应用连接,我们认为这些连接都是安全的,但是个别情况我们需要让RabbitMQ对外提供服务。这种情况有两种解决方案:在RabbitMQ外层在封装一层应用,应用对外提供服务,本质来说RabbitMQ还是只对内网提供服务。相对更安全,但灵活性差。RabbitMQ直接对外提供服务。这时除了服务本身的安全性还要考虑数据在互联网传输过程中是否可能被拦截破解。业界标原创 2017-05-08 10:30:48 · 17307 阅读 · 9 评论 -
(十三)RabbitMQ消息队列-VirtualHost与权限管理
VirtualHost像mysql有数据库的概念并且可以指定用户对库和表等操作的权限。那RabbitMQ呢?RabbitMQ也有类似的权限管理。在RabbitMQ中可以虚拟消息服务器VirtualHost,每个VirtualHost相当月一个相对独立的RabbitMQ服务器,每个VirtualHost之间是相互隔离的。exchange、queue、message不能互通。 在RabbitMQ中无法原创 2017-05-05 10:29:48 · 18392 阅读 · 4 评论 -
(十二)RabbitMQ消息队列-性能测试
硬件配置宿主机用的联想3850X6的服务器四颗E7-4850v3的处理器,DDR4内存,两块1.25TB的pcie固态。在宿主机上使用的事esxi5.5的虚拟化平台,在子系统中安装RabbitMQ和测试脚本,RabbitMQ配置如下: CPU:24核 内存:24GB 硬盘:24GB固态确定哪些参数可能影响性能:进程数、是否持久化、是否ack确认以及交换机模式。其实交换机模式更多应该影响发布消息原创 2017-05-03 18:03:42 · 15891 阅读 · 4 评论 -
(十一)RabbitMQ消息队列-如何实现高可用
在前面讲到了RabbitMQ高可用集群的搭建,但是我们知道只是集群的高可用并不能保证应用在使用消息队列时完全没有问题,例如如果应用连接的RabbitMQ集群突然宕机了,虽然这个集群时可以使用的,但是应用订阅的连接就断开了,如果有个机房外网出口带宽被挖掘机弄断了,那集群依然是不可用的。所以我们后面会介绍应用APP如何与连接集群来保证两者配合默契,以及如何实现跨机房的集群复制。应用连接集群高可用前面讲到原创 2017-05-02 16:10:51 · 14577 阅读 · 6 评论 -
(十)RabbitMQ消息队列-高可用集群部署实战
前几章讲到RabbitMQ单主机模式的搭建和使用,我们在实际生产环境中出于对性能还有可用性的考虑会采用集群的模式来部署RabbitMQ。RabbitMQ集群基本概念Rabbit模式大概分为以下三种:单主机模式、普通集群模式、镜像集群模式。单主机模式:RabbitMQ服务运行在单独的一台主机中,通常生产环境不使用该模式,性能有限,并且如果服务器宕机服务将完全不可用。普通集群模式一说到集群问题瞬间变原创 2017-04-27 15:29:27 · 15087 阅读 · 6 评论 -
(九)RabbitMQ消息队列-通过Headers模式分发消息
Headers类型的exchange使用的比较少,以至于官方文档貌似都没提到,它是忽略routingKey的一种路由方式。是使用Headers来匹配的。Headers是一个键值对,可以定义成Hashtable。发送者在发送的时候定义一些键值对,接收者也可以再绑定时候传入一些键值对,两者匹配的话,则对应的队列就可以收到消息。 匹配有两种方式all和any。这两种方式是在接收端必须要用键值”x-mac原创 2017-04-27 14:58:01 · 9646 阅读 · 6 评论 -
(八)RabbitMQ消息队列-通过Topic主题模式分发消息
前两章我们讲了RabbitMQ的direct模式和fanout模式,本章介绍topic主题模式的应用。如果对direct模式下通过routingkey来匹配消息的模式已经有一定了解那fanout也很好理解。简单的可以理解成direct是通过routingkey精准匹配的,而topic是通过routingkey来模糊匹配。 在topic模式下支持两个特殊字符的匹配。* (星号) 代表任意 一个单词原创 2017-04-27 13:17:23 · 16669 阅读 · 7 评论 -
(七)RabbitMQ消息队列-通过fanout模式将消息推送到多个Queue中
前面第六章我们使用的是direct直连模式来进行消息投递和分发。本章将介绍如何使用fanout模式将消息推送到多个队列。 有时我们会遇到这样的情况,多个功能模块都希望得到完整的消息数据。例如一个log的消息,一个我们希望输出在屏幕上实时监控,另外一个用户持久化日志。这时就可以使用fanout模式。fanout模式模式不像direct模式通过routingkey来进行匹配,而是会把消息发送到所以的已原创 2017-04-26 15:20:40 · 12314 阅读 · 4 评论 -
(六)RabbitMQ消息队列-消息任务分发与消息ACK确认机制(PHP版)
在前面一章介绍了在PHP中如何使用RabbitMQ,至此入门的的部分就完成了,我们内心中一定还有很多疑问:如果多个消费者消费同一个队列怎么办?如果这几个消费者分任务的权重不同怎么办?怎么把同一个队列不同级别的任务分发给不同的消费者?如果消费者异常离线怎么办?不要着急,后面将慢慢解开面纱。我们将结合实际的应用场景来讲解更多的高级用法。任务分发机制设想如果把每个消息当做一个任务,生产者把任务发布到Rab原创 2017-04-26 12:11:34 · 15578 阅读 · 8 评论 -
(五)RabbitMQ消息队列-安装amqp扩展并订阅/发布Demo(PHP版)
本文将介绍在PHP中如何使用RabbitMQ来实现消息的订阅和发布。我使用的系统依然是Centos7,为了方便,应用服务器我使用Docker进行部署,容器环境:centos7+nginx+php5.6。运行环境,安装AMQP扩展:如何安装Docker我就不说了,网上很多教程非常简单,如果有现成的php环境可以直接使用。Docker中我使用的镜像名为webdevops/php-nginx,tag为:c原创 2017-04-24 11:00:35 · 12990 阅读 · 8 评论 -
(四)RabbitMQ消息队列-服务详细配置与日常监控管理
RabbitMQ服务管理、RabbitMQ配置文件rabbitmq.config,RabbitMQ日志,RabbitMQWEB管理插件原创 2017-04-21 16:16:04 · 17850 阅读 · 7 评论 -
(三)RabbitMQ消息队列-Centos7下安装RabbitMQ3.6.1
如果你看过前两章对RabbitMQ已经有了一定了解,现在已经摩拳擦掌,来吧动手吧!用什么系统本文使用的是Centos7,为了保证对linux不太熟悉的伙伴也能轻松上手(避免折在安装的路上),下面是我的系统镜像地址:https://pan.baidu.com/s/1gfl6Y9l 养成良好的习惯,安装好系统运行更新:yum update -yreboot //一般情况不用重启,个人习惯。有人问如原创 2017-04-19 15:08:09 · 18290 阅读 · 15 评论 -
(二)RabbitMQ消息队列-RabbitMQ消息队列架构与基本概念
没错我还是没有讲怎么安装和写一个HelloWord,不过快了,这一章我们先了解下RabbitMQ的基本概念。RabbitMQ架构说是架构其实更像是应用场景下的架构(自己画的有点丑,勿嫌弃)从图中可以看出RabbitMQ主要由Exchange和Queue两部分组成,然后通过RoutingKey关联起来,消息投递到Exchange然后通过Queue接收。 RabbitMQ消息队列基本概念RabbitMQ原创 2017-04-19 11:59:11 · 14037 阅读 · 6 评论 -
(一)RabbitMQ消息队列-RabbitMQ的优劣势及产生背景
为什么学习和使用RabbitMQ、RabbitMQ的优劣势分析、RabbitMQ产生的背景。原创 2017-04-18 16:22:56 · 14766 阅读 · 16 评论 -
rabbitmq.config详细配置参数
KeyDocumentationtcp_listeners用于监听 AMQP连接的端口列表(无SSL). 可以包含整数 (即"监听所有接口")或者元组如 {"127.原创 2017-04-21 16:16:41 · 25446 阅读 · 1 评论