1. 程式人生 > >微服務系列實踐 .NET CORE

微服務系列實踐 .NET CORE

png 支持 class 整體 github 需求 過程 poll 國內

從事這個行業轉眼已經6年了,從當初剛畢業的在北京朝八晚十,從二環到五環,仍每天精力充沛的小憤青;再到深圳一點一滴的辛勤在軟件行業的耕種,從當初單體應用架構到現在微服務架構的經歷,回想起來自己的收獲倒是不少。人生也許算是比較平淡,運氣到也還算不錯,做過的項目剛好讓我在這些方面能有不錯的認知和自我學習的空間。

本來這個系列能帶來的更早,奈何去年打王者荒廢了太多的時間(有點收獲的可能就是連續三賽季王者了),好在自己還算醒悟及時,最近看到微服務的所使用的框架或者工具倒也是非常多,但大多都需要自己研究的內容太多,而且由於少有的docker化,很難再實際生產環境靈活的應用,這次帶來全docker化的實戰體驗。

技術分享圖片

實踐部署架構圖

實踐源碼:https://github.com/zengqinglei/microservice-deploy

為了更加接近生產環境的部署方式,我們使用vmware創建如下幾臺主機:

  1. centos-02:192.168.0.102 應用集群節點-2
  2. centos-03:192.168.0.103 應用集群節點-3
  3. ubuntu-04:192.168.0.104 應用集群節點-4
  4. ubuntu-05:192.168.0.105 數據庫節點-5

虛擬IP:192.168.0.110

技術分享圖片

技術分享圖片

系列導航目錄

由於文章中涉及內容較多,所以其中如設計docker構建、配置等復雜教程都會引導大家去github查看詳情,大家註意一下引導鏈接地址,文章中盡可能通過簡要的原理及對於微服務架構的作用配合圖講解,讓文章更加通俗易懂。

1. 微服務系列介紹

2. 搭建服務器(cenos + ubuntu)環境

3. 搭建docker,docker-compose環境

4. 負載集群及高可用(keepalived + nginx)

5. 搭建consul集群服務發現、註冊、健康檢查環境

6. 搭建mysql,sqlserver數據庫環境

7. 搭建攜程Apollo集群統一配置中心

8. 基於Skywalking的服務跟蹤及性能監控

9. 搭建統一服務日誌中心

10. .NET CORE 微服務示例

11. 集群完整版

推薦一下我的 Asp.Net Core 框架

名稱:Creekdream.AspNetCore
開源地址:http://github.com/zengqinglei/Creekdream.AspNetCore

簡單介紹

我自己的框架參考了一些Abp框架,根據近一兩年針對微服務開發設計,總結開發出來的。
首先,說明一下Abp框架確實很優秀,但隨著微服務的發展,框架整體相對較為臃腫,模塊化設計不夠徹底,核心類庫都依賴了各種接口的實現,我們團隊在使用的過程中可能由於不熟悉會導致一些莫名的問題,再加上微服務盛行,使得更多的模塊變得沒有必要。

微軟的 .NET CORE 已經做到很優秀,提供Service註入統一入口,中間件、日誌、依賴註入的加入等,使得模塊化以及開發模式的規約都使得開發變得更加規範可控,框架的設計原則盡可能遵從 .NET CORE 的設計理念。

簡要特點

  • 分離模塊化,獨立模塊都有自己的核心庫
  • 依賴註入,抽象使其能替換依賴註入框架
  • DDD領域分層
  • 提供快捷生成項目模板
  • 提供EntityframeworkCore以及Dapper兩種ORM
  • 工作單元支持
  • 核心模塊僅依賴必要的接口

框架架構圖

技術分享圖片

總結

本次微服務系列從基本概念到一步步的基礎設施的搭建最後晚上的一套服務架構體系,用完全docker化的方式給大家呈現,方便根據實際的生產或者測試環境進行調整。
微服務之路是漫長的,我們仍還需要很多工作要做,在工作中,根據業務需求劃分邊界,微服務API的定義,服務內部的模塊劃分都需要我們花更多的時間去推敲。

最後呢,這兩年 .NET 在國內實在有些低迷,從接觸 .NET CORE 到現在真心感覺到它的優秀,也希望我們能共同在 .NET 方面能貢獻出更多的力量,能幫助它發展的越來越好!

微服務系列實踐 .NET CORE