weixin_47850170
数据人儿
采纳率0%
2021-03-05 17:22

TcaplusDB中gameserver 如何剔除某个无效的 tcaproxy(接入层)节点?

  • TcaplusDBgameserver 如何剔除某个无效的 tcaproxy(接入层)节点?
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • weixin_44545651 TcaplusDB 1月前

    TcaplusDB API 在这里对 tcaproxy 异常做了容灾的处理,API 剔除无效的 tcaproxy 进程的方式主要有2个:

    1. API 物理上认为某个 tcaproxy 不可用,API 每隔1秒对起链接的所有的 tcaproxy 发送心跳检测包,如果某个 gameserver 在10s内没有从 tcaproxy 收到相应的心跳回包,则 API 会主动断开与 tcaproxy 的 TCP 链接, 在下个 onupdate 时主动去链接该 tcaproxy 。
    2. API 逻辑上认为 tcaproxy 不可用,是每隔10s去计算下某个 tcaproxy 的请求和响应比,作为判断依据,其中 API 为某个请求包超时的阈值是3s,大于3次则认为该 tcaproxy 不可用,请求不会再发给该 tcaproxy ,在60s后发送 getmetdata 请求,如果 tcaproxy 能够正确处理 getmetadata 的请求,则 API 再次认为该 tcaproxy 可用,请求会再次发送给该 tcaproxy。

    从现象上看,gameserver 在10s内发现某个 tcaproxy 不可用,则不会再向该 tcaproxy 节点发送数据了。

    点赞 评论 复制链接分享