《[1]TLQ80产品培训系统概述.pptx》由会员分享,可在线阅读,更多相关《[1]TLQ80产品培训系统概述.pptx(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、TongLINK/Q8.0TongLINK/Q8.0培训培训-系统概述系统概述演演 讲讲 人:人:演讲时间:演讲时间:背景介绍背景介绍基本概念介绍基本概念介绍主要功能主要功能其他相关内容简介其他相关内容简介目录背景介绍背景介绍消息中间件是一种独立的系统软件或服务程序消息中间件是一种独立的系统软件或服务程序介于操作系统和应用系统之间介于操作系统和应用系统之间独立于网络和操作系统独立于网络和操作系统屏蔽了环境的差异型屏蔽了环境的差异型用于分布式应用系统中:用于分布式应用系统中:借助这种软件在不同的系统之间共享资源,管理计算资源和网络通讯。借助这种软件在不同的系统之间共享资源,管理计算资源和网络通讯
2、。实现应用的互连和互操作,保证应用系统安全、可靠、高效地运行。实现应用的互连和互操作,保证应用系统安全、可靠、高效地运行。为应用提供了公用的通信手段。为应用提供了公用的通信手段。为开发者提供了公用于所有环境的应用程序接口。为开发者提供了公用于所有环境的应用程序接口。消息中间件概述当前计算环境硬件环境硬件环境当前的计算环境朝着高配置:多当前的计算环境朝着高配置:多CPUCPU、高带宽(如光纤)、高容量、高带宽(如光纤)、高容量(如磁盘阵列)等方面发展。(如磁盘阵列)等方面发展。软件必须能够充分利用高配置硬件提供的性能,以提高软件性能软件必须能够充分利用高配置硬件提供的性能,以提高软件性能软件环境
3、软件环境支持多种语言和使用方式支持多种语言和使用方式支持多种操作系统支持多种操作系统符合国际标准,如符合国际标准,如JMSJMS支持多种通讯协议支持多种通讯协议TLQ8.0支持的操作系统类型ServerServer:支持主流的支持主流的UnixUnix和和LinuxLinux操作系统,如操作系统,如HP11HP11、AIXAIX、SorlarisSorlaris等常见操作系等常见操作系统类型;统类型;不支持如不支持如SCOSCO等无法提供多线程功能的等无法提供多线程功能的UnixUnix操作系统。操作系统。支持主流的支持主流的Windows Windows 操作系统,如操作系统,如WinNTW
4、inNT、WinXPWinXP、Win2000Win2000、Win2003Win2003不支持诸如不支持诸如Win98Win98、Win95Win95及以下版本。及以下版本。ClientClient:支持几乎所有常见操作系统类型,甚至支持几乎所有常见操作系统类型,甚至Win98Win98、Win95Win95、SCOSCO等等不支持不支持Win32Win32及更低版本的及更低版本的WindowsWindows系统系统基本概念介绍节点节点节点:是一套完整的是一套完整的TLQ运行环境(实例)的集合,其中包括运行的系统运行环境(实例)的集合,其中包括运行的系统核心进程、系统内存资源、日志系统、数据
5、存储和应用进程。系统的监核心进程、系统内存资源、日志系统、数据存储和应用进程。系统的监控和管理是以节点为单位的。控和管理是以节点为单位的。静态:静态:一组环境变量和环境变量对应的目录和文件、一组执行码。一组环境变量和环境变量对应的目录和文件、一组执行码。环境变量包括:环境变量包括:TLQHOMEDIRTLQHOMEDIR(系统安装路径)(系统安装路径)TLQCONFDIRTLQCONFDIR(配置文件存放路径)(配置文件存放路径)TLQMSGDIRTLQMSGDIR(队列文件存放路径)(队列文件存放路径)TLQSNDFILESDIRTLQSNDFILESDIR(发送文件存放路径)(发送文件存放
6、路径)TLQRCVFILESDIRTLQRCVFILESDIR(接收文件存放路径)(接收文件存放路径)TLQLOGDIRTLQLOGDIR(日志文件存放路径)(日志文件存放路径)动态:一组运行进程、动态:一组运行进程、IPCIPC资源和一组目录文件资源和一组目录文件2023/1/31 9消息消息,是在应用进程之间或两台计算机间传送的数据,为消息,是在应用进程之间或两台计算机间传送的数据,为TongLINK/QTongLINK/Q的的最小处理单元。最小处理单元。消息的结构:消息的结构:消息在结构上分为消息描述和消息体。消息在结构上分为消息描述和消息体。数据类型:数据类型:消息分为消息分为BUFF
7、ERBUFFER消息和消息和FILEFILE消息消息BUFFERBUFFER消息的消息体为内存中的一段数据。消息的消息体为内存中的一段数据。FILEFILE消息的消息体为文件名。消息的消息体为文件名。消息组成:消息组成:消息分为单消息和组消息。消息分为单消息和组消息。队列控制单元队列控制单元,英文为队列控制单元,英文为Queue Control UnitQueue Control Unit,简称,简称QCUQCU,是对队列及消,是对队列及消息进行监控和管理运行单位;息进行监控和管理运行单位;运行中的运行中的QCUQCU由由BQSBQS(Buffer Queue System )、数据交换区(发
8、送)、数据交换区(发送/接收缓冲区)、队列、监控进程和管理进程组成;接收缓冲区)、队列、监控进程和管理进程组成;可以根据队列和消息的特点,将队列组织成多个可以根据队列和消息的特点,将队列组织成多个QCUQCU,分别进行管理。,分别进行管理。节点和QCU一个节点的队列可以包含成多个一个节点的队列可以包含成多个QCUQCU,分别进行管理。,分别进行管理。NodeQCU2QCU4QCU1QCU3队列队列是存储消息的数据结构,可存在于主存储器、磁盘或相似的辅助存储器。队列是存储消息的数据结构,可存在于主存储器、磁盘或相似的辅助存储器。队列只属于某一个队列控制单元,由队列控制单元负责维护和管理。队列只属
9、于某一个队列控制单元,由队列控制单元负责维护和管理。队列分为物理队列和逻辑队列两种:队列分为物理队列和逻辑队列两种:物理队列占有物理存储空间;物理队列占有物理存储空间;逻辑队列只是队列定义,不占有物理空间。逻辑队列只是队列定义,不占有物理空间。根据队列的生命周期分为:根据队列的生命周期分为:永久队列永久队列 临时队列(存在于一次注册和注销之间)临时队列(存在于一次注册和注销之间)物理队列本地队列:本地队列:用于存放:用于存放:1 1异地通过网络传输过来的消息、异地通过网络传输过来的消息、2 2本地应用发送的消息、本地应用发送的消息、3 3系统产生的事件消息、系统产生的事件消息、4 4系统内部管
10、理信息等。系统内部管理信息等。发送队列:发送队列:发送队列是消息发送到异地节点的媒介队列。发送队列是消息发送到异地节点的媒介队列。如果要将消息传输到异地,消息必须首先发送到发送队列。通过一如果要将消息传输到异地,消息必须首先发送到发送队列。通过一个发送队列可以将消息发往异地某个节点上的多个队列。个发送队列可以将消息发往异地某个节点上的多个队列。逻辑队列远程队列:远程队列:为远方节点的一个本地队列或远程队列在本地节点的一个逻辑映射。为远方节点的一个本地队列或远程队列在本地节点的一个逻辑映射。当远程队列对应的目的队列为一个远程队列时,表示消息的传输过程还当远程队列对应的目的队列为一个远程队列时,表
11、示消息的传输过程还要继续下去(要继续下去(路由路由,落地路由落地路由)。)。多个远程队列可以对应一个发送队列,即通过多个远程队列发送消息其多个远程队列可以对应一个发送队列,即通过多个远程队列发送消息其实都是通过一个物理的发送队列发出。实都是通过一个物理的发送队列发出。集群队列:集群队列:由多个队列组成的队列集合。当消息放入到集群队列时,按照一定比例由多个队列组成的队列集合。当消息放入到集群队列时,按照一定比例被放入到集合中的多个队列中。被放入到集合中的多个队列中。功能:功能:集群主要有线路备份和负载均衡两种功能集群主要有线路备份和负载均衡两种功能队列间的关系 qcu2 qcu1SQ1RQ1RQ
12、2RQ3LQ1RQ1LQ2RQ4SQ2BQS(Buffer Queue System)存放应用跟系统之间进行交换的控制信息。存放应用跟系统之间进行交换的控制信息。*分为三个部分:分为三个部分:QOUTQOUT:存放应用发向核心的请求信息:存放应用发向核心的请求信息QINQIN:存放核心返回给应用的应答(除发送消息的应答外):存放核心返回给应用的应答(除发送消息的应答外)QAUXQAUX:存放发送消息后核心返回的应答。:存放发送消息后核心返回的应答。2023/1/31BQS(发送程序与BQS的调度关系)S_APPQCU核心进程核心进程QOUTQAUXSendBuffSQRQ12435786720
13、23/1/31BQS(接收程序与BQS的调度关系)R_APPQCU核心进程核心进程QOUTQINRecvBuffLQ12385467传输进程传输进程:传输进程:传输进程分为发送进程和接收进程两种;传输进程分为发送进程和接收进程两种;传输进程通过创建工作线程来完成消息的网络传输传输进程通过创建工作线程来完成消息的网络传输:发送线程负责连接的建立和消息数据的网络发送。发送线程负责连接的建立和消息数据的网络发送。接收线程负责消息数据的网络接收。接收线程负责消息数据的网络接收。发送进程:监视队列,创建和监控发送线程。发送进程:监视队列,创建和监控发送线程。接收进程:监听端口,创建和监控接收线程。接收进
14、程:监听端口,创建和监控接收线程。发送连接:发送连接:连接为两个节点连接为两个节点QCUQCU间进行数据传输的通道(间进行数据传输的通道(TCPTCP下为下为socketsocket连接);连接);由数据发起方建立,连接双方进行维护;由数据发起方建立,连接双方进行维护;一个发送进程可以对应一个或多个发送连接。一个发送进程可以对应一个或多个发送连接。节点和传输进程一个节点可以有一个或多个传输进程,各个传输进程的传输工作互不影响一个节点可以有一个或多个传输进程,各个传输进程的传输工作互不影响NodeSendProcSendProcRecvProcRecvProcCliBrokerCliBroker
15、发送队列和发送连接一个发送进程只能负责某个特定的一个发送进程只能负责某个特定的QCUQCU中消息的发送中消息的发送一个一个QCUQCU可以使用一个或多个发送进程进行消息发送可以使用一个或多个发送进程进行消息发送一个发送进程可以负责一个或多个发送连接的管理一个发送进程可以负责一个或多个发送连接的管理发送连接跟发送队列一一对应发送连接跟发送队列一一对应QCUsndQsndQsndQsndQsndQSndProcsndConnsndConnsndConnsndConnsndConnSndProc端口监听与接收进程发送方可以通过一个或多个端口向某个接收节点发送消息发送方可以通过一个或多个端口向某个接收
16、节点发送消息一个接收进程只能负责某个特定端口的监听,且一个端口不能由多个进程监听一个接收进程只能负责某个特定端口的监听,且一个端口不能由多个进程监听通过某个端口收到的消息只能放到某个特定通过某个端口收到的消息只能放到某个特定QCUQCU的队列中,但可以为任意队列的队列中,但可以为任意队列nodeQCU1QCU2PortRcvProcRcvProcRcvProc接收线程接收线程接收线程接收线程接收线程接收线程接收线程接收线程接收线程接收线程接收线程接收线程接收线程接收线程客户端代理客户端代理作为客户端应用跟客户端代理作为客户端应用跟ServerServer交互的中间媒介。交互的中间媒介。客户端代
17、理接收来自客户端的连接,创建工作线程。客户端代理接收来自客户端的连接,创建工作线程。工作线程负责:工作线程负责:接收客户端发来的消息数据,放入到队列中;接收客户端发来的消息数据,放入到队列中;从队列中取消息数据,并发送给客户端;从队列中取消息数据,并发送给客户端;维护连接。维护连接。端口监听与客户端代理 nodeQCU1QCU2PortCliBroker工作线程工作线程工作线程工作线程工作线程工作线程工作线程工作线程工作线程工作线程CliBroker工作线程工作线程工作线程工作线程工作线程工作线程CliBrokerClientAPP2023/1/31 25瘦客户瘦客户TLQTLQ的客户端是跟的
18、客户端是跟TLQTLQ服务器相对的概念,客户端应用运行时不需要服务器相对的概念,客户端应用运行时不需要核心进程和各种核心进程和各种IPCIPC资源的辅助;资源的辅助;2023/1/31 26主要功能介绍2023/1/31 27点对点传输点对点传输 图形示意:图形示意:发送消息浏览消息接收消息删除消息远程队列本地队列qcugetqcusend2023/1/31 28点对点传输点对点传输发送消息发送消息:普通消息分类:普通消息分类:BufferBuffer消息:内存中的一段数据消息:内存中的一段数据FileFile消息:消息:文件消息,一个消息只能对应一个文件文件消息,一个消息只能对应一个文件消息
19、可发送到的队列消息可发送到的队列:发送队列发送队列本地队列本地队列远程队列远程队列2023/1/31 29点对点传输点对点传输 接收消息接收消息:只能接收只能接收readyready状态的消息状态的消息 只能从本地队列中接收消息只能从本地队列中接收消息 采用采用等待模式接收(等待时间大于等待模式接收(等待时间大于0 0或或-1-1)和非等待模式(等待时)和非等待模式(等待时间为间为0 0)接收)接收2023/1/31 30点对点传输点对点传输消息接收确认模式消息接收确认模式 MsgOpt.AckMode:自动接收模式TLQACK_AUTO接收后,自动删除队列中的消息用户确认模式TLQACK_U
20、SER接收后,须手工确认才从队列中删除消息。如果如果AckType=TLQACK_COMMITAckType=TLQACK_COMMIT提交确认后,成功接收的消息从队列中清除;如果如果AckType=TLQACK_ROLLBACKAckType=TLQACK_ROLLBACK回滚确认后,成功接收的消息被重新放回到队列中2023/1/31 31发布订阅发布订阅发布订阅发布订阅2023/1/31 32发布订阅发布订阅是一种一对多的消息传输模式。消息发布者和订阅者通过主题发布订阅是一种一对多的消息传输模式。消息发布者和订阅者通过主题建立联系,双方无需知道对方的存在。建立联系,双方无需知道对方的存在。
21、发布(者):提供消息(者)发布(者):提供消息(者)订阅(者):消费消息(者)订阅(者):消费消息(者)主题:订阅者和发布者之间发生联系的媒介主题:订阅者和发布者之间发生联系的媒介2023/1/31 33发布订阅发布订阅 概念概念概念概念 发布订阅机制:发布订阅机制:区别与P2P消息传输模式,P2P模式下,消息的生产者必须知道消息的消费者在哪里。Pub/Sub下,消息的生产者无需知道消息的消费者在哪里,而且生产者生产的一个消息可以为多个消费者使用,生产者和消费者之间通过Topic进行关联。发布者:发布者:提供信息者 订阅者:订阅者:信息消费者 订阅者标识:本地订阅者:MsgId 异地订阅者:相
22、邻的代理名2023/1/31 34发布订阅发布订阅 图示图示PublisherSubscriberSubscriberSubscriberSubscriber主主题题举例:古董拍卖,主题为某个古董的竞价发布者:发布古董的最新价格信息订阅者:订阅古董的最新价格信息2023/1/31 35发布订阅发布订阅 发布类型发布类型发布类型发布类型 Event-事件型:每一次发布操作都是独立的。这种消息一般为重要的信息,如果订阅者没有收到可能造成损失。注:允许有多个发布者,只允许先订阅后发布注:允许有多个发布者,只允许先订阅后发布 State-状态型:一般为周期性发布更新的消息,后面发布的消息会覆盖前一次发
23、布的消息。注:一般只允许有一个发布者,由用户保证。注:一般只允许有一个发布者,由用户保证。发布范围发布范围发布范围发布范围 Local-本地发布:发布的消息只会被本地的订阅者收到;Global-异地发布:只会被非本地的订阅者收到;Local|Global-全局发布:整个网络中的订阅者均会收到。2023/1/31 36发布订阅发布订阅 订阅类型订阅类型订阅类型订阅类型 持久订阅:代理重启后,订阅请求信息依然存在。非持久订阅:应用离线或代理重启后,该订阅请求信息不复存在。订阅范围订阅范围订阅范围订阅范围 Local-本地订阅:订阅者只能收到本地发布者发布的信息。Global-异地订阅:订阅者不会收
24、到本地发布的信息,只会收到异地发布的信息。Local|Global-全局订阅:订阅者能够收到本地发布者和异地发布者发布的消息。2023/1/31 37事务事务事务事务2023/1/31 38事务事务概念概念概念概念 为一组逻辑上相关的操作组成的工作单元,在操作时,这些操作要么一起提交,要么一起回滚。组成和操作特点组成和操作特点组成和操作特点组成和操作特点(1)单纯的发送和接收操作,发送和接收操作的结合;(2)事务的不同分支可以操作一个或多个不同的队列,但不能跨QCU;(3)多个组消息或单消息的接收与发送;(4)删除和浏览操作不能放在事务中。提交提交提交提交提交之后,事务中的所有动作才开始执行。
25、回滚回滚回滚回滚 当事务回滚信号发出后,等于所有的操作被放弃,即发往队列中的消息被清除,从本地队列中接收的消息被重新放回。2023/1/31 39事件管理事件管理事件管理事件管理事件管理为系统运行过程中发生的特定情况,这些特定情况可以被系统捕获或识为系统运行过程中发生的特定情况,这些特定情况可以被系统捕获或识别,以便用于分析。别,以便用于分析。事件发生时,如果要求被捕获,则会产生一条消息(事件发生时,如果要求被捕获,则会产生一条消息(Event MessageEvent Message)放入到一个特定队列放入到一个特定队列(TLQ.SYS.EVENT)中中编写应用分析事件队列中的事件消息,跟踪
26、系统的运行。编写应用分析事件队列中的事件消息,跟踪系统的运行。2023/1/31 41事件管理事件管理事件消息概述事件消息概述(1)定义事件是为了跟踪所有消息的状态以及被处理的状况,对所有消息有效(2)为持久性消息;(3)生命周期无限长;(4)比普通消息多两个属性:事件类型和事件发生的时间;(5)TLQ启动时,会自动创建事件队列TLQ.SYS.EVENT;(6)事件队列满后,新产生的事件消息将被丢弃;2023/1/31 42事件管理事件管理BeginSend开始发送消息SendOver发送消息完毕BeginRecv开始接收消息RecvOver 消息接收完毕Expiry生命周期超时FileFai
27、l因对方空间(硬盘空间和队列空间)不足,尝试6次后从发送队列中删除RollbackCount本地队列中消息被rollback 6次FileDel文件消息续传或开始发送时,对应的文件被删除或不存在时事件类型事件类型2023/1/31 43集群集群 概念概念 集群是两个或更多队列控制单元组成的组,它们在逻辑上是相关的,物理上是可以不相关的。应用可以发送消息至同一群集中的其它队列控制单元,而不需要设置特殊发送连接、远程队列和发送队列。集群队列为一种特殊的队列,为一个包含多个真正队列的队列列表。当消息发送到集群队列时,消息实际上被按比例分发到多个真正的队列上。2023/1/31 44集群集群 线路备份
28、线路备份集集 群群集群队列N条消息N条消息故障2023/1/31 45集群集群 负载均衡负载均衡集集 群群集群队列6条消息1条消息2条消息3条消息2023/1/31 46触发管理触发管理客户端集群示意图客户端集群示意图2023/1/31 47触发管理触发管理触触 发发应用触发概念概念当一个或多个消息到达队列时,消息处理应用能够自动启动当一个或多个消息到达队列时,消息处理应用能够自动启动使用触发的原因使用触发的原因无法预知的消息到达时间无法预知的消息到达时间应用一直运行,浪费资源应用一直运行,浪费资源触发模式触发模式,三种:触发模式,三种:OnFirstOnFirstOnEveryOnEvery
29、OnAmountOnAmount触发模式选择建议:触发模式选择建议:OnFistOnFist:当:当队列中队列中ready状态的消息从无到有时,即状态的消息从无到有时,即ready消息个数由消息个数由0到到1时触发时触发。OnEveryOnEvery:一般不建议使用此方式。:一般不建议使用此方式。为队列中有为队列中有ready状态的消息时就触发;状态的消息时就触发;OnAmountOnAmount:消息持续到达,且一个应用无法满足消息的处理,可以:消息持续到达,且一个应用无法满足消息的处理,可以将消息的处理分配到多个应用进程或线程中,当应用进程或线程数将消息的处理分配到多个应用进程或线程中,当应用进程或线程数稳定后,队列中堆积的消息也基本稳定在一定范围内。稳定后,队列中堆积的消息也基本稳定在一定范围内。AmountAmount数的确定:一个应用的处理能力,同时要保证队列中不会堆数的确定:一个应用的处理能力,同时要保证队列中不会堆积太多的消息,而且启动的进程或线程数不会太多。积太多的消息,而且启动的进程或线程数不会太多。ENDThanks
限制150内