当前位置:首页 > java技术文章 > 基于RabbitMQ的简单应用(详解)

详细介绍基于RabbitMQ的简单应用

  • 发布时间:
  • 作者:码农之家原创
  • 点击:183

这篇文章主要知识点是关于RabbitMQ、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Java从入门到项目实践
  • 类型:Java编程大小:73.7 MB格式:PDF作者:聚慕课教育研发中
立即下载

基于RabbitMQ的简单应用(详解)

虽然后台使用了读写分离技术,能够在一定程度上抗击高并发,但是如果并发量特别巨大时,主数据库不能同时处理高并发的请求,这时数据库容易宕机。

问题:

现在的问题是如何既能保证数据库正常运行,又能实现用户数据的入库操作?

解决方案:

引入rabbitMQ技术:

基于RabbitMQ的简单应用(详解)

说明:

当数据库的访问压力过载时,这时会将过载以后的数据先保存到rabbitMQ中。其中的数据结构是队列的形式,先进先出。这时数据库从队列中取数据执行。一直到队列中的数据全部操作完成为止。

RabbitMQ就是消息的中间件。

RabbitMQ介绍:

基于RabbitMQ的简单应用(详解)

RabbitMQ性能分析:

基于RabbitMQ的简单应用(详解)

1.MSMQ:是微软的产品 应用于.net框架

2.ActiveMQ:是apache的产品 做业务用图广泛

3.RabbitQM:是爱立信的产品(早期手机生产厂商)基于erlang语言(函数式编程大数据 scala语言)

4.ZeroMQ:大数据中应用广泛,缺点容易丢失数据.但是业务系统中使用率较少

5.KafkaMQ:大数据项目中使用,50万/秒 现在主流

5.RabbitMQ环境搭建:

1.配置JDK:

2.固定虚拟机IP地址:

基于RabbitMQ的简单应用(详解)

3.连接虚拟机:

编辑文件跳转路径:

Vim go

Cd /usr/local/src

2.安装rabbitMQ:

1.新建文件rabbitmq

/usr/local/src/rabbitmq

2.将安装文件导入

基于RabbitMQ的简单应用(详解)

3.安装rabbitMQ

基于RabbitMQ的简单应用(详解)

4.开启远程用户访问:

将文件复制到指定目录下:

cp /usr/share/doc/rabbitmq-server-3.6.1/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config

修改新复制的文件64行

基于RabbitMQ的简单应用(详解)

1.将%%去掉

2.将,号去掉

修改为:

基于RabbitMQ的简单应用(详解)

5.开启rabbitMQ:

执行命令:

rabbitmq-plugins enable rabbitmq_management

基于RabbitMQ的简单应用(详解)

表示启动成功

6.开放端口15672和5672

iptables -I INPUT -p tcp --dport 15672 -j ACCEPT

访问rabbitMQ的控制台

iptables -I INPUT -p tcp --dport 5672 -j ACCEPT

程序连接rabbitMQ的端口

或者关闭防火墙

7.启动/停止服务

service rabbitmq-server start 启动

service rabbitmq-server stop 停止

service rabbitmq-server restart 重启

基于RabbitMQ的简单应用(详解)

8.远程登录:

访问:

http://192.168.154.137:15672/

用户名和密码都是guest

基于RabbitMQ的简单应用(详解)

9.视图解析:

基于RabbitMQ的简单应用(详解)

10.建立管理员:

基于RabbitMQ的简单应用(详解)

11.构建虚拟主机:

基于RabbitMQ的简单应用(详解)

基于RabbitMQ的简单应用(详解)

11.构建虚拟主机:

基于RabbitMQ的简单应用(详解)

基于RabbitMQ的简单应用(详解)

基于RabbitMQ的简单应用(详解)

6.rabbitMQ的工作模式:

1.简单模式:

基于RabbitMQ的简单应用(详解)

p:proverder 生产者

c:consumer 消费者

红色部分:队列 先进先出

原理说明:

生产者负责向队列中添加消息.消费者负责消费队列中的消息.

消费者通过监听器,实时监控消息队列.如果消息队列中有消息则消费,如果没有消息 则等待消息.

2.测试代码:

1.定义Connection

基于RabbitMQ的简单应用(详解)

1.1.定义生产者

基于RabbitMQ的简单应用(详解)

基于RabbitMQ的简单应用(详解)

3.定义消费者:

基于RabbitMQ的简单应用(详解)

2.工作模式:

基于RabbitMQ的简单应用(详解)

原理说明:

生产者为消息队列中生产消息,多个消费者争抢执行权利,谁抢到谁执行.

实用场景:秒杀业务 抢红包等

测试代码:

基于RabbitMQ的简单应用(详解)

3.发布订阅模式:

基于RabbitMQ的简单应用(详解)

x:exchange 交换机

P:表示生产者

C1-2:表示多个消费者

原理说明:

当生产者生产消息后,先将消息发往交换机.交换机再将消息发往订阅了当前消息的队列,再次有各个队列的消费者执行.

类似于 广播

基于RabbitMQ的简单应用(详解)

定义消费者::

基于RabbitMQ的简单应用(详解)

4.路由模式:

基于RabbitMQ的简单应用(详解)

x:表示交换机 type=direct 表示路由

路由模式中,需要定义路由key

原理说明:

1.当生产者发布消息时,会定义指定的路由key 例如 key:error

2.这时交换机会根据路由key发往满足条件的队列中.如果队列中没有符合条件的路由key将不能执行该消息.

5.主题模式:

基于RabbitMQ的简单应用(详解)

Type:topic 表示主题模式

  • * (star) can substitute for exactly one word.
  • # (hash) can substitute for zero or more words.
  • 有坑 效果一样

7.订单实现RabbitMQ

1.引入配置文件:

classpath:jdbc.propertiesclasspath:env.properties /hp月n、 口山闰廷比二曰站叩四瞿二月当“习 classpath:rabbitmq.properties IUe> /value>" v:shapes="图片_x0020_42">

2.引入生产者

1.引入配置文件

基于RabbitMQ的简单应用(详解)

2.定义发送端

基于RabbitMQ的简单应用(详解)

3.发送端代码

通过代码相rabbitmq中发送数据

基于RabbitMQ的简单应用(详解)

基于RabbitMQ的简单应用(详解)

4.定义接收端:

引入配置文件

基于RabbitMQ的简单应用(详解)

5.定义接收端:

基于RabbitMQ的简单应用(详解)

6.测试成功

以上这篇基于RabbitMQ的简单应用(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

推荐内容

实例分析Java Socket实现的传输对象功能

jquery html动态生成select标签出问题该如何解决

了解MySQL和sql语句执行顺序

Python Pandas中根据列的值选取多行数据实例代码

jQuery3.0 最终发布

展开 +

收起 -

Java 相关电子书
学习笔记
网友NO.716272

SpringBoot之RabbitMQ的使用方法

一 、RabbitMQ的介绍 RabbitMQ是消息中间件的一种,消息中间件即分布式系统中完成消息的发送和接收的基础软件,消息中间件的工作过程可以用生产者消费者模型来表示.即,生产者不断的向消息队列发送信息,而消费者从消息队列中消费信息.具体过程如下: 从上图可看出,对于消息队列来说,生产者、消息队列、消费者是最重要的三个概念,生产者发消息到消息队列中去,消费者监听指定的消息队列,并且当消息队列收到消息之后,接收消息队列传来的消息,并且给予相应的处理。消息队列常用于分布式系统之间互相信息的传递。 对于RabbitMQ来说,除了这三个基本模块以外,还添加了一个模块,即交换机(Exchange)。它使得生产者和消息队列之间产生了隔离,生产者将消息发送给交换机,而交换机则根据调度策略把相应的消息转发给对应的消息队列。 交换……

网友NO.286003

详解Spring Boot 配置多个RabbitMQ

闲话 好久没有写博客了,6月份毕业,因为工作原因,公司上网受限,一直没能把学到的知识点写下来,工作了半年,其实学到的东西也不少,但是现在回忆起来的东西少之又少,有时甚至能在同个问题中踩了几次,越来越觉得及时记录一下学到的东西很重要。 好了,闲话少说,写下这段时间学习的东西,先记录一下用spring Boot配置多个RabbitMQ的情况。。。 最近公司新启动一个新平台的项目,需要用微服务这个这几年很火的概念来做,所以就学习了Spring Boot方面的知识,给同事展示Spring Boot的一些小事例的时候,同事提出了可不可以配置多个RabbitMQ?下面就是在Spring Boot配置多个RabbitMQ的例子。是自己摸索搭建的,也不知道对不对,有其他好的实现方法的网友可以互相交流一下。 项目代码构造 关注点在红框的代码。。。 代码 下面就把项目的代码展示下……

网友NO.874893

Spring Boot与RabbitMQ结合实现延迟队列的示例

背景 何为延迟队列? 顾名思义,延迟队列就是进入该队列的消息会被延迟消费的队列。而一般的队列,消息一旦入队了之后就会被消费者马上消费。 场景一:在订单系统中,一个用户下单之后通常有30分钟的时间进行支付,如果30分钟之内没有支付成功,那么这个订单将进行一场处理。这是就可以使用延时队列将订单信息发送到延时队列。 场景二:用户希望通过手机远程遥控家里的智能设备在指定的时间进行工作。这时候就可以将用户指令发送到延时队列,当指令设定的时间到了再将指令推送到只能设备。 延迟队列能做什么? 延迟队列多用于需要延迟工作的场景。最常见的是以下两种场景: 1、延迟消费。比如: 用户生成订单之后,需要过一段时间校验订单的支付状态,如果订单仍未支付则需要及时地关闭订单。 用户注册成功之后,需要过一段时……

网友NO.825701

关于Python如何操作消息队列(RabbitMQ)的方法教程

RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。下面这篇文章主要给大家介绍了关于利用Python操作消息队列RabbitMQ的方法教程,需要的朋友可以参考下。 前言 RabbitMQ是一个在AMQP基础上完整的,可复用的企业消息系统。他遵循Mozilla Public License开源协议。 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消 息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过 队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。 应用场景: RabbitMQ无疑是目前最流行的消息队列之……

网友NO.508529

java获取rabbitmq消息总数是多少

公司使用的是rabbitMQ,需要做监控预警的job去监控rabbitMQ里面的堆积消息个数,如何使用rabbitMQ获取监控的队列里面的队列消息个数呢? 首先需要创建一个连接,配置文件注入相关的值,然后设置连接的相关信息,创建链接。 导入的包是使用: import com.rabbitmq.client @Value(${spring.rabbitmq.host})private String host; @Value(${spring.rabbitmq.port})private Integer port; @Value(${spring.rabbitmq.username})private String username; @Value(${spring.rabbitmq.password})private String password; ConnectionFactory factory = new ConnectionFactory();//设置ip,port,用户名和秘密factory.setHost(host);factory.setPort(port);factory.setUsername(username);factory.setPassword(password); //创建链接Connection connection = factory.newConnection(); //创建信道Channel channel = connection.createChannel(); //创建一个type=direct 持久化的 非自动删除的交换器channel.exchangeDeclare(EXCHANGE_NAME, dire……

<
1
>

电子书 编程教程 文档 软件 源码 视频

Copyright 2018-2020 xz577.com 码农之家

本站所有电子书资源不再提供下载地址,只分享来路

免责声明:网站所有作品均由会员网上搜集共同更新,仅供读者预览及学习交流使用,下载后请24小时内删除

版权投诉 / 书籍推广 / 赞助:QQ:520161757