整體html
微服務拆分安全
Mike從他的角度概括這篇論文中的其餘一些核心觀點,以下:架構
第必定律:Communication dictates design(組織溝通方式會經過系統設計表達出來)異步
第二定律:There is never enough time to do something right, but there is always enough time to do it over(時間再多一件事情也不可能作的完美,但總有時間作完一件事情)分佈式
第三定律:There is a homomorphism from the linear graph of a system to the linear graph of its design organization(線型系統和線型組織架構間有潛在的異質同態特性) 微服務
第四定律: The structures of large systems tend to disintegrate during development, qualitatively more so than with small systems(大的系統組織老是比小系統更傾向於分解spa
參考 https://www.cnblogs.com/gudi/p/6685474.html線程
微服務挑戰設計
1. 數據一致性(分佈式事務)3d
11, 可靠性事件模式(消息隊列)
12. 補償模式 - sagas 模式
服務網關
和終端用戶進行通訊, 好比 身份認證,處理權限,安全防護, 流量控制等。
避免微服務 直接與 終端用戶進行 鏈接 。
服務網關儘可能不要 夾雜 業務邏輯
艙壁 隔離: 好比 調用的每一個 微服務 來 一個線程池,這樣 出故障以後就 減小了 故障的傳播
服務降級: 微服務調用之間 出錯:返回給最終用戶空頁面或者空數據
實踐
SOA vs 微服務
拆分原則和方法
開始微服務,服務粒度能夠粗一點
環型依賴,容易死循環, 雙向依賴就是高耦合了
微服務的數據一致性
2pc 即 兩階段提交
並無回滾,只是有了 冪等 。
使用MQ 異步發消息,提升吞吐量
須要按照順序 進行, 操做比較複雜。
以上來自慕課網