文档章节

第二章 理解面向对象的中间件(MOM)和JMS 前言及2.1 介绍企业消息传递

 竹青花黄
发布于 2014/10/10 09:15
字数 1414
阅读 58
收藏 0

这章主要内容有:

企业消息传递机制和面向消息的中间件

理解Java消息服务(JMS)

使用JMS API来发送和接收消息

消息驱动bean的一个例子

为了帮助你更好地理解ActiveMQ的理念,有一些企业消息传递机制的背景和历史知识是很有必要的。
讨论企业消息传递机制后,将会通过一些使用它的小例子对JMS做一个简介。
本章的目的是简要回顾企业消息传递机制和JMS规范。
如果你已经熟悉这些话题,你可以跳到下一章。

程 序员们时不时地会有应用程序间通讯和系统间数据传输的需求。此类问题固然有多种解决方案,但根据自身的客观条件和需求做出选择也很重要。我们的业务需求中 经常会碰到关于性能,可伸缩性和可靠性等方面的诉求。下面列出了一些我们生活中经常碰到的这类系统:自动取款机、航空订票系统、信用卡系统、销售系统和电 信系统等等。其中的大部分应用已经是我们生活不可分割的一部分了。

花点时间思考下,这些服务怎样让我们的生活更便捷。由于安全性和可靠性的保障,这些服务成为可能。这些系统的背后,由大量的分布式子系统支撑着,他们通过来回传递时间和消息进行沟通。即使是最复杂的金融交易系统,也完全是通过必要系统间业务信息的收发完成操作的。

许 多产品基于各种目的提供信息传递。需求是发明之母,这亦是消息传递中间件的诞生原因。我们越来越需要一种软件提供有关通信和数据传输功能,来更轻松地管理 数据格式,操作系统、协议甚至编程语言间的差异。此外,如复杂的消息路由和转换技术也开始作为此类解决方案的关联部分而出现。这样的软件被称为面向消息的 中间件。

ActiveMQ是一个MOM产品,可以为这些业务系统提供异步消息传递。
身为一个符合JMS规范的MOM,ActiveMQ可以为应用程序架构提供足够的可靠性和可伸缩性。

2.1 介绍企业消息传递机制

上面提到的大多数系统使用大型计算机构建,而且许多至今仍在服役。然而,这些应用程序是怎样以如此可靠的方式运行的呢?回答这类问题之前,让我们简要地探讨一下这些解决方案背后的历史。

从 19世纪60年代开始,大型组织致力于在大型机上的关键应用开发,用于完成如数据处理、财务处理、统计分析等等的工作。大型机系统对诸如高可用性、冗余、 极端的可靠性和可伸缩性、无需中断服务的可升级性等等的业务需求能提供很好的帮助。虽然这些系统功能强大,但操作这类系统时的可输入选项很少。然而,在系 统间通信技术尚未出现的时代,并行处理是不可能的。

图1.1 演示了终端连接到主机的示例

在 19世纪70年代,用户开始通过终端访问主机,通过允许成千上万的并发用户,极大地扩展了这些系统的使用率。正是在此期间,计算机网络被发明,主机间的连 接成为可能。到了80年代,出现了图形终端,PC和终端仿真软件也迅速普及由于开发运行在个人电脑和工作站上的应用程序需要访问服务主机,网络互连变得更 加重要。图1.2展示到主机的不同类型的连接。连接的扩展引入了更多的平台和协议,一系列新的问题出现了。

由于系统各自的数据格式,硬件和协议需要不同类型的适配器,所以连接源系统和目标系统并不容易。随着系统各自的适配器列表日益复杂,使它们变得难以维护。很快,维护适配器的成本超过了系统本身。这时,企业消息传递机制进入了人们的视野。

企业消息传递的目的是完全不同的系统之间通过传输消息的方式完成数据的传输。
经过多年的发展,现有许多技术应用于多种格式的消息传递,包括:

• 使用远程过程调用(RPC)解决方案,比如:COM, CORBA, DCE 和 EJB

• 事件通知、进程间通信和消息排队进操作系统的解决方案 如FIFO缓冲区(FIFO buffers)、消息队列(message queues)、管道(pipes)、信号(signals)、套接字(sockets)和其他。

• 提供异步,可靠消息队列的一类中间件间消息传递的解决方案,如MQSeries SonicMQ,TIBCO和Apache ActiveMQ,常用的用于企业应用程序集成(EAI)。

我们将要讨论的是上面的解决方案中的最后一种——消息传递中间件。

© 著作权归作者所有

粉丝 0
博文 11
码字总数 18440
作品 0
杭州
私信 提问
跟我学习dubbo-消息中间件在分布式系统中的作用介绍(8)

消息中间件在分布式系统中的作用介绍 消息中间件的定义 Message-oriented middleware (MOM) is software infrastructure focused on sending and receiving messages between distributed s......

HI曲奇饼干
2016/01/18
287
4
分布式消息通信ActiveMQ

消息中间件 消息中间件是指利用高效可靠的消息传递机制进行平台无关的数据交流,并且基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,可以在分布式架构下扩展进程之间...

架构师springboot
2018/12/23
130
0
分布式消息通信-ActiveMQ-JMS-笔记

消息中间件的初步认识 什么是消息中间件? 消息中间件是指利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。 通过提供消息传递和消息排队模型,可...

Java搬砖工程师
2018/12/05
89
0
第十七章:springboot 整合 activeMQ

首先介绍 JMS   JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通...

嘴角轻扬30
02/12
68
0
J2EE规范系列之 JMS1.1 (一) 基本概念

什么是JMS JMS(Java Message Service) 即Java消息服务。它提供标准的产生、发送、接收消息的接口简化企业应用的开发。它是J2EE规范的一部分,定义的接口标准,针对不同的厂商有不同的实现库。...

Garrry
2015/07/06
828
0

没有更多内容

加载失败,请刷新页面

加载更多

PCB设计-Allegro软件入门系列-allegro环境变量和快捷键

Allegro作为一款高速PCB设计的EDA软件,有完善的约束规则设计和信号完整性电源完整性仿真等各种专业工具深受电子行业从业者喜爱。 对于该软件来说,电子从业者接触最多的就是Allegro的画板功...

demyar
26分钟前
4
0
腾讯云存储

1、进入腾讯云平台,创建 2、进入配置查看域名 3、查看KEY参数 4、将2、3中的参数录入到cms后台 然后点测试按钮查看情况

迅睿CMS-PHP开源CMS程序
27分钟前
4
0
ES 6.x 版本 待验证的CURL命令查询操作

1. 查询数据 curl -H "Content-Type: application/json" -XGET http://elastic:123456@127.0.0.1:9200/alias1/_search -d '{"query": {"match_all": {}}}' 2. 添加数据 如果有不指定ID可以自......

coord
35分钟前
4
0
如何写好论文摘要:研究人员不得不知的小秘诀

我们为何要写摘要? 它的目的为何? 简而言之,摘要的目的就是简单的讨论这篇文章让读者更容易的了解这篇文。 它能在读者与作者之间搭起一条桥梁。当您搜索信息时,您无法一下阅读整篇文章,...

论文辅导员
37分钟前
4
0
移动端、PC端(前后台)、小程序常用的UI框架

移动端、PC端(前后台)、小程序常用的UI框架 1.移动端UI库 ①.Vant UI 官方地址:https://youzan.github.io/vant/#/zh-CN/intro github地址:https://github.com/youzan/vant 优点:用来做移...

jason_kiss
38分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部