TX-LCN TM集群与负载均衡设计方案 草稿

    技术2025-08-31  44

    TM集群特点

    1)所有节点对等,为P2P结构,不存在主从节点。 2) 节点之间使用Redis作为中间节点,所有状态信息更新至Redis中

    TM集群示例图

    TM 健康检查机制

    所有TM都会上传自己的信息到中,tm:cluster:*格式的key存在, 例如,某一时刻redis中记录的信息如下 TM每30秒上报自己的信息到Redis中 tm:cluster:*的key存在超时时间,默认为60s, 因此,当TM超过两次未上报自己信息,或者上报信息表示自己不可用时,会从集群内删除

    TC端

    TC端会保存所有TM的实例清单

    TM端

    TM端会提供一些接口,反应当前的状态信息,比如最近一段时间内的并发量,请求成功率等。以方便TC选择合适的TM端进行请求

    事务发起方使用TM时序图

    本地服务A(TC1)在启动时读取本地TM集群配置。本地服务A使用客户端负载均衡,由负载均衡策略,选择选择节点TM2调用TM2加入到事务组服务A调用服务B本地服务A使用客户端负载均衡,由负载均衡策略,选择选择节点TM1调用TM1加入到事务组继续执行后续内容

    这样,tc调用的TM节点会使用当前的负载均衡策略选择节点,相对于单TM节点,TM集群分摊了整个应用的调用压力,可以很好的提高并发量。 总结来说,该机制主要有以下特点

    使用客户端负载均衡 ,由事务发起方TC决定使用哪个TM由于TM使用同一个Redis,故所有TM的事务信息共享,TM为无状态服务,调用任一服务效果一致。

    常用负载均衡策略

    轮询策略(RoundRobinRule) 轮询策略就是拿到所有的服务节点的列表,对所有节点进行固定排序,挨个请求 当请求到最后一个节点的情况下,下次请求从第一个节点开始

    随机策略(RandomRule) 拿到所有的服务节点的列表后,对现有可访问节点,随机抽取一个进行访问

    并发量最小可用策略 TC定时主动去拉去TM的状态信息,TM会返回最近一段时间的并发量统计数据,选择一个并发量最小的并且可用的TM去访问。

    其他可用策略待添加

    客户端负载均衡技术实现方案

    客户端实时更新TM集群节点列表

    tc本地配置文件会配置TM集群内的部分或者全部节点

    txlcn: tm: server: 192.168.100.1:8070,192.168.100.2:8070,192.168.100.3:8070

    整体时序图如下所示

    TC首次启动时,从当前配置文件中选择一可用TM服务器,获取TM集群信息列表开启定时器,定时执行TM集群状态更新任务,默认30s一次,可配置

    负载均衡

    预设几种常见的负载均衡方案

    轮询策略随机策略并发量最小可用策略(默认)

    用户可实现自己的负载均衡策略

    特点

    TM不区分集群配置还是单节点配置。默认都是使用集群的策略(节点数为1时跳过负载均衡逻辑)本地TC只需要配置部分TM集群内的节点,TC启动后会自动拉取所有节点信息。
    Processed: 0.010, SQL: 10