




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Apusic 消息中间件 5.0 技术白皮书 Apusic 消息中间件 5.0技术白皮书1 概述1.1 什么是消息中间件消息中间件使得独立的分布式应用程序或应用程序组件可以通过消息进行交互。这些组件无论是在同一主机、同一网络上运行,还是通过 Internet 松散地连接在一起,均可通过消息的形式来传递数据以协调各自的功能。使用消息中间件进行消息传输时,发送消息的系统只需在发送消息时指定消息的目的队列,然后消息中间件就会将消息可靠、安全的传输到目的队列中,并且在接收消息的应用准备就绪时才将消息传递给接收应用。发送消息的应用不需要关心网络的不稳定、消息遭到窃听、或者接收消息的应用不可用等因素。1.2 为什么需要消息中间件信息已经成为驱动企业的一种动力,是为客户提供更好服务的动力,也是降低成本、更好地利用企业资源的动力。信息流过整个企业的方式决定了构成上述动力的能力,当合适的信息流能自由、快速地传递给需要它的人员时,整个企业就能获得一种动力,从而能够更好地进行决策,更好地解决问题。因此,企业的各个业务系统需要集成在一起,使之能够获得彼此之间的业务数据或者触发彼此的业务流程。金蝶Apusic消息中间件(以下简称Apusic MQ)能够在分布式的网络环境中安全、可靠、高效的传输消息,并且在传递消息时能够跨越不同的平台、不同的语言。这些特点使得Apusic MQ非常适合于各种复杂的集成任务。通过Apusic MQ提供可靠的通信能力,您可以充满信心地将任何系统与其它的系统连接在一起,同时保证信息的连通性。1.3 Apusic MQ 简介企业消息传递框架被设计用于使得一个或多个应用能够克服各种障碍进行通信。常见的屏障包括:异步通信的需求,多个应用获取同一条消息(多重传输)的需求,大多数系统都彼此异构,以及网络故障等。Apusic MQ被设计用来为不同类型的系统提供消息通道。Apusic MQ为应用提供了一种公共的、可靠的、安全的、高效的方式,使这些应用能够轻松地创建、交换和处理消息,而无需考虑消息传递客户机的实现细节。Apusic MQ不仅为信息传送提供必要的基础结构,而且它还能处理与服务质量、安全性、可靠性和性能有关的大部分基础结构问题。2 体系结构图二所示为Apusic MQ的体系结构。Apusic MQ构建于特有的Apusic Core微内核体系之上,以该微内核为基础运行着Apusic MQ的各项服务,这些服务分为基础服务和消息服务两大类。基础服务包括:命名服务、数据库连接池服务、日志服务、安全服务、MQ管理服务、事务服务、多路复用服务、线程池服务。这些服务是服务器运行的基础,为服务器上其它服务的运行提供了基本的体系架构和公共资源。消息服务是Apusic MQ服务器的核心服务,通过这些服务,Apusic MQ拥有了在分布式网络环境中安全、可靠、高效的传输消息的能力。这些服务可分为智能路由及消息传输服务、消息存储服务、消息目的地权限控制服务、队列服务、主题服务、客户端连接创建服务这几大类。这些服务协同完成了Apusic MQ的核心功能。使用Apusic MQ的应用程序通过Apusic MQ的客户端 API和服务器进行交互,Apusic MQ提供了Java、C、C+、.Net等多种语言的客户端 API。通过其中一种API发送的消息可以在另外一种API中接收,从而保证了多种编程语言之间的交互性。应用向目的地发送消息时,只需将消息发送至Apusic MQ服务器,Apusic MQ服务器负责路由消息并保证将消息传送至目的地,然后接收消息的应用再到目的地中接收消息。接下来的章节,我们将对上述组成部分分别进行介绍。3 Apusic Core 微内核体系在Apusic MQ中,各项服务以可插拔的方式加入服务器并提供服务,而Apusic Core微内核体系则为这些服务解决资源、线程、事务、通讯等关键领域问题,如此一来,能够从一定程度上屏蔽应用给引擎带来的干扰,并能够有效降低开发成本,带来长远利益。 资源:Apusic Core对以下资源进行统一管理:JDBC Resources、JCA Resources、JMS、URL等。 线程:Apusic Core提供高效稳定的线程池服务,对线程进行管理,维护线程的生命周期,处理高并发请求。 事务:Apusic Core提供的事务管理器可进行全局事务管理,可管理的事务资源包括数据库连接池、消息和符合J2EE连接器架构(J2EE Connector Architecture,JCA)的资源等。 通讯:Apusic Core负责处理Apusic 应用服务器与客户端的通讯,支持HTTP、HTTPS、RMIIIOP等通信协议,并且,通过Apusic通讯协议框架,能够轻松实现对其它协议的支持。4 基础服务Apusic MQ包含了以下基础服务,这些基础服务运行于Apusic Core微内核之上,它们分别是: 命名服务允许用户以Naming串绑定并查找任何资源,该服务是一个完全遵循JNDI规范的实现。 数据库连接池服务消息应用中如果牵涉到数据库的应用,例如消息的存储采用数据库方式时,需要使用该服务提供支持。 日志服务通过日志服务,可以对Apusic MQ服务器中出现的问题,失效以及服务器的执行效率进行记录和跟踪。 安全服务通过安全服务,客户端可以使用SSL与服务器进行通讯、使用JAAS登录服务器。 MQ管理服务该服务管理项提供了对MQ服务器核心参数进行配置的管理功能。 事务服务Apusic MQ支持本地事务和分布式事务。 多路复用服务通过使用多路复用端口服务,客户应用只需向多路复用端口发出请求,服务器通过分析客户请求,将其转发给其它相关的服务或是拒绝此请求。 线程池服务通过Apusic MQ提供的线程池服务可以在服务上大量复用线程,极大限度提高服务器并发效率。4.1 对事务的支持Apusic MQ对事务的支持包括: 多个消息发送和接收可包含在一个事务里,Apusic MQ保证一个事务中的所有消息发送和消息接收的单元操作要么全部成功,要么全部失败。 消息发送、接收操作可以和其它具备事务上下文的操作放到同一个事务环境里,包括:数据库操作、符合J2EE连接器架构(J2EE Connector Architecture,JCA)的资源操作等4.2 日志Apusic MQ提供了日志服务,以对本身的日志进行管理,同时,对于运行于Apusic MQ中的应用程序,也提供了一个有效且易用的日志工具。应用组件可以使用JDK标准的logging API输出日志,并且输出结果保存在Apusic的日志文件中。4.3 多路复用通过Apusic MQ提供的多路复用服务,客户只需指定一个多路复用端口,即可在此端口上使用和管理Apusic MQ提供的各种其它的服务,从而增加了使用和管理Apusic MQ的方便程度。4.4 线程池服务器经常需要处理大量短小的任务,假如为每个任务都创建一个新的线程,开销将会很大,因此服务器需要复用线程,线程池技术为此提供了解决方案。Apusic MQ的线程池服务中提供了多个不同的线程池,供服务器的不同服务使用,从而让这些服务在执行并发任务的时候能够使用各自的线程池复用线程,避免单一线程池的压力过大,极大限度提高服务器并发时的效率。4.5 对SSL的支持Apusic MQ完全支持SSL协议最新版SSL3.0和TLS1.0协议。基于TLS协议的通信双方的数据是经过加密后传输的。Apusic MQ通过对SSL协议的支持提供了客户端与服务器之间的单向/双向认证以及数据加密传输功能。4.6 对JAAS的支持JAAS( Java Authentication and Authorization Service )在原来Java安全框架的基础上增加了基于用户的访问控制能力,即根据谁在运行代码来进行授权。在Apusic MQ的客户端程序中能够使用JAAS登录服务器,并且在JAAS的上下文中获得或者创建与MQ服务器进行交互的资源,这些资源也因此获得了登录用户的身份,在与MQ服务器交互的过程中,服务器将根据资源的用户身份决定资源是否能够执行某项操作。5 智能路由及消息传输技术5.1 智能路由在一个拓扑网络中,消息传输的路径直接影响到消息的传输效率。Apusic MQ提供智能路由功能,在选择路径时可根据路径的长度等情况进行综合考虑,以保障消息以最快速度传送到目的地。如在一个由A、B、C、D、E七个路由节点组成的网络中:有消息需要从A发送到E,在这个网络中,A到E有2条传输路径,分别是: A-B-C-E A-D-EApusic MQ智能路由会首先选择最短的传输路径,也就是A-D-E路径传输消息。5.2 消息切分Apusic MQ支持将一个大的消息切分成多个小块发送,在目的节点重新组合成完整的消息。同样,被切分的消息将获得集群及智能路由带来的好处,充分利用网络带宽。5.3 断点续传断点续传指的是在消息传输过程中,由于网络原因导致消息传输中断,当网络恢复时,不需要重新传输整个消息,而只是从中断的位置传送即可。Apusic MQ支持普通消息和大尺寸对象消息,两种消息都支持传输时的断点续传。因为普通消息在传输时实现了消息切分,所以能够支持断点续传。即消息被传送中途出现网络故障时,仍可在故障恢复重新连线后,将后续的消息片段重新发送,不必将整个消息重新发送。而服务器在传输大尺寸对象消息时已经内置了对断点续传的支持。5.4 消息压缩Apusic MQ提供数据压缩API,方便用户在收发消息时对消息进行压缩和解压缩,以提高消息传输效率,这可以提升大消息的传输效率。5.5 消息加密Apusic MQ支持在消息传输过程中对消息进行加密,保证消息传输的安全性。加密的密码由用户进行设置。6 队列队列是Apusic MQ中PTP(Point-to-Point)消息传递模型的基础,发送方发送消息到队列,接收方从队列中接收消息,队列的存在使得消息的异步传输成为可能。发送到队列中的消息可以是持久化消息也可以是非持久化消息,将持久化消息发送到队列中时,队列会将消息保存到磁盘中。Apusic MQ 提供工具管理队列的创建、删除等维护工作。6.1 消息队列集群Apusic MQ支持消息队列集群(Message Queue Clustering)。所谓消息队列集群是指在多个Apusic MQ之间建立路由连接,从而组成一个消息路由网络。在网络中任何一个节点上定义的集群队列都将被全部节点所共享,通过任何一个节点向一个集群队列发送/接收消息都是等效的,对客户来说无法察觉是否正在使用集群,集群中网络拓扑结构发生变化对客户也没有任何影响。当路由节点与其他节点建立连接时,通过发布自身定义的集群队列,从而使集群队列获得共享,无须系统管理员干预,大大减少了路由网络的维护量。使用集群还可以提高系统的可用性,路由网络中单个节点发生故障停机或部分网络无法连通时并不影响集群队列的使用,同时在发送消息时根据各节点的负荷情况对负载进行分配,从而使节点处理能力和网络带宽被充分利用。6.2 获取远程队列消息Apusic MQ支持在本地直接获取远程队列上的消息。当本地需要消息时,向集群中的所有成员发出一个请求,表示本地需要消息,远程节点在收到请求后对其本地队列进行侦听,当消息出现时将消息通过路由算法发送到发出请求的节点的本地队列,本地节点再从本地队列中获取消息。7 主题主题是Apusic MQ中Pub/Sub(Publish/Subscribe)消息传递模型的基础,Pub/Sub模型定义了如何向一个内容节点发布和订阅消息,这些节点被称作主题(topic),发送方和接收方通常是一对多。主题可以被认为是消息的传输中介,发布者(publisher)发布消息到主题,订阅者(subscribe)从主题订阅消息。主题使得消息订阅者和消息发布者保持互相独立,不需要接触即可保证消息的传送。Pub/Sub是一种集中式消息传送系统。在此类系统中,每个消息传送组件只需与一个中央消息服务保持连接。组件通过定义完善的接口与消息服务进行交互。7.1 分层次主题命名及多主题订阅分层次主题命名是Apusic MQ提供一种主题(Topic)分组定义的方法,使主题更便于管理和使用。除此之外,Apusic MQ还提供了使用模式匹配的方式同时订阅多个主题,从而可以完成在单主题订阅模式下无法完成的特性。当对一个主题命名时也同时定义了这个主题所处的层次结构。在一个不分层的命名系统中,所有的名字都是孤立的,彼此之间没有任何关系,当主题增加时会带来很大的管理负担。而在一个分层次命名系统中名字之间具有一定的上下级关系,从而可以对层次结构中的一组结点进行管理并明确指明结点之间的关系。Apusic MQ中使用.分隔符来指明这种上下级关系,类似于文件系统中使用/分隔符来区分上下级目录。通常只需要定义叶结点,中间结点系统将自动建立。向主题发布消息时可以发布到层次结构中的任何一个结点上,而在订阅消息时可以使用模式匹配的方式同时订阅多个主题,这些主题可以是层次结构中的某个分支,也可以是一些并没有命名关系的主题。模式匹配所使用的语法虽简单但很强大,可以灵活地选择需要的主题。8 Apusic MQ的消息模型8.1 消息传递模型Apusic MQ支持两种消息传递模型,它们分别是PTP和Pub/Sub。8.2 消息构成消息由消息头和消息体构成。消息头(Header) 消息头包含消息的识别信息和路由信息,消息头包含一些标准的属性如:消息目的地、消息ID、消息类型等。除了消息头中定义好的标准属性外,Apusic MQ还提供了一种机制增加新属性到消息头中。消息体(Body) Apusic MQ支持JMS规范中定义的五种消息体格式:消息类型消息体TextMessagejava.lang.String对象,如xml文件内容MapMessage名/值对的集合,名是String对象,值类型可以是Java任何基本类型BytesMessage字节流StreamMessageJava中的输入输出流ObjectMessageJava中的可序列化对象Message没有消息体,只有消息头和属性8.3 持久化(PERSISTENT)和非持久化(NON_PERSISTENT)消息Apusic MQ支持两种消息传递模式:持久化传递和非持久化传递。持久化传递表示该消息一定要被送到目的地,否则会导致应用错误。在选择持久化传递模式情况下,消息会被存放到硬盘上,以确保当宕机发生时,消息可被恢复。非持久化传递表示偶然丢失该消息是被允许的,在非持久化传递下消息的传输性能要超过持久化传递模式。用户在选择哪种传递模式时,通常需要在可靠性和吞吐量之间作出选择,当可靠性比较重要时,选择持久化传递,当吞吐量更重要时,选择非持久化传递。8.4 消息的存储方式Apusic MQ支持三种消息存贮方式,文件、Berkely DB和通过JDBC接口存放到关系数据库。 文件方式以文件方式保存消息,配置简单并具有较高的性能。在可靠性要求不高但对性能要求很高的环境下可以使用这种消息存储方式。 Berkely DB使用Berkely DB保存消息。Berkely DB的伸缩性和可靠性都较高,可以满足大多数应用的需要。Berkely DB同样具有配置简单的特点。由于Berkely DB的License限制商业使用,因此Apusic发行包中并不包含Berkely DB运行库,需要单独从下载。 JDBC使用关系数据库保存消息。对可靠性要求很高的应用环境下建议使用这种消息存储方式。JDBC消息存储方式的缺点是配置较复杂。8.5 消息签收消息签收指接收方接收到消息后,系统会自动发送回执给发送方,通知发送方消息已收到。用户在发送消息时可指定该消息需要签收。8.6 消息优先级Apusic MQ支持用户设置消息优先级。消息优先级包括0-9 十个级别,0-4 是普通消息,5-9 是加急消息。Apusic MQ会根据消息优先级的高低安排消息的发送次序。在两条具备不同优先级的消息同时发送时,通常情况下,加急消息将先于普通消息送达。8.7 消息的同步和异步接收Apusic MQ支持消息的同步接收和异步接收。 消息的同步接收同步接收是指客户端主动去接收消息。 消息的异步接收异步接收是指当消息到达时,主动通知客户端。8.8 消息选择在消息应用中,经常需要对消息进行选择,只接收自己感兴趣的消息。Apusic MQ提供消息过滤功能,用户可自己定义消息过滤规则。比如,当一个消息被广播给许多接收者时,用户可以在消息头加入消息识别信息,Apusic MQ会根据消息识别信息,将消息发送到对这类消息感兴趣的接收者。9 消息目的地权限控制在Apusic MQ中,你可以对队列和主题设定访问权限, Apusic MQ可设定用户和组能够对队列和主题进行何种操作。对于队列,可以设定发送(send)、接收(receive)和浏览(browse)权限;对于主题,可以设定发布(publish)、订阅(subscribe)、持久订阅(subscribe-durable)和取消持久订阅(unsubscribe)权限。10 多种语言的调用接口Apusic MQ采用纯Java语言实现,可以运行在各种平台上。Apusic MQ提供了Java、C、C+、.Net等多种语言的调用接口,从而能够支持多种语言编写的应用之间的通讯。由于支持多种语言调用并支持多种平台,Apusic MQ可以作为各种异构应用集成的底层支撑平台。11 对传输大尺寸对象消息的支持通过Apusic MQ能够传输普通消息和大尺寸对象消息。在应用中发送普通消息时,Apusic MQ提供的客户端首先会将要发送的消息整个装进内存,然后才一次性将消息通过网络发送到服务器上。因此,一次能够发送的消息的大小取决于客户端内存的大小。一般情况下,普通消息都用于发送数据量比较小的数据。对于数据量巨大的大块数据,例如:卫星云图、文件、数据库批量数据等,不可能使用普通消息一次性将数据发送到服务器,而分成多次发送数据,将会使应用过多的处理数据拆分、消息封装等问题。因此Apusic MQ提供了大尺寸对象消息,用于传输数据量巨大的大块数据。在应用中发送大尺寸对象消息时,Apusic MQ提供的客户端不会一次性将数据全部装进内存再发送到服务器。应用只需指定一个数据来源,通过该数据来源能够得到要发送的数据,然后Apusic MQ的客户端会对数据进行拆分、封装为消息,接着分成多次将数据发送到服务器,而且发送大尺寸对象消息时,不会对服务器现有的队列或者主题造成任何影响。11.1 对大文件传输的支持大文件传输是大尺寸对象消息传输比较常见的应用场景,因此Apusic MQ在大尺寸对象消息传输之外,还提供了使用MQ进行大文件传输的功能。它具有不限制传输文件大小、断点续传、多线程传输、高可靠性、简单易用等特点。如下图所示,发送文件时,发送端先登录MQ服务器,利用现有的网络将文件发送到目的服务器,然后接收端再登录到目的服务器,将文件接收下来,MQ服务器保证了文件传输过程的可靠性和安全性。使得整个过程就像发送或者接收一个消息一样,简单、方便、可靠、安全、高效。Apusic MQ还提供了一套进行文件传输的客户端API,使用该套API可以方便地在不同的MQ节点间传输文件,而且在API级别提供了传输文件时的断点续传、多线程传输、删除传输文件等功能,从而让开发人员可以通过这套API在应用程序中方便地使用Apusic MQ进行文件传输。12 集中式管理与监控工具Apusic MQ提供了基于Eclipse技术的MQ集中式管理与监控工具,能够在单节点上对整个MQ网络上的所有节点进行管理与配置、监控整个MQ网络目前的拓扑结构、连接状态,以及整个MQ网络上任何一个节点所发生的事件,让您对您的网络一目了然,实时掌握整个系统的运行状况。13 与Apusic应用服务器的无缝集成Apusic MQ可以很好地和Apusic应用服务器集成,集成方式包括: 从Servlet、JSP中调用Apusic MQ发送或接收消息。 从EJB中调用Apusic MQ发送或接收消息,当EJB方法处在事务中时,对Apusic MQ的调用也可以加入到当前事务中。 通过Apusic MQ发送消息到Message-Driven Bean。 J2EE应用服务器可通过配置消息适配器连接到Apusic MQ。 分布式事务支持,队列操作可以同其它资源(如数据库操作)一起参加分布式事务。14 所支持的平台Apusic MQ完全采用Java语言开发,支持多种硬件平台和操作系统,如HP-UX、IBM AIX、SUN SOLARIS、Windows98/NT/2000/2003/XP、各种Linux等,使用户可以灵活选择硬件平台。以下是Apusic MQ经过测试认证支持的操作系统列表: HP-UNIX 11.0, 11i (PA-RISC) HP NonStop server (MIPS) HP-UNIX 11i V2 (Itanium) HP OpenVMS 7.3-1 (Alpha) HP Tru64 UNIX 5.1 (Alpha) Red Hat Enterprise Linux 2.1 AS, ES, WS (Pentium) Red Hat Enterprise Linux 2.1 AS, ES (Itanium) Red Hat Enterprise Linux 3.0-1 AS, ES, WS (x86) Red Hat Linux Advanced Server 2.1 (Pentium) Red Flag Linux 4.0,4.1 SuSE Linux Enterprise Server(SLES) 8 (Pentium) SuSE Linux Enterprise Server(SLES) 8 (PowerPC, POWER4) SuSE Linux Enterprise Server(SLES) 8 (IBM zSeries/S390 G5 or later models) Sun Solaris 8 (SPARC) Sun Solaris 9 (SPARC, x86) Sun Solaris 10(SPARC,x86) IBM AIX 5L v5.1, v5.2 (PowerPC POWER3, PowerPC POWER4) MS Windows 2000 Professional, MS Windows 2000 Server, MS Windows 2000 Advanced Server, MS Windows 2000 Datacenter Server (Pentium) MS Windows Server 2003 Standard, Enterprise, Datacenter Edition(Pentium) MS Windows Server 2003 Enterprise, Datacenter Edition (Itanium) MS Windows XP (Pentium)Apusic MQ支持但不限于以上列出的平台。理论上,只要支持标准的Java VM的操作系统,Apusic MQ也能够支持。15 技术汇总以下是Apusic MQ支持的规范列表Apusic MQ支持的规范包括: Java Message Service 1.1 Java Management Extentions 1.2 Java Transaction API 1.0 Java Transaction Service Object Transaction Service1.1与其它消息中间件相比,Apusic MQ的特性列表总结如下: 采用Java语言开发,完全实现行业标准的JMS 1.1及JNDI规范,提供安全、可靠、高效的消息传输。 支持多种操作系统和硬件平
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新型工业厂房购置与租赁一体化合同
- 2025年高端自动化生产线设备采购合同续约及调整协议范本
- 2025年新型环保变压器移位施工专利授权及服务合同
- 2025年金融科技风控专家团队综合能力提升与培训服务合同
- 2025综合医疗耗材配送与专业售后技术服务协议
- 2025年跨地区劳务派遣合同主体变更及权益保障协议
- 2025年度生态农业园区绿色建筑桩基旋挖钻孔灌注桩施工合同
- 2025年航空航天动力装置供应及维护保障协议
- 钢结构工程安装合同协议书范本
- 历年考中医师试题及答案
- Q-GDW10166.1-2025 输变电工程初步设计内容深度规定第1部分:110(66)kV架空输电线路
- JG/T 503-2016承插型盘扣式钢管支架构件
- 落户防离职协议书
- T/SFABA 5-2024食品配料天然度检测
- 铁路团体车票协议书
- 2025新人教版英语八上单词默写单(先鸟版)
- 养老护理移乘技能课件
- 物业服务接待课件
- 2025年度专业技术人员继续教育公需科目考试题(附答案)
- 广东2025年03月珠海市市直机关事业单位公开招考合同制职员笔试历年参考题库考点剖析附解题思路及答案详解
- 供应商有效管理方案
评论
0/150
提交评论