原创 Akka-Cluster(2)- distributed pub/sub mechanism 分佈式發佈/訂閱機制

   上期我們介紹了cluster singleton,它的作用是保證在一個集羣環境裏永遠會有唯一一個singleton實例存在。具體使用方式是在集羣所有節點部署ClusterSingletonManager,由集羣中的leader節點選定

原创 Akka-Cluster(1)- Cluster Singleton 單例節點

關於cluster-singleton我在前面的博文已經介紹過,在這篇我想回顧一下它的作用和使用方法。首先,cluster-singleton就是集羣某個節點上的一個actor。任何時間在集羣內保證只會有一個這種actor的實例。它可以是在

原创 Akka-Cluster(0)- 分佈式應用開發的一些想法

  當我初接觸akka-cluster的時候,我有一個夢想,希望能充分利用actor自由分佈、獨立運行的特性實現某種分佈式程序。這種程序的計算任務可以進行人爲的分割後再把細分的任務分派給分佈在多個服務器上的actor上去運算。這些服務器都處

原创 深圳scala-meetup-20180902(3)- Using heterogeneous Monads in for-comprehension with Monad Transformer

  scala中的Option類型是個很好用的數據結構,用None來替代java的null可以大大降低代碼的複雜性,它還是一個更容易解釋的狀態表達形式,比如在讀取數據時我們用Some(Row)來代表讀取的數據行Row,用None來代表沒有讀

原创 深圳scala-meetup-20180902(1)- Monadic 編程風格

剛完成了9月份深圳scala-meetup,趁刮颱風有空,把我在meetup裏的分享在這裏發表一下。我這次的分享主要分三個主題:“Monadic編程風格“、”Future vs Task and ReaderMonad應用方法“及”us

原创 PICE(6):集羣環境裏多異類端點gRPC Streaming - Heterogeneous multi-endpoints gRPC streaming

   gRPC Streaming的操作對象由服務端和客戶端組成。在一個包含了多個不同服務的集羣環境中可能需要從一個服務裏調用另一個服務端提供的服務。這時調用服務端又成爲了提供服務端的客戶端了(服務消費端)。那麼如果我們用streaming

原创 PICE(5):MongoDBStreaming - gRPC -MGO Service

  我在前面提到過MongoDB不支持像SQL般字符式的操作指令,所以我們必須對所有的MongoDB操作指令建立protobuf類型才能支持MongoDB指令的序列化。在對上一篇博文裏我們把MongoDB的消息指令序列化單獨挑出來討論了一番

原创 深圳scala-meetup-20180902(2)- Future vs Task and ReaderMonad依賴注入

  在對上一次3月份的scala-meetup裏我曾分享了關於Future在函數組合中的問題及如何用Monix.Task來替代。具體分析可以查閱這篇博文。在上篇示範裏我們使用了Future來實現某種non-blocking數據庫操作,現在可