免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
軟件各種系統(tǒng)架構圖(二)

什么是ENode

ENode是一個.NET平臺下,純C#開發(fā)的,基于DDD,CQRS,ES,EDA,In-Memory架構風格的,可以幫助開發(fā)者開發(fā)高并發(fā)、高吞吐、可伸縮、可擴展的應用程序的一個應用開發(fā)框架。

ENode框架特色

1. 一個DDD開發(fā)框架,完美支持基于六邊形架構思想的開發(fā)

2. 實現(xiàn)CQRS架構思想,并且框架提供C端命令的處理結果的返回,支持同步返回和異步返回

3. 內(nèi)置Event Sourcing(ES)架構模式,讓C端的數(shù)據(jù)持久化變得通用化

4. 聚合根常駐內(nèi)存,in-memory domain model

5. 聚合根的處理基于Command Mailbox, Event Mailbox的思想,類似Actor Model, Actor Mailbox

6. 嚴格遵守聚合內(nèi)強一致性、聚合之間最終一致性的原則

7. Group Commit Domain event

8. 基于聚合根ID+事件版本號的唯一索引,實現(xiàn)聚合根的樂觀并發(fā)控制

9. 框架保證Command的冪等處理

10. 通過聚合根ID對命令或事件進行路由,做到最小的并發(fā)沖突、最大的并行處理

11. 消息發(fā)送和接收基于分布式消息隊列EQueue,支持分布式部署

12. 基于事件驅動架構范式(EDA,Event-Driven Architecture)

13. 基于隊列的動態(tài)擴容/縮容

14. EventDB中因為存放的都是不可變的事件,所以水平擴展非常容易,框架可內(nèi)置支持

15. 支持Process Manager(Saga),以支持一個用戶操作跨多個聚合根的業(yè)務場景,如訂單處理,從而避免分布式事務的使用

16. ENode實現(xiàn)了CQRS架構面臨的大部分技術問題,讓開發(fā)者可以專注于業(yè)務邏輯和業(yè)務流程的開發(fā),而無需關心純技術問題

晚上把公司應用的架構結合之前研究的東西梳理了下,整理了一張架構規(guī)劃圖,貼在這里備份

下面是個人理解的做架構的幾個要點:

1、系統(tǒng)安全

這是首要考慮的,以這張圖為例,網(wǎng)絡劃分為3個區(qū):

a) DMZ區(qū)可以直接公網(wǎng)訪問,也可以 與App Core區(qū)互通,但不能直接與DB Core區(qū)互通 (通常這里放置 反向代理Web服務器)

b) App Core區(qū)能與DMZ區(qū)、DB Core區(qū)互通,但是無法直接從公網(wǎng)訪問 (通常這里放置 應用服務器、中間件服務器之類)

c) DB Core區(qū)僅與App Core區(qū)互通 (通常這里放置 核心數(shù)據(jù)庫)

2、盡量消除單點故障

上圖中,除了“硬件負載均衡”節(jié)點外,其它節(jié)點都可以部署成集群(DB有點特殊,傳統(tǒng)RDBMS要實現(xiàn)分布式/集群還是比較困難的,要看具體采用的數(shù)據(jù)庫產(chǎn)品,并非所有數(shù)據(jù)庫都能方便的做Sharding),Jboss本身可以通過Domain模式+mod_cluster實現(xiàn)集群、Redis通過Master/Slave以Sentinel方式可以實現(xiàn)HA、IBM MQ本身就支持集群、FTP Server配合底層儲存陣列也可以做到HA、Nginx靜態(tài)資源服務器自不必說

3、成本

盡量采用開源成熟產(chǎn)品,jboss、redis、nginx、apache、mysql、rabbit MQ都是很好的選擇。硬件負載均衡通常成本不低,但是效果明顯,如果實在沒錢,域名解析采用DNS輪詢策略,也能達到類似效果,只不過可靠性略差。

4、Database問題

常規(guī)企業(yè)應用中,傳統(tǒng)關系型數(shù)據(jù)仍然是主流,但是no-sql經(jīng)過這幾年發(fā)展,技術也日漸成熟了,一些非關鍵數(shù)據(jù)可以適當采用no-sql數(shù)據(jù)庫,比如:系統(tǒng)日志、報文歷史記錄這類相對比較獨立,而且增長迅速的數(shù)據(jù),可以考慮存儲到no-sql db甚至HDFS、TFS等分布式開源文件系統(tǒng)中。

如果系統(tǒng)數(shù)據(jù)量級達到單機RDBMS的上限,盡早考慮Sharding方案,目前mysql在這方面比較成熟,其它數(shù)據(jù)庫就不好說了。

5、性能

web server、app server這些一般都可以通過集群實現(xiàn)橫向擴張,滿足性能日常增長的需求。最大的障礙還是DB,如果規(guī)模真達到了DB的上限,還是考慮換分布式DB或者遷移到“云”上吧。

本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ENode框架使用場景簡述
《大型網(wǎng)站技術架構》讀書筆記一:大型網(wǎng)站架構演化
大話程序猿眼里的高并發(fā)架構
什么是集群,集群的概念介紹
空穴來風的服務器架構實現(xiàn)高并發(fā)性能測試實戰(zhàn)方案
大神講解微服務治理的技術演進和架構實踐
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服