原创 .NET Core使用FluentEmail發送郵件

前言     在實際的項目開發中,我們會遇到許多需要通過程序發送郵件的場景,比如異常報警、消息、進度通知等等。一般情況下我們使用原生的SmtpClient類庫居多,它能滿足我們絕大多數場景。但是使用起來不夠簡潔,許多場景需要我們自行封裝方法

原创 ASP.NET Core整合Zipkin鏈路跟蹤

前言     在日常使用ASP.NET Core的開發或學習中,如果有需要使用鏈路跟蹤系統,大多數情況下會優先選擇SkyAPM。我們之前也說過SkyAPM設計確實比較優秀,巧妙的利用DiagnosticSource診斷跟蹤日誌,可以做到對項

原创 深入探究.Net Core Configuration讀取配置的優先級

前言     在之前的文章.Net Core Configuration源碼探究一文中我們曾解讀過Configuration的工作原理,也在.Net Core Configuration Etcd數據源一文中探討過爲Configuratio

原创 .Net Core中的診斷日誌DiagnosticSource講解

前言     近期由於需要進行分佈式鏈路跟蹤系統的技術選型,所以一直在研究鏈路跟蹤相關的框架。作爲能在.Net Core中使用的APM,SkyWalking自然成爲了首選。SkyAPM-dotnet是SkyWalking在.Net Core

原创 關於Dapper實現讀寫分離的個人思考

概念相關     爲了確保多線上環境數據庫的穩定性和可用性,大部分情況下都使用了雙機熱備的技術。一般是一個主庫+一個從庫或者多個從庫的結構,從庫的數據來自於主庫的同步。在此基礎上我們可以通過數據庫反向代理工具或者使用程序的方式實現讀寫分離,

原创 .Net Core HttpClient處理響應壓縮

前言     在上篇文章[ASP.NET Core中的響應壓縮]中我們談到了在ASP.NET Core服務端處理關於響應壓縮的請求,服務端的主要工作就是根據Content-Encoding頭信息判斷採用哪種方式壓縮並返回。之前在羣裏有人問道

原创 ASP.NET Core中的響應壓縮

介紹     響應壓縮技術是目前Web開發領域中比較常用的技術,在帶寬資源受限的情況下,使用壓縮技術是提升帶寬負載的首選方案。我們熟悉的Web服務器,比如IIS、Tomcat、Nginx、Apache等都可以使用壓縮技術,常用的壓縮類型包括

原创 手動造輪子——爲Ocelot集成Nacos註冊中心

前言     近期在看博客的時候或者在羣裏看聊天的時候,發現很多都提到了Ocelot網關的問題。我之前也研究過一點,網關本身是一種通用的解決方案,主要的工作就是攔截請求統一處理,比如認證、授權、熔斷、限流、註冊發現、負載均衡等等。隨着服務化

原创 ASP.NET Core靜態文件處理源碼探究

前言     靜態文件(如 HTML、CSS、圖像和 JavaScript)等是Web程序的重要組成部分。傳統的ASP.NET項目一般都是部署在IIS上,IIS是一個功能非常強大的服務器平臺,可以直接處理接收到的靜態文件處理而不需要經過應用

原创 淺談.Net Core DependencyInjection源碼探究

前言     相信使用過Asp.Net Core開發框架的人對自帶的DI框架已經相當熟悉了,很多剛開始接觸.Net Core的時候覺得不適應,主要就是因爲Core默認集成它的原因。它是Asp.Net Core基礎核心框架之一,對於Asp.N

原创 搭建一套ASP.NET Core+Nacos+Spring Cloud Gateway項目

前言     伴隨着隨着微服務概念的不斷盛行,與之對應的各種解決方案也層出不窮。這畢竟是一個信息大爆發的時代,各種編程語言大行其道,各有各的優勢。但是有一點未曾改變,那就是他們服務的方式,工作的時候各司其職,但是需要提供服務的時候必須要高度

原创 深入探究ASP.NET Core異常處理中間件

前言     全局異常處理是我們編程過程中不可或缺的重要環節。有了全局異常處理機制給我們帶來了很多便捷,首先我們不用滿屏幕處理程序可能出現的異常,其次我們可以對異常進行統一的處理,比如收集異常信息或者返回統一的格式等等。ASP.NET Co

原创 .Net Core Configuration源碼探究

前言     上篇文章我們演示了爲Configuration添加Etcd數據源,並且瞭解到爲Configuration擴展自定義數據源還是非常簡單的,核心就是把數據源的數據按照一定的規則讀取到指定的字典裏,這些都得益於微軟設計的合理性和便捷

原创 .Net Core Configuration Etcd數據源

前言     .Net Core爲我們提供了一套強大的Configuration配置系統,使用簡單擴展性強。通過這套配置系統我們可以將Json、Xml、Ini等數據源加載到程序中,也可以自己擴展其他形式的存儲源。今天我們要做的就是通過自定義

原创 手動造輪子——基於.NetCore的RPC框架DotNetCoreRpc

前言     一直以來對內部服務間使用RPC的方式調用都比較贊同,因爲內部間沒有這麼多限制,最簡單明瞭的方式就是最合適的方式。個人比較喜歡類似Dubbo的那種使用方式,把接口層單獨出來,作爲服務的契約,服務端以這套契約提供服務,客戶端使用這