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

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时序图

在这里插入图片描述

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

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

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

常用负载均衡策略

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

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

  3. 并发量最小可用策略
    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

整体时序图如下所示
在这里插入图片描述

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

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

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

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

特点
  1. TM不区分集群配置还是单节点配置。默认都是使用集群的策略(节点数为1时跳过负载均衡逻辑)
  2. 本地TC只需要配置部分TM集群内的节点,TC启动后会自动拉取所有节点信息。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值