消息中间件和交易中间件的概念


威武有指甲油
威武有指甲油 2022-09-21 09:16:21 51945
分类专栏: 资讯

一、消息中间件

消息中间件利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。只要有网络,就会有数据(数据包,文件)传递,这就会牵扯到数据传输的安全可靠性,网络越是发达对这类要求就越高,消息中间件就会长久生存发展。

消息中间件适用于需要可靠的数据传送的分布式环境。采用消息中间件机制的系统中,不同的对象之间通过传递消息来激活对方的事件,完成相应的操作。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候再将消息转发给接收者。消息中间件能在不同平台之间通信,它常被用来屏蔽掉各种平台及协议之间的特性,实现应用程序之间的协同,其优点在于能够在客户和服务器之间提供同步和异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这也是它比远程过程调用更进一步的原因。

消息中间件最突出的特点就是提供数据传输的可靠性和高效性,主要解决分布式的系统数据传输需求。以用户数据整合应用阶段而言,最重要的一点就是将数据从一点传输到另一点。现在市场上已有相应的数据整合工具,这些数据整合工具中通常多包含这几部分模块:数据抽取模块、数据加工模块、数据传输模块、数据加载模块,而其中数据传输模块多由消息中间件担当,并在数据整合过程中发挥着不可替代的作用。

其他内容参考:https://blog.csdn.net/wqc19920906/article/details/82193316

二、我理解的交易中间件

交易中间件是协助开发在线交易系统(OLTP)的C/S/S应用框架。它提供如下功能:

  1. 支持大量客户端的连接和高并发度的交易处理。帮助应用系统有效的使用服务器的各种资源,如CPU、内存、文件系统、数据库、IO设备等等,方便的实现并发操作,包括一个主机各种资源的并发使用和多台服务器主机的资源的并发使用。
  2. 方便的定制应用服务功能,实现服务器端的应用业务逻辑。一般是通过远过程调用实现。也可以这么说,应该能够自定义远过程。
  3. 对各个层次的资源能够均衡的使用,如数据库,各服务器及各CPU,各IO系统等。
  4. 应能提供一定程度的交易安全保证,以便系统能够在开放的网络环境下进行安全的交易。
  5. 提供应用路由,即内容决定的路由。
  6. 提供分布式交易完整性管理(两阶段提交)

 

一个交易框架系统,至少提供1,2才可以称为交易中间件。

SDBC实现1,2,4,5。3是在LVS协助下完成。

  1. 并发支持:在SDBC中,服务器端支持PPC模式,即每连接一个进程(Process Per Connection),TPC模式(Thread Per Connection),TPOOL模式(Thread Pool )。

PPC模式具有最好的可靠性,所有的服务均无需考虑线程安全。任何一个服务发生异常,最多引起自己的服务崩溃,不影响其他客户。但系统资源消耗比较大,最好配合交易管理器使用,否则,客户端接入数量不超过256。PPC的样本在:$SDBCDIR/utility/sqlsrv.

TPC模式比PPC有更好的资源利用率,如数据库资源可以设置连接池,使资源得到合理利用。这个模式有更好的可移植性,适用于各种平台,客户端接入数量在1000以下。TPC的样本在:$SDBCDIR/utility/thread.

TPOOL模式具有极佳的系统资源控制和使用能力,它使用了epoll事件通知机制,虽然具有极高的性能,但可移植的平台受限,只能在LINUX系统,它可以承载上万的客户端接入。TPOOL的样本在:$SDBCDIR/utility/tpool.

三者都可以配合交易管理器使用。交易管理器是tpool模式,因此只适合在LINUX平台运行。交易管理器的样本在:$SDBCDIR/utility/mod_sc.

  1. SDBC服务器可以方便的定制用户自己的业务逻辑模块(远过程)。它们具有统一的接口方式。具体使用方法见《SDBC使用指南.doc》
  2. 三种服务模式均能够很好的平衡一台主机上的各种资源的使用。如需使用多台主机,需配合LVS或其他硬件的负载均衡器。为一个服务器组配置一个虚地址(虚拟服务器),绑定多个实际服务器(RS),客户端呼叫虚地址即可。这个架构具有极佳的均衡效果和容错能力。
  3. SDBC提供了独特的加密,认证,授权等安全管理。它提供了动态加密功能,每次连接都提供不同的密钥。加密可以设置不同的层次:

 0:不加密,1:快速加密,2:中等程度的加密,3:高强度加密。

认证:SDBC提供了绑定设备的认证方式,同时支持用户自定义的认证方式。可以针对一个客户端设备许可其连接,未经许可的设备不能连接。这个许可权是不可转让的。

SDBC对数据库的操作还有一套访问授权机制:针对每个表,对每个登录用户分别授予select、insert、update、delete权限。通过一个二维表进行设置,很简便。

SDBC提供了多进程、多线程安全的日志系统,用于记录应用软件的行为,协助安全审计。

 

  1. 应用路由是由交易管理器提供的。简单的应用可以不用交易管理器。交易管理器起到如下作用:为服务器实施安全隔离;为PPC和TPC服务器扩充客户端接入能力,管理一套连接池系统;管理多个服务器组,并使得客户端能够选择不同的服务器组,这就是应用路由。它提供的是静态路由。它的连接池管理具有自愈功能。在运行中,一旦服务器损坏,它及时报告客户端。故障恢复后,这个资源自动恢复为可用。这中间无需重新启动交易管理器。
  2. 两阶段提交目前没有实现,需要应用逻辑自行管理。
  3. 除上述功能外,SDBC还提供了数据库包装器,使应用程序能够更方便可靠高效率的使用数据库。目前支持ORACLE、DB2。对SYBASE部分支持。这个包装器有助于应用程序的适应性,就是在用户需求不断变化,甚至数据结构不断变化时,你的应用程序只需极少的变化或不变化。

    另外,C的服务器,内存的使用是由程序员自行管理的,一个经验不足的程序员,常常造成内存违例或内存泄露。SDBC提供了一系列的常用例程,使用这些例程有助于写出内存可靠的程序。对于建立可靠的应用服务器非常有帮助。

 交易中间件的词条解释(来自MBA词条):

交易中间件是指联机事务处理平台软件,可以快速建立三层结构的联机事务处理应用。它主要是为应用程序提供运行环境及各种服务,如程序加载、程序启动、内存管理、负载平衡、出错恢复及一些应用管理功能。它是专门针对联机交易处理系统而设计的,联机交易处理系统需要处理大量并发进程,涉及到操作系统、文件系统、编程语言、数据通信数据库系统系统管理应用软件,是一个相当艰巨的任务,但是可以通过采用一个交易中间件来简化。交易中间件就是一组程序模块,可以大大减少开发联机交易处理系统所需的编程量。

  交易中间件理论上相对成熟,功能和性能界定清晰,基本上适用于联机交易系统,如银行业务系统、订票系统等。尽管交易信息也是消息,交易中间件也是基于消息的传输,也可支持同步和异步方式,属于一种较专用的中间件

[编辑]

交易中间件的优点

  采用交易中间件对于应用系统带来以下主要好处:,

  (1)提供一个预先定义的应用框架和模型,允许开发者以板卡/插槽的开发方式进行开发,提供很强的模块化结构;

  (2)可以减少系统的复杂性(包括屏蔽硬件、网络环境、异构数据库等);

  (3)可以有效完成负载均衡;

  (4)能保证分布式环境下交易的完整性;

  (5)能保证应用软件在不同平台上的平滑移植;

  (6)能将前端的大量网络连接汇接成较少的后台连接,降低网络负担,提高数据库效率。

交易中间件的应用

  交易中间件在金融、财税、运输电力、电信等行业中得到了广泛应用和推广。据统计,在幸福(Fortune)杂志中排到世界前500家的公司,几乎100%都采用交易中间件作为其联机业务系统的平台。

交易中间件在银行业务系统中的应用

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通讯。

  中间件的分类

  按照IDC的分类方法,中间件大致可分为六类:终端仿真/屏幕转换中间件、数据访问中间件、远程过程调用中间件、消息中间件、交易中间件、对象中间件。

  其中,交易中间件在理论上相对成熟,功能和性能界定清晰,是专门针对联机业务处理系统而设计的,例如银行业务系统、电信计费系统等。在联机业务处理系统中,需处理大量并发进程,涉及到操作系统、文件系统、数据通讯、数据库管理、应用软件等,是一个相当庞大的任务。通过交易中间件,可降低联机业务处理系统的开发难度,提高系统运行的安全稳定性。

  交易中间件的作用

  1. 提供高效的处理能力

  针对银行联机业务系统的特点,交易中间件提供了高效的并发处理能力,即保证日均处理业务量、峰值处理业务量能达到业务系统的要求。交易中间件一般采用高效的通讯处理技术,如链路复用、滑动窗口、数据包压缩、传输优先级等来充分利用网络带宽,保证传输效率;同时交易中间件利用服务器并发访问控制技术,并行处理和管理多个服务请求,有效地保障了业务系统的处理效率。

  2. 保障交易的完整性

  交易中间件通过监控和管理系统中的每笔交易,根据一定的交易管理方法,如两阶段提交协议、核对/冲正机制等,解决因硬件故障、网络故障、应用程序错误、人为故障等原因带来的交易完整性问题,从而将业务系统的错误率降到最低限度。

  3. 提高系统的容错能力

  交易中间件可以监控当前系统运行状态,包括客户数、系统提供的服务数、每一服务被调用次数等。管理员可以启动或停止其中的任一服务而不影响其他服务,系统本身也会根据运行情况进行动态平衡。多机群集运行时,若某一主机出现故障,交易中间件能自动将交易请求送到备机上运行。

  4. 简化系统开发

  交易中间件屏蔽了底层操作系统及网络传输的复杂性,使开发人员面对简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在业务逻辑上,大大减少了应用开发的技术难度,缩短应用开发周期。

  5. 减少系统的运行、维护工作量

  交易中间件简化了系统的层次结构和处理过程,提供了对系统运行情况的实时监控,从而使系统运行故障率大大降低,提高了系统的可管理性,减少了系统的总体投入。

  银行业务系统中交易中间件的主要功能

  交易中间件通过对系统资源的有效管理,能最大限度地提高系统的并发处理能力,从而提高整个系统的效率。在银行联机业务系统中,交易中间件通常都提供了以下功能:

  1. 进程管理:通过对服务进程的调度,使得在正常情况下,能用尽量少的服务进程处理尽量多的请求,减少进程的启动/终止次数。

  在银行业务出现峰值的情况下,控制服务进程的总数,使得服务器在设定的负载下工作;当请求服务的数量超过了服务器的处理能力时,中间件则把请求排队进行缓冲。

  2. 交易优先级管理:通过对交易优先级的划分,确保优先级高的银行业务能尽快地得到响应。

  3. 数据传输:管理并监控全辖范围内的所有银行网点的通信状态,保持网点与主机的通信畅通,提供流量控制功能,保证在各种线路情况下都能进行高效的数据传输。

  4. 均衡负载:中间件可根据业务性质的不同,把请求分配到不同的服务器、不同的服务进程上进行处理,保证每个服务器、每个服务进程的处理能力得到充分的发挥。

  5. 权限控制、安全管理:交易中间件具备多级的安全审计功能,可对服务端程序进行控制,以及限制客户端对应用程序的访问;同时提供了节点认证、传输加密等功能。

  使用交易中间件的银行业务系统体系结构

  1.银行业务系统体系结构

  引入交易中间件后,银行业务系统已从传统的二层结构转化为三层体系结构,即操作层、应用服务层、数据服务层。第一层为操作层,即前台网点,通过终端或PC机接入;第二层为应用服务层,安装交易中间件以及应用服务程序,进行业务逻辑的处理;第三层为数据服务层,采用高性能计算机(如AS400、RS/6000等),其上使用大型数据库(如Oracle、Informix等)作为业务处理的核心主机。

  操作服务层要求维护简单,易于大规模推广应用;应用服务层要求能方便快捷地进行产品拓展;数据服务层要求保障数据存取的稳定安全,见图1。

  

图1

  操作层包括前台营业网点、ATM和POS前置机等,其上安装有中间件的客户端程序,主要作用是录入业务要素,组织报文上传,并显示打印结果。

  应用服务层包括二级分行的名字服务器(Name Server)、中心的多台应用服务器(AP Server)。二级分行的名字服务器汇集前端所有网点及自助设备上传的所有交易请求,并根据请求的不同类型进行分发,送到中心不同的应用服务器中。在AP Server中,交易中间件对进程进行调度,启停相关的应用服务,完成业务逻辑的处理,并向数据库服务器提交数据操作请求。

  数据服务层则配置了强大处理能力的机器及高效的数据库,可以保证高速并发地处理交易请求。

  2.采用以上体系结构的好处

  1) 三层结构,提高系统安全性。

  系统采用三层结构,操作层、应用服务层、数据服务层相对隔离,有效防止了误操作和人为的攻击;

  同时,应用服务层专注于业务逻辑的处理,数据服务层保障数据的完整性,都有效地提高了系统的安全性。

  2) 交易请求分发,实现负载平衡。

  在二级分行的名字服务器上安装交易中间件,根据交易的不同类型及不同的特征值,将交易请求分发到不同的主机系统进行处理。可根据后台主机的实际处理能力,在不同的主机上可灵活地配置逻辑上不同的应用系统,实现负载平衡。

  3) 简化网络配置,提高网络安全。

  名字服务器同时承担了通信节点机的功能,所有的网点不需要直接联到中心主机,而是分层次地联接到二级分行的名字服务器;中心主机也不必配置到每个网点的路由,而只配置到名字服务器的路由,这样可极大地简化网络管理,提高网络安全。

  4) 结构灵活,方便处理中间业务。

  中间业务具有很强的地方特色,常因客户的需求而变动数据格式,因此中间业务可采取分散管理数据、本地处理的方式。

  在二级行设立中间业务服务器,存放并处理中间业务数据,只有需要进行核心帐务处理的交易才通过名字服务功能送到中心主机上,这样可大大减少了主机的压力,也提高了中间业务的处理效率。

  银行联机业务系统中,交易中间件的运行维护经验

  银行联机业务系统的特点是网点众多、通信条件参差不齐、交易高峰期集中、文件传输量多,因此在运用中间件构建银行联机业务系统的过程中,必须根据实际情况对系统及中间件参数进行调整,以便能最大限度地发挥出中间件的作用。

  系统核心参数的调整

  1. 由于应用服务器的负载较重,接入的网点和名字服务器较多,其主机的系统核心参数需进行优化。主要是根据高峰期交易量的多少,确定共享内存大小、联接共享内存个数、消息队列的大小等;

  同时可将频繁访问的服务进程绑定在特定CPU上,提高处理的速度。

  2. 在操作层的前端PC机上,一台机器可安装多个营业网点的业务系统,或者是一些大网点的PC机上接入较多的终端(如30台以上),则需要对前端机器的共享内存大小、消息队列总数及大小、信号灯个数等进行优化,才能确保系统稳定地工作。

  中间件参数的调整

  1. 在应用服务器上,根据日常运行的交易情况统计,对应用进程的总数进行配置。服务器上每天的交易量分布极不平均,交易高峰期处理的交易数量是低谷期的几十倍。

  因此合理地调整服务进程总数,使得交易高峰与低谷期系统的负载都较为合理。

  2. 利用中间件的进程管理技术,实现进程常驻。应用服务程序的很大一部分时间开销是用于建立数据库连接与撤销连接,中间件可通过长驻服务进程的方法,使服务进程与数据库的连接被保持和复用,从而大大减少与数据库连接的次数和时间。

  因此,可将最常用进程进行常驻,如存取款交易就可配备较多的常驻数量,确保存取款交易能最快地得到响应。

  3. 对每类交易设置最大请求数量限制,通过并发控制手段,防止出现队列堵塞现象,就可保证每笔交易的响应时间,避免交易出现峰值时系统的阻塞和崩溃。

网站声明:如果转载,请联系本站管理员。否则一切后果自行承担。

本文链接:https://www.xckfsq.com/news/show.html?id=8735
赞同 0
评论 0 条
威武有指甲油L0
粉丝 0 发表 5 + 关注 私信
上周热门
如何使用 StarRocks 管理和优化数据湖中的数据?  2951
【软件正版化】软件正版化工作要点  2872
统信UOS试玩黑神话:悟空  2833
信刻光盘安全隔离与信息交换系统  2728
镜舟科技与中启乘数科技达成战略合作,共筑数据服务新生态  1261
grub引导程序无法找到指定设备和分区  1226
华为全联接大会2024丨软通动力分论坛精彩议程抢先看!  165
2024海洋能源产业融合发展论坛暨博览会同期活动-海洋能源与数字化智能化论坛成功举办  163
点击报名 | 京东2025校招进校行程预告  163
华为纯血鸿蒙正式版9月底见!但Mate 70的内情还得接着挖...  159
本周热议
我的信创开放社区兼职赚钱历程 40
今天你签到了吗? 27
如何玩转信创开放社区—从小白进阶到专家 15
信创开放社区邀请他人注册的具体步骤如下 15
方德桌面操作系统 14
用抖音玩法闯信创开放社区——用平台宣传企业产品服务 13
我有15积分有什么用? 13
如何让你先人一步获得悬赏问题信息?(创作者必看) 12
2024中国信创产业发展大会暨中国信息科技创新与应用博览会 9
中央国家机关政府采购中心:应当将CPU、操作系统符合安全可靠测评要求纳入采购需求 8

加入交流群

请使用微信扫一扫!