消息中间件概念:
关注于数据的发生和接收,利用高效可靠的异步消息传递机制集成分布式系统
JMS:
java消息服务(java Message Service),是一个Java平台中关于面向消息中间件的API,用于在两个程序之间,或分布式系统中发送消息,进行异步通信
AMQP (advanced message queuing protocol):
是一个提供统一消息服务的应用层标准协议,基于此协议的客户端消息中间件可传递消息,
并不受客户端\中间件不同产品,不同开发语言等条件的限制
ActiveMQ:(最流行的,能力强劲的开源消息总线)
特性:
1.多种语言和协议编写客户端 2.完全支持JMS1.1和J2EE1.4规范(持久化,XA消息,事务) 3.虚拟主题、组合目的、镜像队列
RabbitMQ:
(开源的AMQP实现,erlang语言编写,用于分布式系统中存储转发消息,有易用性、扩展性、高可用性)
特性:
1.支持多种客户端 2.AMQP完整实现 3.事务支持\发布确认 4.消息持久化
kafka: (高吞吐量的分布式发布订阅消息系统,分布式、分区、可靠的分布式日志存储服务 )
特性:
1.通过O(1)的磁盘数据结构提供消息的持久化, 对于即使数以TB的消息存储也能保持长时间的稳定性 2.高吞吐量:即使非常普通的硬件Kafka也可以支持每秒数百万的消息 3.Partition、Consumer Group
优点:解耦、异步、横向扩展(启动多台系统同时处理)、安全可靠、顺序保证等
jms 中间件
333333333
2222222222
1111111
111111111
jms:java message server,Java消息服务
jms消息模式:队列模式
客户端包括生产者和消费者
队列的消息只能被一个消费者消费
消费者可以随时消费队列中的消息
主题模式:
客户端包括发布者和订阅者
主题中的消息被所有订阅者消费
消费者不能消费订阅之前就发送到主题中的消息
jms队列模型,队列中的消息只能被一个消费者消费;消费者可以随时消费队列中的消息;
在windows上安装activeMQ
1.去官网下载安装包
2.在本地磁盘上解压安装包
以管理员的身份运行bin文件夹下的win64文件夹中的activemq.bat
在浏览器种输入http://127.0.0.1:8161/验证是否运行成功,进入管理界面密码和用户名都是admin
源码地址 源码可以看这里
集群系统处理消息方案
pom文件 JMS演示
pom文件 JMS演示
一个生产者被两个消费者平均的消费了生产的消息
创建AppProducer.java类,并创建访问地址url、队列名queueName;
创建目录
演示的两种模式:
队列模式;
主题模式
创建Maven项目;
添加activemq-all依赖;
Windows平台安装ActiveMQ