1. 程式人生 > >Newbe.Claptrap 框架入門,第一步 —— 開發環境準備

Newbe.Claptrap 框架入門,第一步 —— 開發環境準備

Newbe.Claptrap 框架依託於一些關鍵性的基礎元件和一些可選的輔助元件。本篇我們來介紹一下如何準備一個開發環境。

Newbe.Claptrap 是一個用於輕鬆應對併發問題的分散式開發框架。如果您是首次閱讀本系列文章。建議可以先從本文末尾的入門文章開始瞭解。

必要元件

這些元件是使用本框架進行開發是必須要安裝的元件。

Docker Desktop

Docker Desktop 是以下所有元件執行的基礎。開發可以通過以下連結下載對應作業系統的版本並進行安裝:

https://www.docker.com/products/docker-desktop

安裝完畢後,可以在控制檯中使用以下命令驗證安裝效果:

PS C:\Repos\newbe\Newbe.Claptrap.Docs\src> docker --version
Docker version 20.10.2, build 2291f61

中國大陸使用者,需要為 Docker Desktop 配置好加速映象。這將有助於後續環境的安裝。

dotnet SDK

本框架依賴於 net 5 SDK 和 runtime。開發者可以通過以下連結下載最新的 SDK 並按照提示進行安裝:

https://dotnet.microsoft.com/download/dotnet/5.0

安裝完畢後,可以在控制檯中使用以下命令驗證安裝效果:

PS C:\Repos\newbe\Newbe.Claptrap.Docs\src> dotnet --version
5.0.103

Tye

Tye 是有微軟開發提供的一款簡化分散式應用開發的輔助命令列工具。

開發者可以在以下連結中找到最新的安裝命令列指令碼:

https://www.nuget.org/packages/Microsoft.Tye

安裝完畢後,可以在控制檯中使用以下命令驗證安裝效果:

PS C:\Repos\newbe\Newbe.Claptrap.Docs\src> tye --version
0.6.0-alpha.21070.5+a42e4463943e3136dbd1de38474d8d62b802797c

Dapr

Dapr 是 Newbe.Claptrap 執行的基石。可以通過以下官方文件瞭解開發環境的安裝方式:

https://docs.dapr.io/getting-started/

中文使用者也可以通過以下連結檢視中文介紹:

https://dapr-cn.gitee.io/getting-started/

安裝完畢後,可以在控制檯中使用以下命令驗證安裝效果:

PS C:\Repos\newbe\Newbe.Claptrap.Docs\src> dapr --version
CLI version: 1.0.0
Runtime version: 1.0.0

資料庫

Newbe.Claptrap 目前支援 SQLite/Mysql/PostgreSQL/Mongodb 多種資料庫。

開發者可以選擇已經部署好的應用例項,也可以通過以下連結獲取本專案開發時使用的 docker-compose.yml 檔案以部署資料庫:

https://github.com/newbe36524/Newbe.Claptrap/tree/master/src/Docker/Database

可選元件

這些元件是使用本框架進行開發時可選的元件。只有當需要使用到特定特性時才需要使用到。不過,我們仍然建議開發者安裝這些元件。這樣有助於開發者更有效的瞭解系統的執行情況。

Grafana

Grafana 可以將系統的監控資料以圖表的形式展示出來,是一個非常優秀的開源方案。

開發者可以使用以下連結中提供的 docker-compose.yml 來建立一個用於本專案的 Grafana 例項:

https://github.com/newbe36524/Newbe.Claptrap/tree/master/src/Docker/Monitor

Jaeger

Jaeger 是一款分散式鏈路監控工具,可以幫助開發者進一步瞭解服務間的關係和效能細節。

開發者可以通過以下連結提供的 docker-compose.yml 來構建一個用於本專案的 Jaeger 例項:

https://github.com/newbe36524/Newbe.Claptrap/tree/master/src/Newbe.Claptrap.Template/HelloClaptrap

也可以從本專案的專案模板中找到這個 docker-compose.yml 檔案。關於專案模板的詳細介紹,將在下節進行說明。

Seq

Seq 是一款高效的分散式日誌管理工具,可以幫助開發者對多個應用程式的日誌進行收集和視覺化。

開發者可以通過以下連結提供的 docker-compose.yml 來構建一個用於本專案的 Seq 例項:

https://github.com/newbe36524/Newbe.Claptrap/tree/master/src/Newbe.Claptrap.Template/HelloClaptrap

也可以從本專案的專案模板中找到這個 docker-compose.yml 檔案。關於專案模板的詳細介紹,將在下節進行說明。

小結

本篇,我們初步瞭解瞭如何為 Newbe.Claptrap 專案初始化一個基礎可用的開發環境。

下一篇,我們將使用該環境以及專案模板,建立第一個 Newbe.Claptrap 專案。

最後但是最重要!

如果讀者對該內容感興趣,歡迎轉發、評論、收藏文章以及專案。

最近作者正在構建以 Actor 模式 和 事件溯源 為理論基礎的一套服務端開發框架。希望為開發者提供能夠便於開發出 “分散式”、“可水平擴充套件”、“可測試性高” 的應用系統 ——Newbe.Claptrap

本篇文章是該框架的一篇技術選文,屬於技術構成的一部分。

專案文件庫:claptrap.newbe.pro

聯絡方式: QQ 群 610394020

您還可以查閱本系列的其他選文:

理論入門篇

  1. Newbe.Claptrap - 一套以 “事件溯源” 和 “Actor 模式” 作為基本理論的服務端開發框架

術語介紹篇

  1. Actor 模式
  2. 事件溯源(Event Sourcing)
  3. Claptrap
  4. Minion
  5. 事件 (Event)
  6. 狀態 (State)
  7. 狀態快照 (State Snapshot)
  8. Claptrap 設計圖 (Claptrap Design)
  9. Claptrap 工廠 (Claptrap Factory)
  10. Claptrap Identity
  11. Claptrap Box
  12. Claptrap 生命週期(Claptrap Lifetime Scope)
  13. 序列化(Serialization)
  14. 最小競爭資源 (Minimal Competing Resources)

樣例實踐篇

  1. 設計一個火車票銷售系統

開發入門篇

  1. Newbe.Claptrap 框架入門,第一步 —— 開發環境準備
  2. Newbe.Claptrap 框架入門,第二步 —— 建立專案

開發工具篇

  1. 使用 Tye 輔助開發 k8s 應用竟如此簡單(一)
  2. 使用 Tye 輔助開發 k8s 應用竟如此簡單(二)
  3. 使用 Tye 輔助開發 k8s 應用竟如此簡單(三)
  4. 使用 Tye 輔助開發 k8s 應用竟如此簡單(四)
  5. 使用 Tye 輔助開發 k8s 應用竟如此簡單(五)
  6. 使用 Tye 輔助開發 k8s 應用竟如此簡單(六)

其他番外篇

  1. 談反應式程式設計在服務端中的應用,資料庫操作優化,從 20 秒到 0.5 秒
  2. 談反應式程式設計在服務端中的應用,資料庫操作優化,提速 Upsert
  3. 十萬同時線上使用者,需要多少記憶體?——Newbe.Claptrap 框架水平擴充套件實驗
  4. docker-mcr 助您全速下載 dotnet 映象
  5. 十多位全球技術專家,為你獻上近十個小時的.Net 微服務介紹
  6. 年輕的樵夫喲,你掉的是這個免費 8 核 4G 公網伺服器,還是這個隨時可用的 Docker 實驗平臺?
  7. 如何使用 dotTrace 來診斷 netcore 應用的效能問題
  8. 只要十步,你就可以應用表示式樹來優化動態呼叫

GitHub 專案地址:https://github.com/newbe36524/Newbe.Claptrap

Gitee 專案地址:https://gitee.com/yks/Newbe.Claptrap

您當前檢視的是先行釋出於 www.newbe.pro 上的部落格文章,實際開發文件隨版本而迭代。若要檢視最新的開發文件,需要移步 claptrap.newbe.pro。

------ 本文結束 ------
  • 本文作者: newbe36524
  • 本文連結: https://www.newbe.pro/Newbe.Claptrap/Get-Started-1/
  • 版權宣告: 本部落格所有文章除特別宣告外,均採用 BY-NC-SA 許可協議。轉載請註明出處!