背景介紹:學(xué)會(huì) akka 編程锨推,自己編寫一個(gè)分布式的 RPC 通信框架,為學(xué)習(xí) spark 的源碼做準(zhǔn)備。
一换薄、Akka 簡介
Akka 基于 Actor 模型,提供了一個(gè)用于構(gòu)建可擴(kuò)展的(Scalable)翔试、彈性的(Resilient)轻要、快速響應(yīng)的(Responsive)應(yīng)用程序的平臺(tái)。
Actor 模型:在計(jì)算機(jī)科學(xué)領(lǐng)域垦缅,Actor 模型是一個(gè)并行計(jì)算(Concurrent Computation)模型冲泥,它把 actor 作為并行計(jì)算的基本元素來對(duì)待:為響應(yīng)一個(gè)接收到的消息,一個(gè)actor能夠自己做出一些決策壁涎,如創(chuàng)建更多的actor凡恍,或發(fā)送更多的消息,或者確定如何去響應(yīng)接收到的下一個(gè)消息怔球。
二嚼酝、重要的類介紹
ActorSystem
在 Akka 中,ActorSystem 是一個(gè)重量級(jí)的結(jié)構(gòu)竟坛,他需要分配多個(gè)線程闽巩,所以在實(shí)際應(yīng)用中,ActorSystem 通常是一個(gè)單例對(duì)象担汤,我們可以使用這個(gè) ActorSystem 創(chuàng)建很多 Actor又官。
Actor
在 Akka 中,Actor 負(fù)責(zé)通信漫试,在 Actor 中有一些重要的生命周期方法六敬。
- preStart() 方法:該方法在 Actor 對(duì)象構(gòu)造方法執(zhí)行后執(zhí)行,整個(gè) Actor 生命周期中僅執(zhí)行一次驾荣。
- receive() 方法:該方法在 Actor 的 preStart 方法執(zhí)行完成后執(zhí)行外构,用于接收消息普泡,會(huì)被反復(fù)執(zhí)行。