首页 > ETC. >

ETC.

时间:2024-11-25

JMS是AS提供的消息服务。

它可以接受消息提供程序发送的消息,并将消息转发给消息使用者。

JMS是独立于供应商的API,用于访问消息传递系统。

它类似于JDBC(Java数据库连接):这里,JDBC是一种可用于访问许多不同关系数据库的API,而JMS提供了与访问消息传递服务相同的独立于供应商的访问方法。

许多供应商目前都支持JMS,包括IBM的MQSeries,BEA的Weblogic JMS服务和Progress的SonicMQ,仅举几个例子。

JMS使您可以通过消息传递服务(有时称为消息代理或路由器)将消息从一个JMS客户端发送到另一个JMS客户端。

消息是JMS中的类型对象,由两部分组成:标题和消息正文。

标头包含路由信息和有关消息的元数据。

消息体携带应用程序的数据或有效负载。

根据有效负载的类型,您可以将消息分为几种类型,分别进行:简单文本(TextMessage),可序列化对象(ObjectMessage),属性集合(MapMessage),字节流(BytesMessage),原始值流(StreamMessage) ),并且没有有效负载消息(消息)。

Java消息服务是Java标准组织(JCP)(代号JSR 914)中开发的标准。

2001年6月25日,Java Message Service发布了JMS 1.0.2b,并于2002年3月18日发布了Java Message Service 1.1,统一了消息域。

JMS是一个用于与面向消息的中间件进行通信的应用程序接口。

它支持点对点域和发布/订阅(发布/订阅)类型的域,并支持以下类型:已批准的消息传递,事务性消息传递,一致性消息和持久订阅者支持。

JMS还提供了另一种将应用程序与旧后端系统集成的方法。

●会话接口(会话)表示用于发送和接收消息的单线程上下文。

由于会话是单线程的,因此消息是连续的,这意味着消息按发送顺序逐个接收。

会话的优点是它支持事务。

如果用户选择事务支持,则会话上下文将保留一组在事务提交之前不会发送的消息。

在提交事务之前,用户可以使用回滚操作取消这些消息。

会话允许用户创建消息生成器以发送消息,消息使用者接收消息。

●MessageConsumer接口(消息使用者)由会话创建的对象,用于接收发送到目标的消息。

消费者可以同步(阻塞模式)或异步(非阻塞)接收队列和主题类型消息。

●MessageProducer接口(消息生成器)由会话创建的对象,用于将消息发送到目标。

用户可以创建目标的发件人,也可以创建在发送邮件时指定目标的通用发件人。

Message接口(消息)是在使用者和生产者之间传递的对象,即从一个应用程序到另一个应用程序。

消息有三个主要部分:消息标题(必需):包含用于标识和路由消息的操作设置。

一组消息属性(可选):包含其他属性以支持其他提供者和用户之间的兼容性。

可以创建自定义字段和过滤器(消息选择器)。

消息正文(可选):允许用户创建五种类型的消息(文本消息,映射消息,字节消息,流消息和对象消息)。

消息接口非常灵活,并提供了许多方法来自定义消息的内容。

●目标接口(目标)目标是包装消息目标标识符的托管对象。

消息目标是发布和接收消息的位置,队列或主题。

JMS管理员创建这些对象,用户通过JNDI发现它们。

与连接工厂一样,管理员可以创建两种类型的目标,一种是对等模型的队列,另一种是发布者/订阅者模型的主题。

●ConnectionFactory接口(连接工厂)用户用于创建与JMS提供程序的连接的托管对象。

JMS客户端通过可移植接口访问连接,以便在底层实现更改时不需要修改代码。

管理员在JNDI名称空间中配置连接工厂,以便JMS客户端可以找到它们。

根据消息类型,用户将使用队列连接到工厂,或者使用主题连接到工厂。

●连接接口(连接)连接表示应用程序和消息服务器之间的通信链接。

获得连接工厂后,可以创建与JMS提供程序的连接。

根据连接类型,连接允许用户创建会话以向目标发送和接收队列和主题。

JMS具有以下元素。

JMS提供程序连接到消息中间件的JMS接口的实现。

提供程序可以是Java平台的JMS实现,也可以是非Java平台的消息中间件的适配器。

JMS客户端生成或使用消息的基于Java的应用程序或对象。

●JMS Producer创建和发送消息的JMS客户端。

●JMS使用者接收消息的JMS客户端。

JMS消息包含可在JMS客户端之间传递的数据的对象。

●JMS队列保存正在发送的消息等待读取的区域。

队列意味着将按顺序发送这些消息。

读取消息后,消息将从队列中删除。

JMS主题支持向多个订阅者发送消息的机制。