scala-akka实现简单的分布式RPC通信框架(主从监听,消息发送)

简介:模拟用akka实现一个RPC分布式通信框架,实现从机向主机发送心跳,主机判断从机是否挂机,以及消息通信的简单功能。

开发平台:IntelliJ IDEA     Maven架构

项目结构及依赖:


代码2个样例类:

case  class Workinfo (val id:String) extends Serializable{
}
case  class SendHearBeat (val id:String) extends Serializable{
}

Master类:

import akka.actor.{Actor, ActorSystem, Props}
import com.typesafe.config.ConfigFactory
import scala.concurrent.duration._
import scala.collection.mutable
class Master extends Actor{
   //保存worker  id
   val workerMessage=new mutable.HashMap[String,Long]
   //worker超时时间
   val WORKEER_TIMEOUT=10 * 1000
   override def preStart(): Unit ={
      //导入隐式转换,用于启动定时器
      import context.dispatcher
     //启动定时
      context.system.scheduler.schedule(0 millis,5000 millis,self,"CheckOfTimeOutWorker")
  }
   override def receive: Receive = {
      //注册woker把workerid 和当前时间存起来
      case  Workinfo(id)=>{
         if(!workerMessage.contains(id)) {
            workerMessage.put(id, System.currentTimeMillis())
         }
         println("注册worker:"+id)
         sender ! "MasterReply"
      }
      //接收worker心跳,更新接收时间
      case SendHearBeat(id)=>{
         workerMessage(id)=System.currentTimeMillis()
         println("接收到worker:"
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值