一、概述
作用:异步消费数据,异步发邮件,异步查询操作
当前远程调用等许多框架rpc技术广泛应用,但面对大规模和复杂度都越来越高的分布式系统,这些技术有以下局限性:
1、同步通信:客户发出调用后,必须等待服务对象完成处理并返回结果才能断续执行。
2、客户和服务对象的生命周期紧密耦合:客户端和服务端都必须正常运行,如遇服务对象崩溃或网络故障导致客户端的请求不可达,客户端会接收到异常。
3、点对点通信:客户的一次调用只发送给某单个目标对象。
面向消息的中间件(Message Oriented Middleware,MOM)较好的解决了以上问题,发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息发给接收者。
JAVA消息服务(JMS)定义了JAVA中访问消息中间件的接口。JMS只是接口,并没有给予实现。实现JMS接口的消息中间件称为JMS Provider,已有的MOM系统包括Apache的ActiveMqQ,阿里巴巴RocketMQ,IBM的MQServices,Microsoft的MSMQ,BEA的MessageQ,RabbitMQ等。都遵循JMS规范。
二、JMS实现接口的消息中间件
Provider(MessageProvider):生产者
Consumer(MessageConsumer):消费者
P2P:Point to point,点对点消息模型
Pub/Sub:Publish/Subscribe,发布/订单消息模型
Queue:队列目标
Topic:主题目标
ConnectionFactory:连接工厂,JMS用它创建连接
Connection:JMS客户端到JMS Provider的连接
Destination:消息的目的地
Session:会话,一个发送或接收消息的线程
三、JMS定义了五种不同的消息正文格式
StreamMessage Java原始值的数据流
MapMessage Map类型键值对
TextMessage 字符串对对象
ObjectMessage 序列化的Java对象
BytesMessage 未解释字节的数据流
四、各消息中件间对比
1、rocketMQ:经过阿里双十一检测,具有高吞吐量和大数据处理能力。(不开源)
2、rabbitMQ:性能不错,数据高可靠,支持集群。
Kafka:性能高,吞吐量大。主要利用pageCache,将数据存储到内存中。并不是采用持久化方式(数据落地方式、刷盘方式)来保证数据的可靠性,而是使用replicate(在内存中保存多份数据)来保证高可用。可能会产生少量数据丢失。
3、activeMQ:IO支持随机和顺序读写,满足80%以上的场景KahaDB,LevelDB,MYSql等。
分享到:
相关推荐
作为消息中间件的MQ在java开发中起着举足轻重的地位,无论是ActiveMQ、RabbitMQ、还是RokcetMQ至少要会一个,否则别说自己是java程序员。Java自学网整理了目前行业最常用的消息中间件视频供大家学习。
activemq消息中间件-视频教程activemq消息中间件-视频教程activemq消息中间件-视频教程activemq消息中间件-视频教程
基于ActiveMQ的消息中间件 Workspace1\2\3\4分别对应消息生产者、消费者、日志appender、和demo 同时具有METAR报文的译码功能,日志记录功能。 日志记录功能请在properties中进行配置
ActiveMQ与spring整合,完成消息的发布和订阅功能
最全的基于spring mvc的JMS+activeMQ实现的消息中间件代码例子,源程序和apache-activemq-5.10.0-bin.zip
ActiveMQ RabbitMQ RokcetMQ Kafka实战 消息队列中间件视频教程
中间件技术 实验三 消息中间件应用开发: - CSDN博客 https://blog.csdn.net/lly1122334/article/details/80139790
教程视频:Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件
Apache ActiveMQ是Apache软件基金会所研发的开放源代码消息中间件;由于ActiveMQ是一个纯Java程序,因此只需要操作系统支持Java虚拟机,ActiveMQ便可执行。
ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。 下载本压缩包后解压运行里面的activemq.bat即可。 http://192.168.0.61:8161/ 是管理ActiveMQ的后台管理系统入口, 如需在JAVA中使用,请下载本人的 ...
ActiveMQ RabbitMQ RokcetMQ Kafka实战 消息队列中间件视频教程
ActiveMQ消息中间件-5.11.1
主要对ActiveMQ消息中间件的使用,以及面试结合项目问到的问题;
【面试资料】-(机构内训资料)ActiveMQ消息中间件面试题
当前使用较多的消息中间件有RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ等。本套视频以Apache的ActiveMQ作为切入点,分为基础/实战/面试上中下三大部分,带你从零基础入门到熟练掌握ActiveMQ,能够结合...
SpringBoot整合ActiveMQ(消息中间件)实现邮件发送功能,里面含有详细业务逻辑代码,配置文件等
ActiveMQ消息中间件面试题,含详细解答
ActiveMQ消息中间件面试专题 Dubbo的过去、现在以及未来 Dubbo面试及答案(上)