1 TongLINKQ简介
TongLinkQ 是面向分布式应用的消息中间件产品,主要功能是在应用程序之间进行实时、高效和可靠的传递消息,使得消息在不同的网络协议、不同的计算机系统和不同的应用软件之间进行网络传输。
TongLinkQ 应用程序可灵活地运行在多平台的多节点上。当应用程序之间要传送消息时,应用程序只需 将消息目的地、消息的属性和内容以及消息的控制信息通过 API 接口传递给 TongLinkQ ,TongLinkQ 根据应用提供 的信息对消息进行处理,并且利用 TongLinkQ 的节点组成的虚拟网,将消息传送到消息接收者所在节点上, 最后提交给消息的接收者。
2 TongLINKQ主要特点
支持开发语言:C/C++/C#,JAVA,JMS。
支持协议:支持 TCP/IP 协议,支持SSL 安全传输协议。
支持多种网络底层环境:
如:租用线 (Leased line)、拨号线、分组交换网(X..25)、DDN , 帧中继 (Frame Relay) 、
卫星网络等(以太网,广域网,拨号上网,DDB专线卫星网)
支持多运行平台:
Windwos系列,Linux系列,AIX系列,Solaris系列
如 HP-UX 、IBM AIX、Linux、SUN solaris、Windows NT、Windows2000/XP 等,
Linux 中支持国产 Linux 操作系统,如中标麒麟,银河麒麟,浪潮,芯片类型中支持国产的飞腾芯片。
3 系统架构
3.1 系统整体架构
(1)每个节点由一个或多个 QCU、一个节点监控进程、一个远程管理进程和一个JNDI代理进程组成。下面分别进行说明每个进程都负责的功能:
- 节点监控进程(TL_MONI)负责节点上各核心进程,应用进程的运行监控。
- 远程管理进程(TL_RMT)负责处理控制台Web服务器的请求,如启动/停止,配置管理,监控等。
- JNDI 代理进程(TL_JNDIBROKER)负责与JNDI客户端交互,进行连接工厂、队列信息的查找。
(2)每个传输进程(包括发送、接收和客户代理)只能跟一个QCU进行交互。
(3)每个QCU包括QCU监控进程、QCU管理进程、发布订阅代理进程、发送进程、接收进程和 普通客户端代理进程、JMS客户端代理进程组成, 但QCU监控进程、QCU管理进程及发布订阅代理进程只能有一个,发送进程、接收进程、JMS客户端代理进程和客户端代理进程可以有一个或多个。下面分别进行说明每个进程都负责的功能:
- QCU 负责所管辖范围内的队列及消息的管理和操作。
- 发送进程(TL_SND)
负责从 QCU 的发送队列中取消息,并进行网络发送。
- 接收进程(TL_RCV)
负责从网络接收消息,并放入到 QCU 的本地队列中。
- 客户端代理进程(TL_CLIBROKER)
负责与普通客户端进行交互,进行对队列中消息的操作。
- JMS 客户端代理进程(TL_JMSBROKER)
负责与 JMS 客户端进行交互,进行消息的发送接收操作。
- 发布订阅代理进程(TL_PSBROKER)
负责发布、订阅操作的处理。
- QCU 监控进程(TL_QMONI)
负责监控队列中的消息,根据情况向队列管理进程发出信号,以便队列管理进程对某些消息进行特殊操作,如消息生命周期到、应用读取消息的超时时间。
- QCU 管理进程(TL_QMNG)
负责将发送缓冲区中的消息发送到发送队列、将本地队列中的消息放入到接收缓冲区,同时负责对队列中的消息进行操作,如删除等。
3.2 QCU的结构
QCU 主要由发送缓冲区、接收缓冲区、管理进程、监控进程和多个队列(发送队列和本地队列)构成。
管理进程负责将发送缓冲区中的消息发送到发送队列,将本地队列中的消息放入到接收缓冲区;同时负责对队列的管理操作,如恢复、创建、删除和属性修改,对队列中消息的操作,如读取、删除等。
监控进程负责监控队列中的消息,根据情况向队列管理进程发出信号,以便队列管理进程对某些消息进行特殊操作,如消息生命周期到。
3.3 应用相关架构
3.3.1 发送消息到队列
应用进程发送消息到队列,消息首先被发送到发送缓冲区中,然后 QCU 的管理进程会从发送缓冲区中读取消息,并放入到相应的队列中。消息发送的目的地可以是远程队列、发送队列和本地队列。发送到远程队列中的消息,会放入远程队列对应的发送队列中。
3.3.2 应用从本地队列接收消息
应用进程接收消息时,首先是向 QCU 发送一个接收消息的命令,管理进程会根据接收条件找到符合条件的消息并放入到接收缓冲区中,然后应用从接收缓冲区接收到消息。