JMS解析(一)——JMS简介

JMS解析(一)——JMS简介消息中间件 MQ 及 ActiveMQ 介绍 踩踩踩从踩的博客 CSDN 博客 前言 上篇文章对消息中间件做了个解析 以及 ActiveMQ 的安装和基本使用 做了个基本了解 因为如果不了 JMS 规范 一定是不学不好消息中间件和 ActiveMQ 本篇文章会从 JMS 是什么 以及 JMS 如何使用 API 消息如何发送

大家好,我是讯享网,很高兴认识大家。

消息中间件MQ及ActiveMQ介绍_踩踩踩从踩的博客-CSDN博客

前言

上篇文章对消息中间件做了个解析,以及ActiveMQ的安装和基本使用,做了个基本了解,因为如果不了JMS规范,一定是不学不好消息中间件和ActiveMQ,本篇文章会从JMS是什么,以及JMS如何使用API,消息如何发送,消息模型等等去解析JMS

概述

爪哇消息服务 (JMS) (oracle.com)

JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。

也就是java消息操作标准API。

为程序员制定的,少写代码,又可以操作消息中间件而提供的标准API规范, 对于应用来说只需要关心接口就行,而不管是那个消息中间件厂商实现。


讯享网

对比的是jdbc连接数据库,我们只关心接口的api是什么,而不用关心具体是那个数据库去实现的;这也是简化程序员开发的场景。但有时候,为提高效率执行我们又不得不去关心,他是如何实现和执行的。那都是后话了

API

发展历史

出于历史原因,JMS为发送和接收提供了四组可选接口信息。

  • JMS 1.0定义了两个特定于域的API,一个用于点对点消息传递(队列)和一个用于发布/订阅(主题)。尽管由于向后的原因,这些仍然是JMS的一部分兼容性它们应该被认为是完全被后来的API所取代。
  • JMS 1.1引入了一个新的统一API,它提供了一组可以用于点对点和发布/订阅消息。这里称之为经典API
  • JMS 2.0引入了一个简化的API,它提供了经典API的所有特性,但需要更少的接口,使用更简单
  • 每个API都提供了一组不同的接口,用于连接JMS提供程序和发送数据和接收消息。但是,它们都共享一组用于表示消息和消息目的地,并提供各种实用程序功能。

所有接口都在javax.jms包中。

ActiveMQ 5 实现的就是 JMS1.1  规范 

经典api构成

经典API提供的主要接口如下:

  • ConnectionFactory—客户端用于创建连接的受管对象。这接口也被简化的API使用。
  • Connection-到JMS提供程序的活动连接
  • Session-用于发送和接收消息的单线程上下文
  • MessageProducer—由会话创建的对象,用于向服务器发送消息队列或主题
  • MessageConsumer—由用于接收消息的会话创建的对象发送到队列或主题

简化api构成

简化API提供与经典API相同的消息传递功能,但需要接口更少,使用更简单。简化API提供的主要接口如下:

  • ConnectionFactory—客户端用于创建连接的受管对象。这接口也被经典API使用。
  • JMSContext—到JMS提供程序的活动连接和的单线程上下文发送和接收消息
  • JMSProducer—由JMSContext创建的对象,用于将消息发送到队列或主题
  • JMSConsumer—由JMSContext创建的对象,用于接收发送的消息到队列或主题

在简化的API中,单个JMSContext对象包含经典API中的行为API由两个独立的对象提供,一个连接和一个会话。虽然本规范将JMSContext称为具有底层“连接”和“会话”,即简化的API不使用连接和会话接口。

在activemq代码中 都是jms 包下面的操作,包括连接 session等等。 

 在jar包中源码就能看出来,我们使用的时候全是接口

API在使用时,注意对多线程情况下的处理  包括目标  连接这些都是并发安全的。但会话等 都不是线程安全的。

在api使用过程  ,一定要start ,但并不是连接创建成功就必须要start,也可以 发送消息时,进行start都可以

 包括提供了停止服务,也可以在重复启动,停止;也包括了 close 关闭方法

jms支持的消息传递方式

JMS支持企业消息传递产品提供的两种主要消息传递样式:

  • 点对点(PTP)消息传递允许客户端通过中间抽象称为队列。发送消息的客户端将消息发送到特定队列。接收消息的客户端从该队列中提取消息。

  • 发布和订阅(pub/sub)消息允许客户端向多个服务器发送消息客户端通过称为主题的中间抽象。发送消息的客户端将其发布到特定主题。然后将消息传递给所有正在访问的客户端同意这个主题。

JMS消息模型

JMS Message Mode
小讯
上一篇 2025-01-15 08:06
下一篇 2025-03-25 23:05

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/14061.html