大数据系列修炼-Scala课程108

大数据系列修炼-Scala课程108

核心内容:
1、Akka中的Actor消息的处理、消息的回复、消息的转发

1、Akka中的Actor消息的处理、消息的回复、消息的转发

1>在Actor当中,消息的处理一般都是通过receive中的偏函数+模式匹配的方式进行处理的。
2>在Akka当中,若要回复消息给消息的发送者,首先要获得消息发送者的代理(ActorRef),在Akka当中,提供了Sender这样的
一个ActorRef,指向当前消息的发送者。
可能存在一个风险:在消息传递完之后,消息的发送者可能就不复存在了,此时若要给消息的发送者发送消息,ActorSystem会
报出deadletter。
3>通过forward的方式我们可以进行消息的转发。

实例程序1: 消息的处理

override  def receive: Receive =
{
    case message:ReduceData =>
    {
         aggregateInMemoryReduce(message.getHashMap())
    }
    case message:Result  => println(finalHashMap.toString)   //将最终结果进行输出
    case  _ => //否则的话不做任何的处理
}

实例程序2: 给消息的发送者回复消息

override def receive =
{
      case msg:String =>
      {
         println("String is:" + msg)
         sender.!("the message received!")
      }
}

如有问题,欢迎留言指正!

你可能感兴趣的:(scala,大数据)