之前在项目中因为国产化要求适配,适配国产消息中间件TongHTP,在过程中学习了其一些设计和术语,适配完成后,进行简单的总结了一些需要关注的东西,在有需要的时候可以查阅,包括了多种安装部署,角色交互等
一:概述
TongHTP V2.0是面向分布式应用的高速传输平台,主要功能是在应用程序之间进行实时、高效和可靠地传递消息,使得消息可以在不同的网络协议、不同的计算机系统和不同的应用软件之间进行网络传输。系统支持IPV4协议,TCP协议以及UDP协议。
TongHTP应用程序可灵活地运行在多平台的多节点上。当应用程序之间要传送消息时,应用程序只需将消息目的地、消息的属性和内容以及消息的控制信息通过API接口传递给TongHTP,TongHTP会根据应用提供的信息对消息进行处理,并且利用TongHTP节点组成的虚拟网,将消息传送到消息接收者所在的节点上,最后提交给消息的接收者。
TongHTP V2.0具有如下优点:
1. 提供亿级消息堆积能力
2. 提供低时延的接入传输服务
3. 提供百万级业务并发传输能力
4. 保证数据传输的高可靠性
5. 多种安全防护策略保证业务数据的安全性
6. 支持灵活多变的网络部署模式,方便用户在不同的业务场景下使用
二:整体架构
TongHTP整体架构由客户端(client)、服务端、管理控制台(web)三部分组成,服务端又分为管理节点(namesvr)和工作节点(broker)。产品整体架构如下图所示:

说明:
⚫ 客户端 C 接口提供动态库支持,JAVA 接口提供 jar 包支持。
⚫ TongHTP 的 JAVA 客户端由纯 JAVA 语言编制而成,可以直接跟服务端通信,暂不支持 JMS 规范。
⚫ TongHTP 目前只支持本地存储,工作节点接收到消息存放在本地文件系统,如使用网盘设备进行消息的持久保存,可靠性相对较低,目前暂无计划支持。
⚫ 使用 JAVA 客户端要求 JDK 8 及以上版本。
三:基本概念
3.1 管理节点(Nameserver)
管理节点提供服务注册、服务发现、对集群中各工作节点的运行状态和负载情况的监控、集中存储集群状态信息、统一管理集群工作节点配置、服务负载均衡以及连接安全、日志和本地进程监控(以下简称namesvr)。
管理节点的功能设计包括监控管理子系统、安全保障子系统、数据存储子系统、名字服务管理子系统、集群调度子系统、远程管理子系统。
3.2 工作节点(Broker)
工作节点提供消息传输和转发、消息存储、消息消费、消息事件生成、发送队列管理、节点运行信息上报管理节点以及动态配置更新、日志和本地进程监控(以下简称Broker)。
工作节点的功能设计包括数据传输子系统、数据存储子系统、消息处理子系统、监控管理子系统。
3.3 客户端节点(Client)
TongHTP客户端提供对多种开发工具和开发环境的支持,提供C、Java方式的接口,方便应用程序的开发。
应用程序可以通过调用这些接口实现消息的传递、系统管理等功能,应用程序只需要关心业务处理逻辑,而不必关心复杂的底层网络传输。应用程序可以和TongHTP服务端工作节点、管理节点部署在同一台机器上,也可以部署在不同的机器上。
3.4 通信域(Domain)
TongHTP客户端采用通信域+主题模式来唯一确定某一业务标识。通信域用作资源隔离,同一通信域下,主题是唯一的;同一主题下,通信域不是唯一,可以是多个并且通信域可以为空。在同一通信域下,主题不能重名;不同通信域的主题可以重名,但互不影响。通信域与主题的具体设置是由客户自己规划与设置(以下简称Domain)。
3.5 主题(Topic)
TongHTP客户端是采用围绕主题模式来进行业务区分和开展通讯的,各个通信模块可以配置相应的主题进行发布,订阅者可以根据主题进行订阅。
3.6 消息(Message)
“消息”是在应用进程之间或一个应用的不同部分之间交换的数据单位,应用可分布在多台相同或不同的平台上,也可分布在一台计算机上。消息可非常简单,例如只包含文本字符串;也可更复杂,包含嵌入对象或者一个文件。
TongHTP的消息分为两部分:
⚫ 应用数据:应用数据的内容和结构由用户程序来定义。
⚫ 消息描述:消息描述给出消息的特定属性,包含消息类型、优先级、持久性、延迟性等。
3.7 生产者(Producer)
消息的提供者。生产者通过指定管理节点IP地址和端口服务、客户端标识、通信域属性、主题这些要素,组织要传递的消息内容,把该消息发送到生产者要传送的目的地。
3.8 消费者(Consumer)
消息的消费者。消费者通过指定管理节点IP地址和端口服务、客户端标识、通信域属性、主题这些要素进行消息消费。
3.9 发布订阅(Pub-Sub)
发布订阅是一种消息范式,消息的发送者(称为发布者)不会将消息直接发送给特定的接收者(称为订阅者)。而是将发布的消息分为不同的类别,无需了解哪些订阅者可能存在。同样的,订阅者可以表达对一个或多个类别的兴趣,只接收感兴趣的消息,无需了解哪些发布者存在。
发布者/订阅者应用模式支持向一个特定的消息主题生产消息。多个订阅者可能对接收来自特定消息主题的消息感兴趣。每条消息可以有多个订阅者;订阅者只有订阅后才能接收到消息。

1. 消息发布者数据流向:发布者携带主题消息发布到TongHTP集群节点
2. 消息订阅者数据流向:订阅者向TongHTP集群节点订阅已发布的主题消息
3.10 本地发布
消息发布者可以指定本地发布模式,当指定发布模式为本地发布模式后,根据主题获取的broker节点只会返回一个broker节点,发布者会把消息推送到这个节点上。
3.11 本地订阅
消费者在订阅主题消息时可以指定本地订阅,当消费者指定本地订阅模式后,主题对应的broker节点只会返回本地节点,消费者只会从本地节点订阅消息。
3.12 消息回溯
对于已经消费成功的消息或者消费失败的消息,需要支持该信息在一定的时间段内的存储,等待某一时间内该消息会被重新消费的可能。
基于偏移量回

最低0.47元/天 解锁文章
4931

被折叠的 条评论
为什么被折叠?



