最近学习知识点,频繁出现消息机制相关字眼。之前只是用过一些消息队列框架,如activeMQ,rocketMQ等。也只是基于使用,偶然来了兴趣想了解下jms功能的最简化实现是什么,这里做个整理。
JMS什么?
JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。所以它只是一系列的约束/规范化的接口。
这里下载看的是 jms1.1 地址放出:https://mvnrepository.com/artifact/javax.jms/jms/1.1
这里只整理下JMS支持的五种消息类型
其他的内容还包括像工厂、Session、Exception、Security等接口,相关信息请自行查看源码。
JAVA最简化实现点对点模式
代码包含五个部分:
队列的相关代码
消息队列(用于存储生产的消息 Queue)
消息服务端(用于接收客户端发来的消息进行处理)
消息客户端(提供发布、订阅的方法)
使用队列方的相关代码
生产者(利用客户端生产消息)
消费者(利用客户端消费消息)
消息队列相关代码
之前的tomcat默认连接器多线程处理,也有object.wait()\notifyAll()等类似用法
tomcat的servlet多线程处理
消息服务端
消息客户端
4.生产者
5.消费者
当然这不是最简化的代码,可以根据要求重新调整、删除扩展代码。通过这里的学习,可以比较清楚的了解到消息队列相关框架的最简单的实现,各种MQ又基于此进行了各种扩充。之后可以对其中的IO处理、模式设计等的优化、升级进行学习。