java message_Java Message System简介

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334762.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IntelliJ IDEA for Mac 如何设置 tab 键为 4 个空格?

使用快捷键 Command , 打开偏好设置窗口如下所示: 设置好以后,可以按 Option Command L 整理格式,然后选中缩进的部分,如果能选中缩进的部分,证明是空格: 如果不想整理格式,还可以用 edit…

安兔兔跑分可信吗_安兔兔安卓手机跑分性能榜公布:第一名实至名归?

3月5日消息,安兔兔官方放出了2019年2月份国内安卓手机的性能跑分排行榜。从榜单中我们可以看到排名前三的分别是:小米9、联想Z5 Pro GT 855版、红魔Mars电竞手机。不出所料,前三名都是高通平台的旗舰Soc,骁龙855和骁龙845。骁龙85…

IntelliJ IDEA for Mac 类和方法注释模板设置

文章目录类注释模板设置使用 File and Code Templates方法 1:直接在编辑区编写模板代码方法 2:使用 parse 指令来引用注释模板使用 Live Templates方法注释模板设置注意事项解决注释模板无法获取参数名和返回值类型的问题类注释模板设置 使用 File and …

机试题型_2020年焊工(技师)新版试题及焊工(技师)试题及答案

题库来源:安全生产模拟考试一点通公众号小程序2020年焊工(技师)新版试题及焊工(技师)试题及答案,包含焊工(技师)新版试题答案和解析及焊工(技师)试题及答案练习。由安全生产模拟考试一点通公众号结合国家焊工(技师)考试最新大纲及焊工(技师)考试真题汇总…

Eclipse 如何修改默认工作空间和切换工作空间(Workspace)

文章目录如何关闭/开启 Eclipse Launcher 弹窗提示通过配置文件设置通过 IDE 的偏好设置如何修改 Eclipse 默认的工作空间和切换工作空间通过配置文件修改通过 Eclipse Launcher 窗口修改通过菜单来切换工作空间如何关闭/开启 Eclipse Launcher 弹窗提示 通过配置文件设置 ec…

hashmap java_Java – HashMap详细说明

hashmap javaHashMap基于哈希算法工作,根据Java文档HashMap具有以下四个构造函数, 建设者 描述 HashMap ​() 构造一个空的 具有默认初始容量(16)和默认加载因子(0.75)的HashMap 。 HashMap ​(int i…

广州电子厂房净化工程_简述设计电子车间净化工程的注意要点

在电子车间净化工程的设计、安装、选择净化设备与彩钢夹芯板的时候有哪些需要注意的要点呢?这些看起来不太重要的细节,却往往大大的影响了电子净化车间的净化效率与洁净度。而且这些注意要点,不仅在电子净化车间中适用,在食品加工厂、制药净…

使用log4j记录日志_使用log4j2免费分配日志记录

使用log4j记录日志介绍 最近,我正在为一个客户端工作,试图为大型精心制作的Java系统消除一些GC暂停。 经过分析后,我意识到大部分垃圾都是通过日志记录产生的! 是否有一种简单的方法来删除所有分配? 原来有:) 我应该使…

Java Web工程结构_项目结构

文章目录Eclipse 的 Java Web 工程目录结构IDE 的目录结构截图本地的工作空间(Workspace)中的目录结构目录说明Eclipse 的 Java 工程目录结构IDE 的目录结构截图本地的工作空间中的工程目录MyEclipse 的 Java Web 工程目录结构IDE 目录结构截图本地的工作…

一天发多少短信会封号_枸杞一天吃多少?吃多了会怎样?黑枸杞红枸杞哪个好?...

●枸杞一天吃多少?其实枸杞作为一种滋补品,不适合过多的使用,因为那样反而会造成反作用和不良影响,健康的成年人每天吃20克左右就合适了,这样对一些疾病的治疗,才可以发挥更好的效果。如果是用枸杞子泡水喝…

IntelliJ IDEA for Mac 如何将普通 Java 项目变为 Web 项目

点击菜单栏 File --> Project Structure 在弹出的窗口中点击选择左侧的 Facets,接着点击右边的 ,弹出的菜单中选择 web 在弹出的 『Choose Module』窗口中选择要转为 web 的项目(模块),然后点击 OK 选择好模块后…

MacBook 如何强制删除『无法正常卸载』的应用程序

文章目录第一步:点击电脑屏幕左上角的 图标,再点击「关于本机」第二步:点击「储存空间」选项卡,接着点击「管理」第三步:选择左侧边栏的「应用程序」,然后在右侧的程序列表中选择要“删除”的程序&#x…

slot多作用域 vue_vue 深度长文之slot 篇

今天我们将分析我们经常使用的 vue 功能 slot 是如何设计和实现的,本文将围绕 普通插槽 和 作用域插槽 以及 vue 2.6.x 版本的 v-slot 展开对该话题的讨论。当然还不懂用法的同学建议官网先看看相关 API 先。接下来,我们直接进入正文吧普通插槽首先我们看…

android 扫描照片功能,Android自定义View- 雷达扫描图

首先来看看效果图:CSDN博客地址这里写图片描述这里我使用了两种实现方式:继承 view 实现。继承 surfaceview 实现。为什么会有两种实现方式呢?主要是因为我在继续加入一些自定义功能的时候,如果是继承 view ,出现了卡顿…

SmartSVN for Mac 使用说明

文章目录连接 SVN 服务器签出(Check Out)导出(Export)打开工作副本(Open Working Copy)打开和管理项目移除工作副本(Remove Working Copy)项目及工作副本目录导航窗口查看和配置被忽…

bldc 原理 方波控制_【百问百答】ST 电机控制实战问答合辑 | 连载之一

点击下方链接可以直接观看电机直播及直播答疑电堂​wx18257eb0e8c82435.h5.xiaoe-tech.com电堂​wx18257eb0e8c82435.h5.xiaoe-tech.com本次实战问答只讨论同步电机,不对步进电机做特别的讨论,希望有助于大家进行电机开发或者是电机应用。Q1:…

android动画编辑软件,ALM视频动画编辑

ALM视频动画编辑app手机端中最为专业,强大的视频编辑工具,丰富的功能堪比pc级别,并且实用流畅不卡顿,操作简单明了,上手容易,视频效果出色,更多丰富素材内容使用!下载ALM视频动画编辑app开始体验吧!ALM视频动画编辑介绍ALM视频动画编辑神器为你提供非常高…

openhub_介绍OpenHub框架

openhub本文介绍OpenHub框架 -基于Apache Camel的新的开源集成解决方案。 本文回答了一些问题,为什么您应该关心另一个集成框架,强弱属性以及如何使用OpenHub启动新项目。 OpenHub框架是Apache Camel,但经过改进…… 当然,您只能…

spring 导出csv_Spring批处理CSV处理

spring 导出csv总览 我们将讨论的主题包括使用Spring Batch进行批处理的基本概念,以及如何将数据从CSV导入数据库。 0 – Spring Batch CSV处理示例应用程序 我们正在构建一个应用程序,演示用于处理CSV文件的Spring Batch的基础。 我们的演示应用程序将…

python强制结束函数_为什么Python没有 main 函数?终于有人给出了正确答案!

毫无疑问,Python中没有所谓的 main 入口函数,但在网上经常有文章提到“Python中的main函数”和“建议编写main函数”等。他们的目的可能是模仿真实的 main 函数,但是经常有很多人被误导(或误解)并编写非常繁琐的代码。…