JMS简介和原理
一、概述
1.1 简述:
JMS (java massage Service)是一套消息标准,能在 JSR343 找到。它运行在java平台上创建、发送、接受和阅读邮件。通过可靠的异步来通信实现程序的松耦合,以及实现分布式通信。官方解释有点绕,但是理解原理和实现方式非常降单。JMS是一种消息中间件的实现。
1.2 分布服务
在计算机发展过程中,操作系统的发展是典型利用了分层、分模块设计的软件。系统的通信协议、文件系统、驱动等内核提供的默认服务,一个模块、一个模块的多个层次给我们提供服务。查看操作系统的任务管理器、可以看见除了在屏幕上运行的软件(默认大家通过屏幕操作),还有很多其它说不上名字的进程。这些进程或者说是服务,就是为了给操作系统提供强大服务的主力,如果每一个软件把这些服务内置,那将是一个灾难。从这我们能看成软件,或者说是一个大型的完整的系统是把相同的服务通过分层一个一个独立出来。从而完成了低耦合、健壮、易扩展的软件工程。
1.3 服务通信
保证不同服务之间的数据交互,是分布系统的核心,或者说是一个基础。从系统层来说,可以通过网络协议通信。其中最出名的是tcp/ip,http协议。应用层来说也许要自定义的一些协议,从而生成更加通用的api。JMS就是这样一个消息协议。
1.4 JMS的原理
JMS是一个消息中间的API,通过程序和消息服务的服务器的通信,可以将工程的链式结构分解成多个服务。JMS通过生产者、消费模式来实现通信,也就是说工程和消息服务器连接都是tcp/ip的长连接,JMS模型分为:点对点模型(p2p:一对一)和发布/订阅模型(Pub/Sub:一对多)。
1.5 JMS应用
例如:登录设计的时候,除了在users表中插入账户信息,我们可能还需要给其它表来插入数据完善用户信息。如果每一个用户都这样完成注册,当用户量大的时候,用户体验就会很不好。这个时候,如果我们之保留users信息插入,将其它的步骤通过JMS延后执行,就能解决访问高时的延迟感。
沿着这个思路,可以将不同的步骤整合成服务,在不同的平台,不同的环境中运行。只要能通过TCP/ip,利用JMS的消息模型来传递重要信息,就完成了一个分布式系统。
1.6 JMS的模型
a)JMS的两种模型:
b)使用:
使用前:
使用后: