这篇文章主要为大家展示了“RabbitMQ的应用示例”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“RabbitMQ的应用示例”这篇文章吧。虽然后台使用了读写分离技术,能够在一定程度上抗击高并发,
这篇文章主要为大家展示了“RabbitMQ的应用示例”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“RabbitMQ的应用示例”这篇文章吧。
虽然后台使用了读写分离技术,能够在一定程度上抗击高并发,但是如果并发量特别巨大时,主数据库不能同时处理高并发的请求,这时数据库容易宕机。
问题:
现在的问题是如何既能保证数据库正常运行,又能实现用户数据的入库操作?
解决方案:
引入rabbitMQ技术:
说明:
当数据库的访问压力过载时,这时会将过载以后的数据先保存到rabbitMQ中。其中的数据结构是队列的形式,先进先出。这时数据库从队列中取数据执行。一直到队列中的数据全部操作完成为止。
RabbitMQ就是消息的中间件。
RabbitMQ介绍:
RabbitMQ性能分析:
ActiveMQ:是apache的产品 做业务用图广泛
RabbitQM:是爱立信的产品(早期手机生产厂商)基于erlang语言(函数式编程大数据 Scala语言)
ZeroMQ:大数据中应用广泛,缺点容易丢失数据.但是业务系统中使用率较少
RabbitMQ环境搭建:
配置jdk:
固定虚拟机IP地址:
连接虚拟机:
编辑文件跳转路径:
Vim Go
Cd /usr/local/src
安装rabbitMQ:
新建文件rabbitmq
/usr/local/src/rabbitmq
将安装文件导入
安装rabbitMQ
开启远程用户访问:
将文件复制到指定目录下:
cp /usr/share/doc/rabbitmq-server-3.6.1/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
修改新复制的文件64行
将%%去掉
将,号去掉
修改为:
开启rabbitMQ:
执行命令:
rabbitmq-plugins enable rabbitmq_management
表示启动成功
开放端口15672和5672
iptables -I INPUT -p tcp --dport 15672 -j ACCEPT
访问rabbitMQ的控制台
iptables -I INPUT -p tcp --dport 5672 -j ACCEPT
程序连接rabbitMQ的端口
或者关闭防火墙
启动/停止服务
service rabbitmq-server start 启动
service rabbitmq-server stop 停止
service rabbitmq-server restart 重启
远程登录:
访问:
Http://192.168.154.137:15672/
用户名和密码都是guest
视图解析:
建立管理员:
构建虚拟主机:
构建虚拟主机:
rabbitMQ的工作模式:
简单模式:
p:proverder 生产者
c:consumer 消费者
红色部分:队列 先进先出
原理说明:
生产者负责向队列中添加消息.消费者负责消费队列中的消息.
消费者通过监听器,实时监控消息队列.如果消息队列中有消息则消费,如果没有消息 则等待消息.
测试代码:
定义Connection
1.定义生产者
定义消费者:
工作模式:
原理说明:
生产者为消息队列中生产消息,多个消费者争抢执行权利,谁抢到谁执行.
实用场景:秒杀业务 抢红包等
测试代码:
发布订阅模式:
x:exchange 交换机
P:表示生产者
C1-2:表示多个消费者
原理说明:
当生产者生产消息后,先将消息发往交换机.交换机再将消息发往订阅了当前消息的队列,再次有各个队列的消费者执行.
类似于 广播
定义消费者::
路由模式:
x:表示交换机 type=direct 表示路由
路由模式中,需要定义路由key
原理说明:
当生产者发布消息时,会定义指定的路由key 例如 key:error
这时交换机会根据路由key发往满足条件的队列中.如果队列中没有符合条件的路由key将不能执行该消息.
主题模式:
Type:topic 表示主题模式
* (star) can substitute for exactly one Word.
# (hash) can substitute for zero or more words.
有坑 效果一样
订单实现RabbitMQ
引入配置文件:
classpath:jdbc.propertiesclasspath:env.properties /hp月n、 口山闰廷比二曰站叩四瞿二月当“习 classpath:rabbitmq.properties IUe> /value>" v:shapes="图片_x0020_42">
引入生产者
引入配置文件
定义发送端
发送端代码
通过代码相rabbitmq中发送数据
定义接收端:
引入配置文件
定义接收端:
测试成功
以上是“RabbitMQ的应用示例”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!
--结束END--
本文标题: RabbitMQ的应用示例
本文链接: https://www.lsjlt.com/news/221444.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
2024-05-16
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0