java message

Java消息系统

在本文中,我将讨论面向消息的中间件 (MOM)以及JMS如何在Enterprise Java中实现它。 此外,我还将讨论适合JMS使用的典型用例以及用于讨论消息传递解决方案的不同术语,例如Publisher / SenderDestination / Topic / QueueSubscriber / Receiver 。 我将介绍两种消息拓扑: 点对点发布/订阅

资料存取层

在Java EE应用程序的典型体系结构中,数据访问层具有与数据存储进行通信的技术,例如Java Persistence API (JPA),将应用程序连接到企业信息系统(EIS)的Java Connector Architecture (JCA)。 和Java消息服务 (JMS)。

JMS的作用是什么?

JMS用于在分布式应用程序之间以松散耦合异步可伸缩和安全的方式传递消息。 应用程序使用称为目的地的“面向消息的中间件”发送和接收消息。

异步意味着消息的发送者和接收者不需要同时与消息队列交互。 因此,接收方可以在发送消息后的某个时间接收消息。

松散耦合是因为发送者对接收者一无所知,而接收者也不了解发送者。

可扩展性意味着系统的不同部分可以根据应用程序负载以不同的速率增长。 因此,例如,如果站点上的活动突然爆发导致跨消息传递中间件发送的消息急剧增加,则可以在接收方响应或自动缩放时将消息排队。 这在系统中提供了鲁棒性,否则将难以处理突然的负载,并且应用程序将开始表现异常或完全停止工作。

何时使用JMS?

何时最佳使用JMS取决于用例,但通常情况下,它将至少属于这些用例之一。

  1. 第一个用例是:应用程序应该能够发送消息,而无需立即对该消息做出响应。 可能对消息的响应是可选的,应用程序可以在没有响应的情况下继续其正常功能,或者这纯粹是一种单向通信。
  2. 其次。 发送者不需要依赖接收者的接口,因此可以轻松更换接收者。 这归结为需要分离应用程序的各个部分。

当接收器关闭时,应用程序应继续运行。 接收器可能损坏,应用程序将继续其正常运行。 这允许鲁棒性。

术语

在谈论JMS时,需要了解一些有用的术语,以帮助我们交流意图。

目的地是消息发送的目的地 ,被称为队列主题 。 通常在JMS中将其定义为字符串值。 应该给目的地指定代表其功能的名称。

JMS系统具有发布者发送者 。 这是消息的起源,而订户接收者是消息的终止。 这里使用的术语取决于消息传递系统的拓扑结构,该拓扑结构可以是点对点发布/订阅

消息 ,这些消息有一个有效载荷,其中包含有用的信息,接收者将提取并处理这些有用的信息。 消息类型可以是文本,二进制,流,对象或属性映射。

点对点消息拓扑

在点对点设置中,消息的来源称为发件人,目的地称为队列。 在这里,消息被发送到单个目的地,并且接收者仅接收到消息的一个实例。 如果接收器关闭,则消息将保留在队列中,直到接收器启动并再次运行。

发布/订阅消息拓扑

在发布/订阅设置中,消息的来源称为发布者 ,而目的地称为主题 。 在这里,许多订阅者可以订阅一个主题,并且每个订阅者都可以接收消息的实例。 因此,一条消息发送给许多等待的订户 。 如果订户已关闭,则当它重新启动并再次运行时,它将不会收到消息。

进一步阅读

如何了解以下Java EE技术:

  • 上下文和依赖注入 (CDI)
  • 企业Java Bean (EJB)
  • JSP,JSP和表达语言
  • RESTful Web服务
  • Java持久性API

RESTful Web服务的JAX-RS

我最近发布了一个迷你系列博客,介绍了JAX-RS 。 他们讨论:

  • 如何管理bean验证失败
  • 消费者和生产者合作 ,以及
  • 如何创建JAX-RS资源实体

关于JAX-RS主题,有两个深入的系列:

  • 什么是JAX-RS批注? 深入研究开发REST端点时最常用的注释。
  • @Context注释用于什么? 深入了解@Context批注的许多用途。

接下来是什么?

如果您是Java EE的新手,那么不知所措要从企业生态系统中了解所有API。 因此,我编写并录制了视频培训课程“ 学习Java企业版” 。 这是一个为期两个小时的课程,向您介绍所有最重要的Java EE API。 关于如何使用Enterprise Java进行编程的大量演示,代码示例和练习任务,将使您成为Java EE开发人员时能说得很好。

增进知识

如果您想了解更多信息,那么有些课程将更深入地介绍每个API。 您将学习一门关于JAX-RS API的课程,通过学习如何构造RESTful端点来提高自己的知识。 WebSocket API上有一门课程,您可以学习如何开发聊天应用程序,而JSON上则有一门课程,您可以学习如何掌握JSON-Processing API课程。 即将到来的课程很多,所以为什么不现在就加入并让您的Java EE事业发展呢?

翻译自: https://www.javacodegeeks.com/2017/09/java-message-system-introduction.html

java message

java message_Java Message System简介相关推荐

  1. Java Message System简介

    Java消息系统 在本文中,我将讨论面向消息的中间件 (MOM)以及JMS如何在Enterprise Java中实现它. 另外,我将讨论适合JMS使用的典型用例以及用于讨论消息传递解决方案的不同术语, ...

  2. Java开源项目EZMorph简介

    http://hi.baidu.com/glfbin/blog/item/1302747e8722852e0cd7daaf.html Java开源项目EZMorph简介 2011-04-30 9:40 ...

  3. java.util.Stack类简介

    转载自  java.util.Stack类简介 Stack是一个后进先出(last in first out,LIFO)的堆栈,在Vector类的基础上扩展5个方法而来 Deque(双端队列)比起St ...

  4. Java关键字之break简介说明

    转自: Java关键字之break简介说明 下文是笔者总结的break关键字的功能简介说明,如下所示 break关键字的功能 break关键字的功能:用于中断for循环中断while循环中断switc ...

  5. [转载]Java嵌入式开发之一-简介使用Java编写Palm OS程序的解决方案

    Java嵌入式开发之一-简介使用Java编写Palm OS程序的解决方案 现在,使用Java语言为 Palm OS编写程序的领域还没有完全统一,并且也有许多程度上的差异,目前,市面上有好几种不同的可用 ...

  6. 深圳Java培训:JDBC简介

    深圳Java培训:JDBC简介 JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一 ...

  7. Java构造函数(构造方法)的简介说明

    转自: Java构造函数(构造方法)的简介说明 Java构造函数(构造方法) java中的构造函数是一种特殊类型的方法,               用于初始化对象.              Jav ...

  8. Java关键字之catch简介说明

    转自: Java关键字之catch简介说明 下文是笔者总结的catch关键字的功能简介说明,如下所示 catch关键字的功能 catch关键字的功能:当发生错误时,可使用try catch关键捕捉异常 ...

  9. Java的日期与时间java.time.Duration的简介说明

    转自: Java的日期与时间java.time.Duration的简介说明 下文笔者讲述Duration类的简介说明,如下所示 Duration类简介 Duration对象:表示两个Instant间的 ...

最新文章

  1. 小程序云开发获取手机号完整代码 云函数中网络请求第三方接口
  2. 第111天:Ajax之jQuery实现方法
  3. 技能CDDemo(点击鼠标左键实现技能界面旋转)
  4. API通常的url语法
  5. 关于华硕主板“USB Devices Over Current Status Detected!”
  6. placeholder如何实现换行
  7. mac下 如果docker 如果访问不到网 就下载哥docker-machine 然后进入到vbox下进行操作
  8. 海龟交易法则14_掌控心魔
  9. redis未授权反弹shell
  10. Java —— 正则表达式
  11. 手机 物理分辨率 逻辑分辨率
  12. 【源码】手把手教你用Python实现Vivado和ModelSim仿真自动化
  13. 用计算机数字表白,表白数字密码暗号大全 高级表白密码
  14. Windows 10 的触摸板手势
  15. 出现这种情况是什么原因呢?
  16. 全面了解ScriptManager
  17. java dozer,MapStruct相当于提示(Dozer)?
  18. Java HashMap底层实现
  19. android 仿苹果 小组件,安卓玩烂的小组件 iOS怎么又给捡起来了?
  20. 新冠疫情可视化(7月11日,7月12日)

热门文章

  1. 数论练习1 ( 曹冲养猪 + [POJ 2891]Strange Way to Express Integers + 乘法逆元【带证明】)
  2. P4299 首都(LCT、重心)
  3. 最小代价(区间dp)(ybtoj)
  4. priority_queue+贪心:运输(题解)
  5. P6177-Count on a tree II/[模板]树分块
  6. 【线段树】矮人排队(jzoj(gz) 3236)
  7. 14、mysql中事务的应用
  8. SaaS,PaaS,IaaS都是什么鬼
  9. Tomcat 服务自动启动
  10. 【Mysql】mysql基本操作