原创 Akka-CQRS(16)- gRPC用JWT進行權限管理

   前面談過gRPC的SSL/TLS安全機制,發現設置過程比較複雜:比如證書籤名:需要服務端、客戶端兩頭都設置等。想想實際上用JWT會更加便捷,而且更安全和功能強大,因爲除JWT的加密簽名之外還可以把私密的用戶信息放在JWT里加密後在服

原创 restapi(0)- 平臺數據維護,寫在前面

   在雲計算的推動下,軟件系統發展趨於平臺化。雲平臺系統一般都是分佈式的集羣系統,採用大數據技術。在這方面akka提供了比較完整的開發技術支持。我在上一個系列有關CQRS的博客中按照實際應用的要求對akka的一些開發技術進行了介紹。CQ

原创 Akka-CQRS(15)- Http標準安全解決方案:OAuth2+JWT

  上期討論過OAuth2, 是一種身份認證+資源授權使用模式。通過身份認證後發放授權憑證。用戶憑授權憑證調用資源。這個憑證就是一種令牌,基本上是一段沒什麼意義的加密文,或者理解成密鑰也可以。服務方通過這個令牌來獲取用戶身份信息,也就是說

原创 Akka-CQRS(14)- Http標準安全解決方案:OAuth2-資源使用授權

   上一篇討論了SSL/TLS安全連接,主要是一套在通信層面的數據加密解決方案。但我們更需要一套方案來驗證客戶端。要把不能通過驗證的網絡請求過濾掉。OAuth2是一套行業標準的網絡資源使用授權協議,也就是爲用戶提供一種授權憑證,用戶憑授

原创 Akka-CQRS(13)- SSL/TLS for gRPC and HTTPS:自簽名證書產生和使用

  到現在,我們已經完成了POS平臺和前端的網絡集成。不過,還是那句話:平臺系統的網絡安全是至關重要的。前一篇博客裏我們嘗試實現了gRPC ssl/tls網絡連接,但測試時用的證書如何產生始終沒有搞清楚。現在akka-http開發的ws同

原创 Akka-CQRS(12)- akka-http for http-web-service: Routing-服務項目接口

   上篇提到,按當前對web-service功能需要,我們需要完成數據轉換marshalling,服務接口routing這兩部分的調研和示範。上篇已經完成了對序列化marshalling的討論,這篇就介紹一下routing了。akka-

原创 Akka-CQRS(11)- akka-http for http-web-service: Marshalling-數據序列化

  前面幾篇討論了關於gRPC方式的前後端連接集成方式。gRPC也是一個開放的標準,但講到普及性就遠遠不及基於http/1.1協議的web-service了。特別是gRPC的前端編程還是有一定的門檻,所以作爲一種開放的網絡大平臺還是必須考

原创 Akka-CQRS(10)- gRPC on SSL/TLS 安全連接

  使用gRPC作爲雲平臺和移動前端的連接方式,網絡安全應該是必須考慮的一個重點。gRPC是支持ssl/tls安全通訊機制的。用了一個週末來研究具體使用方法,實際上是一個週末的挖坑填坑過程。把這次經歷記錄下來與各位分享。 gRPC的ssl

原创 Akka-CQRS(9)- gRPC,實現前端設備與平臺系統的高效集成

  前面我們完成了一個CQRS模式的數據採集(錄入)平臺。可以預見:數據的產生是在線下各式各樣的終端系統中,包括web、桌面、移動終端。那麼,爲了實現一個完整的系統,必須把前端設備通過某種網絡連接形式與數據採集平臺集成爲一體。有兩種方式可

原创 Akka-CQRS(8)- CQRS Reader Actor 應用實例

 前面我們已經討論了CQRS-Reader-Actor的基本工作原理,現在是時候在之前那個POS例子裏進行實際的應用示範了。 假如我們有個業務系統也是在cassandra上的,那麼reader就需要把從日誌讀出來的事件恢復成cassand

原创 Akka-CQRS(7)- CQRS Reader Actor 示範

   我們在這篇通過一個具體CQRS-Reader-Actor的例子來示範akka-persistence的query端編程和應用。在前面的博客裏我們設計了一個CQRS模式POS機程序的操作動作錄入過程,並示範瞭如何實現CQRS的寫端編程

原创 Akka-CQRS(6)- read-side

前面我們全面介紹了在akka-cluster環境下實現的CQRS寫端write-side。簡單來說就是把發生事件描述作爲對象嚴格按發生時間順序寫入數據庫。這些事件對象一般是按照二進制binary方式如blob存入數據庫的。cassandr

原创 Akka-CQRS(5)- CQRS Writer Actor 部署和測試

上篇我們做了一個WriterActor的例子,主要目的是示範WriterActor如何作爲集羣分片用persistentActor特性及event-sourcing模式實現CQRS的寫功能。既然是集羣分片,那麼我們就在這篇講講Writer

原创 Akka-CQRS(4)- CQRS Writer Actor 示範

 我覺着,CQRS的寫部分最核心、最複雜的部分應該是Writer-Actor了。其它的監管(supervising)、分片部署等都比較規範,沒太多的變動。幾乎Writer-Actor所有的業務邏輯都在Receive函數裏,這個地方應該算是

原创 Akka-CQRS(2)- 安裝部署cassandra cluster,ubuntu-16.04.1-LTS and MacOS mojave

 對於akka-cluster這樣的分佈式軟件系統來說,選擇配套的數據庫類型也是比較講究的,最好也是分佈式的,如cassandra,能保證良好的HA特性。前面的例子裏示範akka-persistence時已經使用了cassandra作爲j