消息队列
2023-12-13 22:12:12 0 举报
AI智能生成
ActiveMQ介绍
作者其他创作
大纲/内容
1.概述
消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题。
实现高性能,高可用,可伸缩和最终一致性架构。是大型分布式系统不可缺少的中间件。
目前在生产环境,使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ等。
2.消息队列应用场景
2.1异步处理
场景说明:用户注册后,需要发注册邮件和注册短信。传统的做法如下两种:
(1)串行方式
将注册信息写入数据库成功后,发送注册邮件,再发送注册短信。以上三个任务全部完成后,返回给客户端。
简图
分支主题
(2)并行方式
将注册信息写入数据库成功后,发送注册邮件的同时,发送注册短信。以上三个任务完成后,返回给客户端。13;与串行的差别是,并行的方式可以提高处理的时间。
原理图
分支主题
案例描述
解决方案
引入消息队列,将不是必须的业务逻辑,异步处理。
改造后的架构如下
分支主题
2.2应用解耦
场景说明
2.3流量削锋
2.4日志处理
2.5消息通讯
ActiveMQ
1.JMS简介
JMS即Java消息服务,是JavaEE的13规范之一,是一套面向消息中间件(MOM)的应用程序接口。13;用在两个程序之间,或分布式系统中发送消息,进行异步通信。
JMS使我们能够通过消息收发服务(也可以称为,消息中介程序或路由器)从一个JMS客户机向另一个JMS客户机发送消息。13;消息是JMS中的一种类型对象,由两部分组成:报头和消息主体。报头由路由信息以及有关该消息的元数据组成。13;消息主体则携带着应用程序的数据或有效负载。根据有效负载的类型来划分,消息可分为多种,13;它们分别携带:简单文本消息、可序列化的对象、属性集合、字节流、原始值流、无有效负载消息。
2.ActiveMQ简介
ActiveMQ出身名门,是Apache门下的最流行的,能力强劲的开源消息总线。13;完全支持JMS1.1和J2EE1.4规范的JMS Provide实现。13;它从设计上保证了高性能的集群,当然实现了JMS的P2P与PubSub两种开发模式。
3.安装运行ActiveMQ
下载网址:http://activemq.apache.org
进入到bin/win64文件夹下,并启动activemq.bat
在浏览器输入:http://localhost:8161/即可看到ActiveMQ的管理界面
点击:Manage ActiveMQ broker登录管理后台:(用户名、密码默认都为admin)
登录进去以后我们可以点击Queues看到消息队列以及消费者情况等
4.P2P开发模式实战
并导入ActiveMQ的核心jar包
创建消息生产者类:JMSProducer
用户下单后,订单系统需要通知库存系统。传统的做法是,订单系统调用库存系统的接口。
创建消息消费者类:JMSConsumer
5.PubSub开发模式实战
P2P的模式相当于一个消息生产者一个消费者,PubSub中可以有一个消息发布者多个消息订阅者,开发与P2P几乎一样,13;只是将createQueue(创建消息队列)改为了createTopic(创建主题);生产消息改为了发布消息;接收消息改为了订阅消息
6.总结
ActiveMQ是JMS规范的一个实现产品,主要用在两个程序之间,或分布式系统中发送消息,进行异步通信。13;可以用它来解决高并发的问题,或者分布式事务的问题等。
0 条评论
下一页