Share to: share facebook share twitter share wa share telegram print page

Java消息服务

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

Java消息服务的规范包括两种消息模式,点对点和发布者/订阅者。许多提供商支持这一通用框架因此,程序员可以在他们的分布式软件中实现面向消息的操作,这些操作将具有不同面向消息中间件产品的可移植性。

Java消息服务支持同步和异步的消息处理,在某些场景下,同步消息是必要的;在其他场景下,异步消息比同步消息操作更加便利。

Java消息服务支持面向事件的方法接收消息,事件驱动的程序设计现在被广泛认为是一种富有成效的程序设计范例,程序员们都相当熟悉。

在应用系统开发时,Java消息服务可以推迟选择面对消息中间件产品,也可以在不同的面对消息中间件切换。

历史

Java消息服务是一个在 Java标准化组织JCP)内开发的标准(代号JSR 914)。2001年6月25日,Java消息服务发布JMS 1.0.2b,2002年3月18日Java消息服务发布 1.1,统一了消息域。

体系架构

JMS元素

JMS由以下元素组成。

JMS提供者
连接面向消息中间件的,JMS接口的一个实现。提供者可以是Java平台的JMS实现,也可以是非Java平台的面向消息中间件的适配器。
JMS客户
生产或消费消息的基于Java的应用程序或对象。
JMS生产者
创建并发送消息的JMS客户。
JMS消费者
接收消息的JMS客户。
JMS消息
包括可以在JMS客户之间传递的数据的对象
JMS队列
一个容纳那些被发送的等待阅读的消息的区域。队列暗示,这些消息将按照顺序发送。一旦一个消息被阅读,该消息将被从队列中移走。
JMS主题
一种支持发送消息给多个订阅者的机制。

JMS模型

Java消息服务应用程序结构支持两种模型:

在点对点或队列模型下,一个生产者向一个特定的队列发布消息,一个消费者从该队列中读取消息。这里,生产者知道消费者的队列,并直接将消息发送到消费者的队列。这种模式被概括为:

  • 只有一个消费者将获得消息
  • 生产者不需要在接收者消费该消息期间处于运行状态,接收者也同样不需要在消息发送时处于运行状态。
  • 每一个成功处理的消息都由接收者签收

发布者/订阅者模型支持向一个特定的消息主题发布消息。0或多个订阅者可能对接收来自特定消息主题的消息感兴趣。在这种模型下,发布者和订阅者彼此不知道对方。这种模式好比是匿名公告板。这种模式被概括为:

  • 多个消费者可以获得消息
  • 在发布者和订阅者之间存在时间依赖性。发布者需要建立一个订阅(subscription),以便客户能够订阅。订阅者必须保持持续的活动状态以接收消息,除非订阅者建立了持久的订阅。在那种情况下,在订阅者未连接时发布的消息将在订阅者重新连接时重新发布。

使用Java语言,JMS提供了将应用与提供数据的传输层相分离的方式。同一组Java可以通过JNDI中关于提供者的信息,连接不同的JMS提供者。这一组类首先使用一个连接工厂以连接到队列或主题,然后发送或发布消息。在接收端,客户接收或订阅这些消息。

JMS应用程序接口

Java消息服务的API在javax.jms包中提供。

ConnectionFactory 接口(连接工厂)

用户用来创建到JMS提供者的连接的被管对象。JMS客户通过可移植的接口访问连接,这样当下层的实现改变时,代码不需要进行修改。 管理员在JNDI名字空间中配置连接工厂,这样,JMS客户才能够查找到它们。根据消息类型的不同,用户将使用队列连接工厂,或者主题连接工厂。

Connection 接口(连接)

连接代表了应用程序和消息服务器之间的通信链路。在获得了连接工厂后,就可以创建一个与JMS提供者的连接。根据不同的连接类型,连接允许用户创建会话,以发送和接收队列和主题到目标。

Destination 接口(目标)

目标是一个包装了消息目标标识符的被管对象,消息目标是指消息发布和接收的地点,或者是队列,或者是主题。JMS管理员创建这些对象,然后用户通过JNDI发现它们。和连接工厂一样,管理员可以创建两种类型的目标,点对点模型的队列,以及发布者/订阅者模型的主题。

MessageConsumer 接口(消息消费者)

由会话创建的对象,用于接收发送到目标的消息。消费者可以同步地(阻塞模式),或异步(非阻塞)接收队列和主题类型的消息。

MessageProducer 接口(消息生产者)

由会话创建的对象,用于发送消息到目标。用户可以创建某个目标的发送者,也可以创建一个通用的发送者,在发送消息时指定目标。

Message 接口(消息)

是在消费者和生产者之间传送的对象,也就是说从一个应用程序创送到另一个应用程序。一个消息有三个主要部分:

  1. 消息头(必须):包含用于识别和为消息寻找路由的操作设置。
  2. 一组消息属性(可选):包含额外的属性,支持其他提供者和用户的兼容。可以创建定制的字段和过滤器(消息选择器)。
  3. 一个消息体(可选):允许用户创建五种类型的消息(文本消息,映射消息,字节消息,流消息和对象消息)。

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

Session 接口(会话)

表示一个单线程的上下文,用于发送和接收消息。由于会话是单线程的,所以消息是连续的,就是说消息是按照发送的顺序一个一个接收的。会话的好处是它支持事务。如果用户选择了事务支持,会话上下文将保存一组消息,直到事务被提交才发送这些消息。在提交事务之前,用户可以使用回滚操作取消这些消息。一个会话允许用户创建消息生产者来发送消息,创建消息消费者来接收消息。

JMS提供者实现

要使用Java消息服务,你必须要有一个JMS提供者,管理会话和队列。现在既有开源的提供者也有专有的提供者。

开源的提供者包括:

专有的提供者包括:

一个详尽的JMS提供者对比矩阵可以在这里页面存档备份,存于互联网档案馆)看到。

如果你计划在一个服务器集群中运行你的程序,你需要检查提供者是否实现了对负载均衡和故障恢复的支持。

参见

外部链接

Read other articles:

1

Si amiestes dalgún datu, pues siguir l'enllaz del día pa inxertar el datu ellí tamién. ¡Gracies! Añu 1 Años: 3 e.C. 2 e.C. 1 e.C. - 1 - 2 3 4 Décades: Años 20 e.C. Años 10 e.C. Años 0 e.C. - Años 0 - Años 10 Años 20 Años 30 sieglos: sieglu I e.C. - sieglu I - sieglu II 1 n'otros calendarios Calendariu gregorianu 1 I Ab urbe condita 754 Calendariu armeniu N/A Calendariu chinu 2697 – 2698 Calendariu hebréu 3761 – 3762 Calendarios hindús- Vikram Samvat- Shaka Samvat ...

 

Overproduction of platelets in the bone marrow Medical conditionEssential thrombocythemiaOther namesEssential thrombocythaemia, essential thrombocytosis, primary thrombocytosisHistopathological image representing a bone marrow aspirate in a patient with essential thrombocythemia.SpecialtyHematology SymptomsFatigue, insomnia, migraines, headache, and dizziness.[1]ComplicationsThrombosis, transient ischemic attack, acute coronary syndrome, Budd-Chiari syndrome.[1]CausesOver...

 

Prelat teritorial merupakan, dalam penggunaan Katolik, prelat yang memiliki yurisdiksi geografis, yang disebut prelatur teritorial, tidak termasuk keuskupan dan dianggap sebagai gereja tertentu. Prelat teritorial kadang-kadang disebut prelat nullius, dari bahasa Latin nullius diœceseos, prelat bukan keuskupan, yang berarti wilayah tersebut jatuh langsung di bawah yurisdiksi 'terkecuali dari Tahta Suci (Paus Roma) dan bukan keuskupan di bawah uskup yang menetap. Istilah ini juga digunakan dal...

هذه المقالة بحاجة لصندوق معلومات. فضلًا ساعد في تحسين هذه المقالة بإضافة صندوق معلومات مخصص إليها. هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسين هذه المقالة بإضافة وصلات إلى المقالات المتعلقة بها الموجودة في ال�...

 

Men's 200 metres at the 2015 World ChampionshipsVenueBeijing National StadiumDates25 August (heats)26 August (semifinals)27 August (final)Competitors58 from 44 nationsWinning time19.55Medalists  Usain Bolt   Jamaica Justin Gatlin   United States Anaso Jobodwana   South Africa← 20132017 → Video on YouTube Official Video @3:35 Events at the2015 World ChampionshipsTrack events100 mmenwomen200 mmenwomen400...

 

Вільнев-де-БерVilleneuve-de-Berg   Країна  Франція Регіон Овернь-Рона-Альпи  Департамент Ардеш  Округ Ларжантьєр Кантон Вільнев-де-Бер Код INSEE 07341 Поштові індекси 07170 Координати 44°33′28″ пн. ш. 4°30′10″ сх. д.H G O Висота 208 - 494 м.н.р.м. Площа 24,61 км² Населення 3028 (01-2020[...

Former railway station in Scotland Crow RoadThe site of the station in 2013General informationLocationBroomhill, GlasgowScotlandCoordinates55°52′34″N 4°18′59″W / 55.8762°N 4.3165°W / 55.8762; -4.3165Grid referenceNS551672Platforms2Other informationStatusDisusedHistoryOriginal companyLanarkshire and Dunbartonshire RailwayPre-groupingCaledonian RailwayPost-groupingLondon Midland and Scottish RailwayKey dates1 October 1896Opened[1]6 November 1960Closed...

 

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Kosasih Purwanegara – berita · surat kabar · buku · cendekiawan · JSTOR Kosasih Purwanegara Mohammad Kosasih Purwanegara (13 Maret 1913 – 4 April 2008) adalah Menteri Sosial pada Kabinet RIS. ...

 

Marienstein ist eine ehemalige Klostergemeinde, die 1928 in den Flecken Nörten-Hardenberg eingemeindet wurde. Sie liegt im südniedersächsischen Leinetal ungefähr zehn Kilometer nördlich von Göttingen und zehn Kilometer südlich von Northeim. Marienstein befindet sich im südwestlichen Teil von Nörten-Hardenberg. Marienstein Inhaltsverzeichnis 1 Geschichte 1.1 Die Eingemeindung in den Flecken Nörten 2 Bauwerke 2.1 Klostergut 2.2 Kirche 3 Literatur 4 Weblinks 5 Einzelnachweise Geschicht...

  Paloma perdiz purpúrea Estado de conservaciónEn peligro (UICN 3.1)[1]​TaxonomíaDominio: EukaryotaReino: AnimaliaFilo: ChordataSubfilo: VertebrataInfrafilo: GnathostomataSuperclase: TetrapodaClase: AvesSuperorden: NeognathaeOrden: ColumbiformesFamilia: ColumbidaeGénero: GeotrygonEspecie: Geotrygon purpurataSalvin, 1878Distribución [editar datos en Wikidata] La paloma perdiz purpúrea o paloma perdiz coroniazul (Geotrygon purpurata)[2]​ es una especie de a...

 

العلاقات المصرية السعودية   مصر   السعودية السفارات سفارة مصر في السعودية   السفير : أحمد فاروق[1]   العنوان : الرياض، السعودية سفارة السعودية في مصر   السفير : أسامة نقلي[2]   العنوان : الجيزة، مصر تعديل مصدري - تعديل   العلاق�...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Peace Anything Box album – news · newspapers · books · scholar · JSTOR (April 2023) (Learn how and when to remove this template message) 1990 studio album by Anything BoxPeaceStudio album by Anything BoxReleased1990Recorded1989–1990GenreSynth-pop...

Halaman ini berisi artikel tentang film. Untuk kegunaan lain, lihat Sayonara (disambiguasi). Sayonaraposter rilis teatrikalSutradara Joshua Logan Produser William Goetz Ditulis olehJames Michener (novel)Paul OsbornPemeranMarlon BrandoPatricia OwensJames GarnerMartha ScottMiiko TakaMiyoshi UmekiRed ButtonsRicardo MontalbanPenata musikFranz WaxmanPenyuntingArthur P. SchmidtPhilip W. AndersonDistributorWarner Bros.Tanggal rilis 05 Desember 1957 (1957-12-05) Durasi147 menitNegara Ameri...

 

هذه المقالة يتيمة إذ تصل إليها مقالات أخرى قليلة جدًا. فضلًا، ساعد بإضافة وصلة إليها في مقالات متعلقة بها. (مارس 2020) حق النساء في التصويت خلال فترة الحرب الأهلية الإسبانيةمعلومات عامةالبلد إسبانيا Women's suffrage in Francoist Spain and the democratic transition (en) تعديل - تعديل مصدري - تعديل ويكي بيانات

 

Indian TV series or program HeenaCreated byRajeev TandonDirected byJaved SayyedStarringsee belowOpening themeAisi Yeh Duniya Kyun Hai by Jagjit SinghCountry of originIndiaNo. of episodes265ProductionRunning time22 minutesOriginal releaseNetworkSony Entertainment TelevisionRelease12 June 1998 (1998-06-12) –11 July 2003 (2003-07-11) Heena is a Hindi TV serial that aired on Sony Entertainment Television. The series began to air from 12 June 1998 and ran for five years, fini...

English gangster Freddie ForemanBornFrederick Gerald Foreman (1932-03-05) 5 March 1932 (age 91)Battersea, LondonOccupationPublicanYears active1950–1990 (criminal)2000–2020 (television)OrganizationThe FirmKnown forFormer association with the Kray twinsSpouseMaureen ForemanChildren3, including JamieSignature Freddie Foreman[1] (born 5 March 1932) is an English publican, gangster, former associate of the Kray twins and convicted criminal. Foreman was a prominent figure...

 

Kammerorchester Basel Das Kammerorchester Basel ist ein Schweizer Kammerorchester. Konzerte finden regelmässig in Basel und der Region statt. Zudem gastiert das Orchester auf internationalen Festivals und tritt in den Konzerthäusern europäischer Musikzentren wie London, Amsterdam, Köln, Berlin, Zürich, München, Wien, Valencia oder Paris auf. Inhaltsverzeichnis 1 Geschichte 2 CD-Einspielungen 2.1 Diskografie 3 Auszeichnungen 4 Uraufführungen 5 Weblinks 6 Einzelnachweise Geschichte Das K...

 

Pesawat Lion Air dan AirAsia di Bandara Ngurah Rai, Bali, dua maskapai penerbangan bertarif rendah yang bersaing di pasar Asia Tenggara Maskapai penerbangan bertarif rendah (bahasa Inggris: Low-cost carrier, sering disingkat LCC) adalah maskapai penerbangan yang memberikan tarif rendah namun dengan menghapus beberapa layanan penumpang yang biasa. Konsep ini diperkenalkan di Amerika Serikat sebelum menyebar ke Eropa pada awal 1990-an dan seluruh dunia. Cara tersebut dimulai pada industri m...

Title character of the 1995 Disney animated film of the same name Fictional character PocahontasPocahontas characterPocahontas as she appears in Pocahontas (1995).First appearancePocahontas (1995)Created by Carl Binder Susannah Grant Philip LaZebnik Voiced byIrene Bedard (speaking voice)Judy Kuhn (singing voice)Based onPocahontasIn-universe informationOccupationPowhatan paramount chiefAmbassador to British EmpirePeacekeeperMaize cultivator (formerly)AffiliationDisney PrincessesFamilyChief Pow...

 

VignolaGiacomo Barozzi da VignolaLahirJacopo[a] Barozzi[b] da Vignola(1507-10-01)1 Oktober 1507Vignola, Kadipaten Ferrara (bagian dari Italia sekarang)Meninggal7 Juli 1573(1573-07-07) (umur 65)Rome, Negara Kepausan (bagian dari Italia sekarang)KebangsaanItaliaDikenal atasArsitektur, desain tamanKarya terkenalVilla FarneseGereja GesuVilla LanteGerakan politikMannerisme Giacomo[a] Barozzi[b] da Vignola (UK /vɪnˈjoʊlə/ vin-YOH-lə,[1] US /viːnˈ-...

 
Kembali kehalaman sebelumnya