akka-3 主从节点间的Heartbeat心跳机制与宕机移除

实现:心跳通信与宕机移除 
  1、客户机在连接master成功后创建一个定时器,每5秒发送一次心跳给master
  2、master接收到客户端心跳后,查找对应的客户机,并根据当前时间更新一次内存中的客户机最近一次心跳时间
  3、master主动在一启动时,创建一个定时器,检测当前内存中的客户机最近一次心跳时间是否超过10秒,若超过10秒还没有就从当前内存中移除

最终效果:

1、创建客户机信息类,记录当前的配置信息以及最后一次心跳机制时间 lastUpdateTime

/**
 * Worker的本机信息类
 * id:主机名称  momery:内存大小  cores:CPU核数
 */
class WorkerInfo(val id: String, var memory: Int, var cores: Int) {
  //上次更新的时间
  var lastUpdateTime:Long = _
  override def toString: String = s"WorkerInfo($id, $memory, $cores)"
}

2、创建消息队列:

客户机给master发送:Heartbeat  及客户机自己内部发送的SendHeartbeat 以及master的检测消息CheckTimeoutWorker

//Worker发送给Master的注册信息,case class默认实现序列化
case class RegisterWorker(id: String, me
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pub.ryan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值