热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RabbitMQ的安装及使用

过多的描述就不扯了,本文主要记录RabbitMQ的安装以及简单使用一、RabbitMQ安装1.下载Erlang的rpm包RabbitMQ是Erlang语言编写,所以Erang环境必

  过多的描述就不扯了,本文主要记录RabbitMQ的安装以及简单使用

一、RabbitMQ安装


1.下载Erlang的rpm包

  RabbitMQ是Erlang语言编写,所以Erang环境必须要有,注:Erlang环境一定要与RabbitMQ版本匹配:https://www.rabbitmq.com/which-erlang.html

  Erlang下载地址:https://www.rabbitmq.com/releases/erlang/(根据自身需求及匹配关系,下载对应rpm包)

2.下载RabbitMQ的rpm包

  RabbitMQ下载地址:https://www.rabbitmq.com/releases/rabbitmq-server/(根据自身需求及匹配关系,下载对应rpm包)

3.下载socat的rpm包

  rabbitmq安装依赖于socat,所以需要下载socat。

  socat下载地址:http://repo.iotti.biz/CentOS/6/x86_64/socat-1.7.3.2-1.el6.lux.x86_64.rpm

4.分别安装Erlang、Socat、RabbitMQ(一定按照顺序!)

技术分享图片

  一定按照以下顺序安装

  ①rpm -ivh erlang-18.3-1.el6.x86_64.rpm

  ②rpm -ivh socat-1.7.3.2-1.el6.lux.x86_64.rpm

  ③rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm 

5.配置rabbitmq:vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app

  技术分享图片

 6.安装管理插件:rabbitmq-plugins enable rabbitmq_management

技术分享图片

 6.启动RabbitMQ,浏览器访问:http://192.168.64.128:15672/,出现以下界面说明安装完成!

  ①cd /usr/lib/rabbitmq/bin

  ②./rabbitmq-server start

技术分享图片

 二、RabbitMQ的5种模式


1、简单模式(一对一的发送)

技术分享图片

 

 ①生产者发送消息给交换机

②交换机接收消息,如果交换机没有绑定队列,消息扔进垃圾桶

③队列接收消息,存储在内存,等待消费者连接监听获取消息,消费成功后,返回确认

一些场景:短信,QQ

2、工作模式(资源的争抢)

技术分享图片

 

 ①生产者将消息发送给交换机

②交换机发送给绑定的后端队列

③一个队列被多个消费者同时监听,形成消息的争抢结构:根据消费者所在的系统的空闲、性能争抢队列中的消息

一些场景:抢红包

3、发布订阅(交换机类型为fanout)

技术分享图片

 

 注:图中未画消费者

①交换机定义类型为:fanout

②交换机绑定多个队列

③生产者将消息发送给交换机,交换机复制同步消息到后端所有的队列中

一些场景:邮件群发

4、路由模式(交换机类型:direct)

技术分享图片

 

①交换机定义类型为:direct

②交换机绑定多个队列,队列绑定交换机时,给交换机提供了一个routingkey(路由key)

③发布订阅时,所有fanout类型的交换机绑定后端队列用的路由key都是“”;在路由模式中需要绑定队列时提供当前队列的具体路由key

一些场景:错误消息的接收和提示

5、主题模式(交换机类型:topic)

技术分享图片

 

①交换机定义类型为:topic

②交换机绑定多个队列,与路由模式非常相似,做到按类划分消息

③路由key队列绑定的通配符如下:#表示任意字符串,*表示没有特殊符号(单词)的字符串

 


推荐阅读
  • 解决Spring Boot项目创建失败的问题
    在尝试创建新的Spring Boot项目时遇到了一些问题,具体表现为在项目创建过程中的两个关键步骤出现错误。本文将详细探讨这些问题及其解决方案。 ... [详细]
  • Vue 开发与调试工具指南
    本文介绍了如何使用 Vue 调试工具,包括克隆仓库、安装依赖包、构建项目以及在 Chrome 浏览器中加载扩展的详细步骤。 ... [详细]
  • 本文介绍了如何通过Java代码计算一个整数的位数,并展示了多个基础编程示例,包括求和、平均分计算、条件判断等。 ... [详细]
  • 本题要求在一组数中反复取出两个数相加,并将结果放回数组中,最终求出最小的总加法代价。这是一个经典的哈夫曼编码问题,利用贪心算法可以有效地解决。 ... [详细]
  • 本篇文章介绍如何将两个分别表示整数的链表进行相加,并生成一个新的链表。每个链表节点包含0到9的数值,如9-3-7和6-3相加得到1-0-0-0。通过反向处理链表、逐位相加并处理进位,最终再将结果链表反向,即可完成计算。 ... [详细]
  • CentOS 系统管理基础
    本文介绍了如何在 CentOS 中查询系统版本、内核版本、位数以及磁盘分区的相关知识。通过这些命令,用户可以快速了解系统的配置和磁盘结构。 ... [详细]
  • 本文详细探讨了 PHP 中 method_exists() 和 is_callable() 函数的区别,帮助开发者更好地理解和使用这两个函数。文章不仅解释了它们的功能差异,还提供了代码示例和应用场景的分析。 ... [详细]
  • 本文探讨了C++编程中理解代码执行期间复杂度的挑战,特别是编译器在程序运行时生成额外指令以确保对象构造、内存管理、类型转换及临时对象创建的安全性。 ... [详细]
  • 本文详细介绍了如何解决 Microsoft SQL Server 中用户 'sa' 登录失败的问题。错误代码为 18470,提示该帐户已被禁用。我们将通过 Windows 身份验证方式登录,并启用 'sa' 帐户以恢复其访问权限。 ... [详细]
  • 本文详细介绍了一种高效的算法——线性筛法,用于快速筛选出一定范围内的所有素数。通过该方法,可以显著提高求解素数问题的效率。 ... [详细]
  • 本文详细介绍了get和set方法的作用及其在编程中的实现方式,同时探讨了点语法的使用场景。通过具体示例,解释了属性声明与合成存取方法的概念,并补充了相关操作的最佳实践。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 本文介绍了如何通过在数据库表中增加一个字段来记录文章的访问次数,并提供了一个示例方法用于更新该字段值。 ... [详细]
  • Python notes
    6.1.1.执行模块当你用下面的方式运行一个Python模块pythonfibo.py模块中的代码将会被执行,就像导入它一样,不过此时__name__被设置为__main__。 ... [详细]
  • 本文探讨了过度依赖咖啡对生物钟的影响,以及如何合理划分学习和娱乐时间。通过反思,我们认识到即使是快乐的事情也需要适度,培养兴趣爱好应注重沉浸感和心流体验。文章还提供了一些具体的调整建议。 ... [详细]
author-avatar
Hydhuyfh________
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有