当前位置:主页 > java教程 > 基于RabbitMQ的简单应用(详解)

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

发布:2020-02-05 17:11:56 183


给网友们整理Java相关的编程文章,网友黄暖姝根据主题投稿了本篇教程内容,涉及到RabbitMQ、基于RabbitMQ的简单应用(详解)相关内容,已被388网友关注,相关难点技巧可以阅读下方的电子资料。

基于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的简单应用(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。


相关文章

  • Spring Boot 如何配置多个RabbitMQ

    发布:2020-02-05

    本篇文章主要介绍了Spring Boot 配置多个RabbitMQ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧


  • RabbitMq消息防丢失功能实现方式讲解

    发布:2023-04-23

    这篇文章主要介绍了RabbitMq消息防丢失功能实现,RabbitMQ中,消息丢失可以简单的分为两种:客户端丢失和服务端丢失。针对这两种消息丢失,RabbitMQ都给出了相应的解决方案


  • spring boot集成rabbitmq的代码实例

    发布:2019-10-24

    这篇文章主要给大家介绍了关于spring boot集成rabbitmq的相关资料,springboot集成RabbitMQ非常简单,文中通过示例代码介绍的非常详细,需要的朋友们可以参考借鉴,下面随着小编来一起学习学习吧


  • java获取rabbitmq消息总数是多少

    发布:2019-07-04

    在本篇文章中小编给各位分享了关于java获取rabbitmq消息总数的知识点以及实例代码内容,有需要的朋友们跟着学习参考下。


  • springboot实现rabbitmq的队列初始化和绑定的具体方法

    发布:2021-06-01

    这篇文章主要介绍了springboot实现rabbitmq的队列初始化和绑定,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • 如何利用rabbitMq的死信队列实现延时消息

    发布:2023-04-26

    这篇文章主要介绍了如何利用rabbitMq的死信队列实现延时消息问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


  • RabbitMQ实现Work Queue工作队列的示例详解

    发布:2023-03-05

    工作队列(又称任务队列)的主要思想是避免立即执行资源密集型任务,而不得不等待它完成。本篇文章将记录和分享RabbitMQ工作队列相关的知识点,希望对大家有所帮助


  • django+celery+RabbitMQ自定义多个消息队列的实现

    发布:2023-03-28

    本文主要介绍了django+celery+RabbitMQ自定义多个消息队列的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


网友讨论