java订阅发布模型_JMS学习-JAVA简单实现生产者、消费者的P2P(point-to-point)模型

最近学习知识点,频繁出现消息机制相关字眼。之前只是用过一些消息队列框架,如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最简化实现点对点模式

9b1551003fe7830dbae577b4dc3ec318.png

代码包含五个部分:

队列的相关代码

消息队列(用于存储生产的消息 Queue)

消息服务端(用于接收客户端发来的消息进行处理)

消息客户端(提供发布、订阅的方法)

使用队列方的相关代码

生产者(利用客户端生产消息)

消费者(利用客户端消费消息)

消息队列相关代码

之前的tomcat默认连接器多线程处理,也有object.wait()\notifyAll()等类似用法

tomcat的servlet多线程处理

消息服务端

消息客户端

4.生产者

5.消费者

当然这不是最简化的代码,可以根据要求重新调整、删除扩展代码。通过这里的学习,可以比较清楚的了解到消息队列相关框架的最简单的实现,各种MQ又基于此进行了各种扩充。之后可以对其中的IO处理、模式设计等的优化、升级进行学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值