- Orleans:構建高性能分布式Actor服務
- 吳哲昊編著
- 2233字
- 2022-06-17 16:15:42
前言
PREFACE
隨著移動通信技術的發展與普及,全球互聯網產業蓬勃發展,移動互聯網場景下的實時在線服務已經在社交、購物、支付、娛樂、出行、醫療、政務等各個方面深刻改變了人們的日常生活。但與此同時,移動應用服務用戶的爆炸式增長也給應用服務的開發與構建帶來了新的挑戰:開發人員一方面需要保證應用服務在高并發場景下具有良好的伸縮性及可靠性,另一方面還需要根據實際業務場景及功能設計變更,對應用服務進行快速迭代和更新。為了滿足上述需求,應用服務的軟件架構及業務模型都需要具備良好的擴展性與通用性。
Actor模型作為針對高并發服務設計的編程模型,可以將復雜業務場景抽象并簡化為多個簡單獨立實體對象間的相互作用,它提供了對高吞吐量實時服務場景下的系統性能優化策略,開發人員可以直接根據業務邏輯的聚合、從屬等關系快速搭建應用服務。Orleans應用服務框架于2015年1月開源,并于2021年4月發布了3.4.2版本,Orleans開發者社區已經吸引了眾多軟件開發人員的關注,其所提出的虛擬Actor模型使開發人員能夠更加專注于應用服務邏輯的設計而無須過多關注分布式系統內諸如數據一致性、系統可靠性、業務吞吐量等通用組件的性能優化問題,非常適用于快速搭建高性能應用服務,已成功應用于多個大型互聯網服務系統中。
Orleans基于.NET Core運行時開發,具備原生的跨平臺部署能力,開發人員僅需完成簡單的.NET Core運行時配置即可開發并運行Orleans分布式應用服務。Orleans開發者社區還為開發人員提供了豐富多樣的擴展程序組件,使Orleans應用服務能夠與AWS、Azure、Google Cloud等公用云服務無縫集成,從而構建適用于任意規模的面向各類互聯網場景的云服務應用。
基于Orleans靈活便捷的開發能力,本書通過對Orleans運行時的內部組件原理及實際應用服務搭建過程的介紹,幫助讀者迅速熟悉高并發場景下互聯網應用服務的設計與開發過程。
本書特色
1. 基于實際互聯網場景的應用構建實例
本書提供了多個以實際互聯網應用場景為背景的實例,帶領讀者完成需求分析、模型設計、架構優化、代碼編寫和系統部署等完整的應用服務搭建流程,從而讓讀者熟悉并領略Orleans應用服務框架的便捷性。這些應用構建實例也可成為讀者在實際構建與設計應用系統時的參考。
2. 深入淺出的技術體系介紹
本書的章節安排盡量做到了由淺至深。在對Actor模型與及Grain對象進行講解時,使用實際應用場景作為類比,讓讀者能夠迅速理解其設計思路與特性;在對Orleans運行時組件進行介紹時,詳細剖析了各類組件對象的作用與設計思路,使讀者能夠迅速了解Orleans運行時各類功能的實現原理,并結合實際場景更好地利用Orleans的各項功能。
3. 結合前沿技術,貼近實戰
本書通過多個實例對Orleans應用服務的搭建過程做了詳盡的介紹,并結合Azure云服務組件構建了可直接應用實際場景的互聯網服務。讀者既可以了解Azure公用云服務內各類常用組件的特性,也可以在實際開發過程中利用Orleans框架優秀的擴展性快速與各類系統組件進行集成開發,按需搭建并優化應用服務。
本書內容
本書共9章,主要內容如下。
第1章主要介紹了Actor編程模型的特點與設計思路、.NET平臺與Orleans應用框架的開發及應用背景、虛擬Actor模型的概念及行業內相關技術發展的趨勢;第2章主要介紹了Orleans框架內部的最小處理單元Grain,包括Grain的服務模型、尋址方式、生命周期和內部狀態存儲等概念,并介紹了Orleans框架對Grain對象的管理策略及狀態存儲API,同時結合自動售貨機庫存管理示例,展示了如何利用Grain狀態按需維護并存儲業務數據;第3章主要介紹了Orleans運行時組件的基本架構模型、任務調度模型及單線程執行語義的實現方式,以及Orleans運行時內部組件(Grain對象及Silo服務節點)的生命周期管理的實現方式;第4章主要介紹了Orleans運行時內數據傳輸過程,包括消息對象格式、運行時序列化管理器、連接對象與網關服務和消息中心與調度策略,以及Orleans運行時內部的遠程過程調用流程;第5章主要介紹了Orleans的流式處理功能的相關內容,包括虛擬數據流的實現、數據的訂閱與發布及相關流式處理API的特性及應用場景,并通過系統狀態的遙測與監控示例展示了Orleans流式處理的特點;第6章主要介紹了Orleans框架的多種高級功能,包括異步任務處理、Grain請求攔截器、多種特殊類型的Grain對象、事件溯源模型、分布式事務及多集群Orleans應用服務等;第7章主要介紹了Orleans集群的構建過程及相關組件,包括Membership協議、集群內負責均衡和多版本服務接口管理,并對分布式應用服務升級策略及Orleans性能監控方式進行了介紹;第8章通過4個實際案例詳細介紹了基于Orleans框架搭建互聯網應用服務的最佳實踐和構建流程。例如,通過工單處理系統及企業會議管理系統實例介紹了如何使用聯合托管(Co-hosting)技術搭建基于ASP.NET Core Web API的Orleans Web應用服務,通過網頁流量計數及活躍度獎勵系統展示了如何利用Orleans流式處理功能快速構建實時數據處理應用等;第9章主要介紹了通過云平臺構建Orleans應用服務的方法,以及構建容器化分布式Orleans應用服務的步驟,介紹了與Orleans框架類似的Azure Service Fabric Reliable Actors應用程序框架的編程模型,并通過共享單車管理平臺示例展示了利用Orleans框架的擴展能力,以及基于各類Azure云服務組件快速搭建大型互聯網應用服務平臺的完整設計、部署、維護和持續集成過程。
關于作者
本書由吳哲昊編寫,蘇寶君、顧雨婷、周新宇、彭亦然、李持航和葉心靜等人參與了文稿的審核和校對,在此感謝家人、同學和同事們在本書編寫期間所給予的大力支持。
另外,在本書編寫期間,還得到了張淑謙編輯的悉心指導,他對書稿的審核和建議,使得本書能夠以更加清晰易懂的語言及章節編排出版,在此表示深深的感謝!
雖然我們對書中所述內容都盡量核實,并多次進行了文字校對,但因水平所限,本書出現疏漏在所難免,敬請各位同行專家及讀者指正批評,作者的郵箱:zhehao.wu@fox-mail.com。
作者
- DevOps:軟件架構師行動指南
- 高手是如何做產品設計的(全2冊)
- INSTANT MinGW Starter
- 64位匯編語言的編程藝術
- 單片機應用技術
- Java網絡編程核心技術詳解(視頻微課版)
- 深度學習原理與PyTorch實戰(第2版)
- JavaScript從入門到精通(視頻實戰版)
- 跟戴銘學iOS編程:理順核心知識點
- 大學計算機應用基礎(Windows 7+Office 2010)(IC3)
- Implementing Microsoft Dynamics NAV(Third Edition)
- 深入理解Java虛擬機:JVM高級特性與最佳實踐
- React and React Native
- Web開發新體驗
- C/C++程序設計教程