微服務系列實踐 .NET CORE

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

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

image

實踐部署架構圖

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

爲了更加接近生產環境的部署方式,咱們使用vmware建立以下幾臺主機:github

  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.110sql

main-1

mic-service-arc

系列導航目錄

因爲文章中涉及內容較多,因此其中如設計docker構建、配置等複雜教程都會引導你們去github查看詳情,你們注意一下引導連接地址,文章中儘量經過簡要的原理及對於微服務架構的做用配合圖講解,讓文章更加通俗易懂。docker

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框架確實很優秀,但隨着微服務的發展,框架總體相對較爲臃腫,模塊化設計不夠完全,核心類庫都依賴了各類接口的實現,咱們團隊在使用的過程當中可能因爲不熟悉會致使一些莫名的問題,再加上微服務盛行,使得更多的模塊變得沒有必要。ubuntu

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

簡要特色

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

框架架構圖

app-arc

總結

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

最後呢,這兩年 .NET 在國內實在有些低迷,從接觸 .NET CORE 到如今真心感受到它的優秀,也但願咱們能共同在 .NET 方面能貢獻出更多的力量,能幫助它發展的愈來愈好!

相關文章
相關標籤/搜索