.NET Core 架構設計實戰05

前言

大家好,我是程序員阿木!

很高興和大家一起分享.NET Core 系統架構實戰系統課程.

在前面的課程和文章當中,我為大家分享了VMware、Centos、Nginx 以及 .NET Core SDK的安裝和使用, 有朋友用 Linux 的創始人 Linus Torvalds 的一句話評論說 "Talk is cheap, Show me the code", 翻譯過來就是"別BB,上代碼"!哈哈!

OK, 從這節課開始呢,我們就正式開發一個基於.NET Core 的web項目,並將它部署在Linux上面,讓大家對於.NET Core 項目的開發與部署有一個清晰的瞭解。

正文

首先,我們看一下整個項目的演示:

前端演示:

.NET Core 架構設計實戰05 - Web項目部署

登錄頁面

.NET Core 架構設計實戰05 - Web項目部署

各組件操作類封裝

.NET Core 架構設計實戰05 - Web項目部署

股票分析系統開發

服務端代碼結構 (Visual Studio For Mac, Windows上也一樣):

.NET Core 架構設計實戰05 - Web項目部署

後端代碼結構圖

整個項目採取前後端分離開發的模式:

前端採用HTML5+CSS3, 支持移動端, PC端的自適應縮放,可以很方便的做一個功能強大的後臺管理系統,我們會將它部署在Nignx上面, 與後端通過RESTFul api 交互。

後端基於.NET Core 3.0, 提供 Web API 接口,既可以供PC端,也可以供移動端去調用。整個後端的開發學習,我們會分為三部份:

  • 基礎部份的學習:包括 .NET Core 項目創建,頁面的增刪改查,VMWare/Centos 安裝,在Linux下的項目部署,Nginx的安裝與使用,Supervisor 守護進程,FastDFS分佈式文件系統,MySql、MSSqlServer 數據庫的安裝與Dapper操作類,MongoDB,Redis的安裝與操作類,Kafka 分佈式消息隊列, 項目的Docker 容器化部署。此部份我們關注各組件的安裝,部署以及使用,但是站在一個架構師的角度,如果只關注這些基礎的功能實現,則只能算是一個高級開發工程師!
  • 系統的水平擴展:分佈式與集群, Kestrel服務器的集群與Nginx反向代理,Redis集群,MongoDB集群,MySql/MSSQLServer的水平復制與讀寫分離,Redis的高級特性:如發佈訂閱,消息隊列,Keepalived 高可用, 數據備份容災等。
    此階段我們關注系統的可擴展性,可伸縮性,穩定性以及高可用性!
  • 項目開發: 我們會開發一個完整的項目,使用爬蟲+多線程去抓取股票數據,包括歷史交易數據,實時交易數據,股票分析策略,整個股票數據有將近上億的數據量,我們也會使用分庫分表的方式去存儲數據以及利用MongoDB存取實時交易數據,前端和後端的交互方式也由Http 改為Websocket! 此階段我們將技術應用於實戰!

這是個人開發的基於 WPF 版本的股票分析系統:

.NET Core 架構設計實戰05 - Web項目部署

股票實時交易數據與操作策略

.NET Core 架構設計實戰05 - Web項目部署

自選股與交易策略


有人說,這樣的系統有什麼用呢?我覺得一來可以用於研究技術,股票系統的大數據量,數據的實時性,對技術要求還是挺高的!二來如果您同時也是一個股票愛好者,那麼您會發現從均線,換手率,成交量這三個指標去分析趨勢,還是有一定的規律的(這個可一起交流交流),當然沒有百分百的事情,只是概率的高低而已!當然, 股市有風險,投資需謹慎!

結語:

一個完整 IT Web系統的開發其實是基於軟件,硬件,運維三部份相輔相成的,很多人覺得像Nginx,Redis,Mongodb, Docker 等等這些東西的部署都是運維的範疇,但其實不是,站在一個架構師的角度,我們絕對有必要知道系統運行在一個什麼樣的環境,對系統的穩定性,可擴展性,可伸縮性,高可用性, 持續交付了然於胸,這樣才能應對不斷增長的PV與用戶量。

在同名視頻中,我會把這個項目部署在Linux上面,希望大家持續關注, 有問題可以一起交流!給個優質評論送代碼~~ ^-^


分享到:


相關文章: