Akka

使用akka作非同步任務處理

同步轉非同步是一種常見的優化手段,最近一次在做調優時便大量使用了這種方式。通常在一個業務場景中會包含多個操作,有些操作的結果需要讓使用者立馬知道,但有些操作則不需要。這些使用者不需要等待結果的操作,我們在程式設計的時候便可以非同步處理。這麼做最直接的效果就是縮短介面響應速度,提升使用者體驗。 我此次 […]

使用Akka Cluster Singleton實現叢集單例

上篇文章主要講了如何使用Akka作非同步任務處理。最後還丟擲一個問題。 具體問題的描述就不在這篇文章贅述了,我們僅簡單回顧一下第一種解決方案:覆寫persistenceId()時,加一個UUID,這樣三臺伺服器上的Actor就不會再共享journal。雖然這個方案已經可以解決問題了,但並不是最理想的 […]

Akka系列(二):Akka中的Actor系統

Actor模型作為Akka中最核心的概念,所以Actor在Akka中的組織結構也至關重要,本文主要介紹Akka中Actor系統。 Actor系統 Actor作為一種封裝狀態和行為的物件,總是需要一個系統去統一的組織和管理它們,在Akka中即為ActorSystem,其實這非常容易理解,好比一個公司, […]

Akka系列(三):監管與容錯

Akka作為一種成熟的生產環境併發解決方案,必須擁有一套完善的錯誤異常處理機制,本文主要講講Akka中的監管和容錯。 監管 看過我上篇文章的同學應該對Actor系統的工作流程有了一定的瞭解Akka系列(二):Akka中的Actor系統,它的很重要的概念就是分而治之,既然我們把任務分配給Actor去執 […]

Akka系列(四):Akka中的共享記憶體模型

通過前幾篇的學習,相信大家對Akka應該有所瞭解了,都說解決併發哪家強,JVM上面找Akka,那麼Akka到底在解決併發問題上幫我們做了什麼呢? 共享記憶體 眾所周知,在處理併發問題上面,最核心的一部分就是如何處理共享記憶體,很多時候我們都需要花費很多時間和精力在共享記憶體上,那麼在學習Akka對共 […]

Akka系列(五):Java和Scala中的Future

隨著CPU的核數的增加,非同步程式設計模型在併發領域中的得到了越來越多的應用,由於Scala是一門函式式語言,天然的支援非同步程式設計模型,今天主要來看一下Java和Scala中的Futrue,帶你走入非同步程式設計的大門。 Future 很多同學可能會有疑問,Futrue跟非同步程式設計有什麼關係 […]

Akka系列(七):Actor持久化之Akka persistence

這次把這部分內容提到現在寫,是因為這段時間開發的專案剛好在這一塊遇到了一些難點,所以準備把經驗分享給大家,我們在使用Akka時,會經常遇到一些儲存Actor內部狀態的場景,在系統正常執行的情況下,我們不需要擔心什麼,但是當系統出錯,比如Actor錯誤需要重啟,或者記憶體溢位,亦或者整個系統崩潰,如果 […]

【Java】AKKA文件(java版)—角色的引用、路徑和地址

2.5 角色的引用、路徑和地址 這一章描述,角色在一個有可能是分散式的角色系統中是如何被識別和定位的。它關係到了角色系統形成的內在監管層級以及角色跨越多個網路節點之間通訊的位置透明化。 上述圖片顯示了角色系統中幾個最重要實體之間的關係,請仔細閱讀。   2.5.1什麼是一個角色引用? 一個 […]

大資料知識:快學Scala(三)Scala程式設計實戰

簡介         在學習完Scala語言後,我們可以實現一個簡單的RPC來鞏固前面我們學習的Scala知識點,這裡主要的知識點涉及樣例類、模式匹配、類繼承、隱式轉化以及函式和方法,如果需要原始碼可以在我的Github上下載,地址是SRPC。 專案概述 需求         目前大多數的分散式架構 […]