TongLINKQ(1):TongLINKQ概述

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 发送一个接收消息的命令,管理进程会根据接收条件找到符合条件的消息并放入到接收缓冲区中,然后应用从接收缓冲区接收到消息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/319843.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Vulnhub靶机:driftingblues 2

一、介绍 运行环境:Virtualbox 攻击机:kali(10.0.2.15) 靶机:driftingblues2(10.0.2.18) 目标:获取靶机root权限和flag 靶机下载地址:https://www.vulnhub.com/entr…

Http协议简述

目录 HTTP-概述 2.1.1 介绍 2.2.2 特点 2.2 HTTP-请求协议 2.3 HTTP-响应协议 2.3.1 格式介绍 2.3.2 响应状态码 HTTP-概述 2.1.1 介绍 HTTP:Hyper Text Transfer Protocol(超文本传输协议),规定了浏览器与服务器之间数据传输的规则。 http是互联…

React入门 - 06(TodoList 列表数据的新增和删除)

本章内容 目录 一、实践一下 React 的列表渲染二、TodoList 新增功能三、列表循环的 key四、删除 上一节内容我们完成了输入框中可以自由输入内容,这一节我们继续 TodoList功能的完善:列表数据的新增和删除。 在开始之前,我们先介绍一下 Re…

C++力扣题目222--完全二叉树的节点个数

给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。 完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最…

目标检测-One Stage-YOLOv7

文章目录 前言一、YOLOv7的不同版本二、YOLOv7的网络结构二、YOLOv7的创新点三、创新点的详细解读ELAN和E-ELANBoF训练技巧计划型重参化卷积辅助训练模块标签分配Lead head guided label assignerCoarse-to-fine lead head guided label assigner 基于级联模型的复合缩放方法 总…

面试官问,如何在十亿级别用户中检查用户名是否存在?

面试官问,如何在十亿级别用户中检查用户名是否存在? 前言 不知道大家有没有留意过,在使用一些app注册的时候,提示你用户名已经被占用了,需要更换一个,这是如何实现的呢?你可能想这不是很简单吗…

java获取已经发送谷歌邮件的打开状态

1.前言 现在网上的方案都是在邮件里面插入一张图片的地址,当收件人打开之后,就会发送请求到指定路径的服务器上,然后在请求的controller里面处理邮件的状态,这个方案确实是行得通的,本文章只是给大家避个坑&#xff0…

从传统训练到预训练和微调的训练策略

目录 前言1 使用基础模型训练手段的传统训练策略1.1 随机初始化为模型提供初始点1.2 目标函数设定是优化性能的关键 2 BERT微调策略: 适应具体任务的精妙调整2.1 利用不同的representation和分类器进行微调2.2 通过fine-tuning适应具体任务 3 T5预训练策略: 统一任务形式以提高…

Vue学习计划-Vue3--核心语法(七)pinia

pinia案例gitee地址 1. pinia 准备一个效果 【搭建 pinia 环境】 安装pinia: npm install pinia/yarn add pinia第二步:操作src/main.ts import { createApp } from vue import App from ./App.vue/* 引入createPinia,用于创建pinia */ import { crea…

阿里云优惠券介绍、种类、领取入口及使用教程

阿里云优惠券是阿里云提供的一种优惠活动,旨在帮助用户节省购买云服务产品的费用。本文将为大家详细介绍阿里云优惠券的相关信息,包括优惠券的介绍、种类、领取入口以及使用教程。 一、阿里云优惠券介绍 阿里云优惠券是阿里云提供给用户的一种优惠凭证&…

vue前端开发自学,异步加载组件,提升用户端的客户体验度

vue前端开发自学,异步加载组件,提升用户端的客户体验度!现实项目开发时,组件的数量非常庞大,如果都是一口气加载完,对手机用户来说,体验度会很差。因此,非常有必要使用异步加载。 那就是,用到了…

Neo4j知识图谱(2)创建与删除

Neo4j - CQL简介_w3cschoolhttps://www.w3cschool.cn/neo4j/neo4j_cql_introduction.html一、创建节点 create(n:Person{name:何仙鸟,age:21}) create就是创建,无论是点还是边都是用create来创建 n相当于一个别名,比如创建一个Person,而Pe…

React16源码: React中的schedule调度整体流程

schedule调度的整体流程 React Fiber Scheduler 是 react16 最核心的一部分,这块在 react-reconciler 这个包中这个包的核心是 fiber reconciler,也即是 fiber 结构fiber 的结构帮助我们把react整个树的应用,更新的流程,能够拆成…

JVM基础(10)——老年代调优

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO 联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬 学习必须往深处挖&…

[ACM算法学习] 诱导排序与 SA-IS算法

学习自诱导排序与SA-IS算法 - riteme.site 为了简化一些操作,定义 # 是字典序最小的字符,其字典序小于字母集里任意字符,并且将其默认作为每个字符串的最后一个字符,即作 S[|S|] SA-IS 算法 SA-IS 算法是基于诱导排序这种思想。…

Python基础知识:整理14 利用pyecharts生成地图

1 地图可视化的基本使用 from pyecharts.charts import Map from pyecharts.options import VisualMapOpts # 准备地图对象 map Map()# 准备数据 data [("北京市", 8), ("上海市", 99), ("广州省", 199), ("重庆市", 400), ("…

JavaScript学习笔记——变量、作用域、var、const和let

JavaScript学习笔记——变量、作用域、var、const和let 学习链接(原链接)变量变量声明的三种方式 作用域作用域介绍作用域分类全局作用域局部作用域(函数作用域)块级作用域块级作用域和局部(函数)作用域区别 varvar的作用域(全局函…

在数据中查找峰值

使用 findpeaks 函数求出一组数据中局部最大值的值和位置。 文件 spots_num 包含从 1749 年到 2012 年每年观测到的太阳黑子的平均数量。求出最大值及其出现的年份。将它们与数据一起绘制出来。 load("spots_num")[pks,locs] findpeaks(avSpots);plot(year,avSpots…

ssm基于vue的儿童教育网站的设计与实现论文

摘 要 传统信息的管理大部分依赖于管理人员的手工登记与管理,然而,随着近些年信息技术的迅猛发展,让许多比较老套的信息管理模式进行了更新迭代,视频信息因为其管理内容繁杂,管理数量繁多导致手工进行处理不能满足广大…

【26 预处理详解】

目录 预定义符号#define定义常量#define定义宏带有副作用的宏参数宏替换的规则宏函数的对比#和##命名约定#undef命令行定义条件编译头文件的包含其他预处理指令 1. 预定义符号 c语言设置了一些预定义符号,可以直接使用,预定义符号也是在预处理期间处理…
最新文章