原创 akka-typed(5) - cluster:集羣節點狀態監視

   akka-cluster對每個節點的每種狀態變化都會在系統消息隊列裏發佈相關的事件。通過訂閱有關節點狀態變化的消息就可以獲取每個節點的狀態。這部分已經在之前關於akka-cluster的討論裏介紹過了。由於akka-typed裏採用

原创 akka-typed(3) - PersistentActor has EventSourcedBehavior

   akka-typed中已經沒有PersistentActor了。取而代之的是帶有EventSourcedBehavior的actor,也就是一種專門支持EventSource模式的actor。EventSource的原理和作用在之前

原创 search(15)- elastic4s-sorting buckets

  聚合結果buckets默認以doc_count 排序方式呈現,即: _count asc 表達。其它還有 _term, _key 爲排序控制元素。_key適用於histogram,date_histogram,如下: POST /c

原创 search(2)- elasticsearch scala終端:elastic4s

   上篇談到:elasticsearch本身是一個完整的後臺系統,對其的操作使用是通過終端api進行的。elasticsearch本身提供了多種編程語言的api,包括java的esjava。而elastic4s是一套基於esjava之上

原创 search(3)- elastic4s-QueryDSL

  elastic4s是elasticsearch一個第三方開發的scala語言終端工具庫(Elastic4s is a concise, idiomatic, reactive, type safe Scala client for E

原创 search(1)- elasticsearch結構概念

   上篇提到選擇了elasticsearch ES作爲專業化搜索引擎的核心,這篇討論一下ES的基本結構和應用概念。首先,從硬結構方面來講:ES是在一個集羣(cluster)環境裏運行的,所以ES應該具備高可用和高擴展特性,因爲系統可以分

原创 search(0)- 企業搜索,寫在前面

  計劃研究一下搜索search,然後寫個學習過程系列博客。開動之前先說說學習搜索的目的:不是想開發個什麼搜索引擎,而是想用現成的搜索引擎在傳統信息系統中引進搜索的概念和方法。對我來說,傳統的管理系統legacy i.t system已經

原创 restapi(9)- caching, akka-http 緩存

restapi作爲前後端交互的樞紐:面對大批量的前端請求,需要確保回覆的及時性。使用緩存是一項有效工具。我們可以把多數前端請求的回覆response存入緩存,特別是一些需要大量計算才能獲取的回覆值,更可以大大提高後端的反應速度。值得慶幸的

原创 CassandraAppender - distributed logging,分佈式軟件logback-appender

   農曆年最後一場scala-meetup聽劉穎分享專業軟件開發經驗,大受啓發。突然意識到一直以來都沒有完全按照任何標準的開發規範做事。誠然,在做技術調研和學習的過程中不會對規範操作有什麼嚴格要求,一旦技術落地進入應用階段,開始進行產品

原创 restapi(8)- restapi-sql:用戶自主的服務

  學習函數式編程初衷是看到自己熟悉的oop編程語言和sql數據庫在現代商業社會中前景暗淡,準備完全放棄windows技術棧轉到分佈式大數據技術領域的,但是在現實中理想總是不如人意的。本來想在一個規模較小的公司展展拳腳,以爲小公司會少點歷

原创 restapi(5)- rest-mongo 應用實例:分佈式圖片管理系統之一,rest 服務

  最近有同事提起想把網頁上的圖片存在MongoDB裏,我十分贊同。比起把圖片以文件形式存放在硬盤子目錄的方式,MongoDB有太多的優勢。首先,MongoDB是分佈式數據庫,圖片可以跨服務器存儲。在一個集羣環境裏通過複製集、分片等技術可

原创 restapi(4)- rest-mongo : MongoDB數據庫前端的httpserver

   完成了一套標準的rest風格數據庫CRUD操作httpserver後發現有許多不足。主要是爲了追求“通用”兩個字,想把所有服務接口做的更“範generic”些,結果反而限制了目標數據庫的特點,最終產生了一套功能弱小的玩具。比如說吧:

原创 restapi(3)- MongoDBEngine : MongoDB Scala編程工具庫

最近剛好有同事在學習MongoDB,我們討論過MongoDB應該置於服務器端然後通過web-service爲客戶端提供數據的上傳下載服務。我們可以用上節討論的respapi框架來實現針對MongoDB的CRUD操作。在談到restapi之

原创 restapi(2)- generic restful CRUD:通用的restful風格數據庫表維護工具

   研究關於restapi的初衷是想搞一套通用的平臺數據表維護http工具。前面談過身份驗證和使用權限、文件的上傳下載,這次來到具體的數據庫表維護。我們在這篇示範裏設計一套通用的對平臺每一個數據表的標準維護方式。http服務端數據表維護

原创 restapi(1)- 文件上傳下載服務

  上次對restapi開了個頭,設計了一個包括了身份驗證和使用權限的restful服務開發框架。這是一個通用框架,開發人員只要直接往裏面加新功能就行了。雖然這次的restapi是圍繞着數據庫表的CRUD操作設計的,但文件類數據在服務端與