原创 .NET GC 實時監控 dotnet-gcmon 介紹

今天介紹一個新的診斷工具 dotnet-gcmon, 也是全局 .NET CLI 工具, 它可以監控到 .NET 程序的 GC, 能獲取到的信息也很詳細, 另外 maoni 大佬也是其中的開發者之一。 安裝 gcmon 和其他的 dotn

原创 OAuth 2.0 擴展協議之 PKCE

前言 閱讀本文前需要了解 OAuth 2.0 授權協議的相關內容, 可以參考我的上一篇文章 OAuth 2.0 的探險之旅。 PKCE 全稱是 Proof Key for Code Exchange, 在2015年發佈, 它是 OAuth

原创 OAuth 2.0 的探險之旅

前言 OAuth 2.0 全稱是 Open Authorization 2.0, 是用於授權(authorization)的行業標準協議。 OAuth 2.0 專注於客戶端開發人員的簡單性,同時爲 Web 應用程序、桌面應用程序、移動設備

原创 .NET 排序 Array.Sort<T> 實現分析

System.Array.Sort<T> 是.NET內置的排序方法, 靈活且高效, 大家都學過一些排序算法,比如冒泡排序,插入排序,堆排序等,不過你知道這個方法背後使用了什麼排序算法嗎? 先說結果, 實際上 Array.Sort 不止使用

原创 微服務架構的進化之路

第一代 在第一代微服務架構中,應用除了需要實現業務邏輯之外,還需要自行解決上下游尋址、通信及容錯等問題。隨着微服務規模的逐漸擴大,服務尋址邏輯的處理正變得越來越複雜,哪怕是同一種編程語言的另一個應用,上述微服務的基礎能力也需要重新實現一

原创 .NET 6 全新指標 System.Diagnostics.Metrics 介紹

前言 工友們, .NET 6 Preview 7 已經在8月10號發佈了, 除了衆多的功能更新和性能改進之外, 在 preview 7 版本中, 也新增了全新的指標API, System.Diagnostics.Metrics, 爲了讓應

原创 一文讀懂哈希和一致性哈希算法

哈希 Hash 算法介紹 哈希算法也叫散列算法, 不過英文單詞都是 Hash, 簡單一句話概括, 就是可以把任意長度的輸入信息通過算法變換成固定長度的輸出信息, 輸出信息也就是哈希值, 通常哈希值的格式是16進制或者是10進制, 比如下面

原创 在 Golang 中實現一個簡單的Http Middleware

本文主要針對Golang的內置庫 net/http 做了簡單的擴展,通過添加中間件的形式實現了管道(Pipeline)模式,這樣的好處是各模塊之間是低耦合的,符合單一職責原則,可以很靈活的通過中間件的形式添加一些功能到管道中,一次請求和響應

原创 在 .NET 中創建對象的幾種方式的對比

在 .net 中,創建一個對象最簡單的方法是直接使用 new (), 在實際的項目中,我們可能還會用到反射的方法來創建對象,如果你看過 Microsoft.Extensions.DependencyInjection 的源碼,你會發現,爲

原创 一文讀懂 .NET 中的高性能隊列 Channel

介紹 System.Threading.Channels 是.NET Core 3.0 後推出的新的集合類型, 具有異步API,高性能,線程安全等特點,它可以用來做消息隊列,進行數據的生產和消費, 公開的 Writer 和 Reader

原创 .NET Core 基於 Grafana Loki 日誌初體驗

介紹 Loki: like Prometheus, but for logs. Loki是一個輕量級的日誌系統,受到Prometheus項目的啓發,由Grafana團隊設計和開發,所以在Grafana中是原生支持的,具有可水平擴展,高度可

原创 基於 registry 搭建 Docker 私有鏡像倉庫

今天主要介紹使用 registry 來搭建 Docker私有鏡像倉庫,方便在公司內部項目中使用,registry 也是 Docker 官方提供的一個鏡像,操作也很簡單。 dockerhub: https://registry.hub.do

原创 動手實現一個適用於.NET Core 的診斷工具

前言 大家可能對診斷工具並不陌生,從大名鼎鼎的 dotTrace,到 .NET CLI 推出的一系列的高效診斷組件(dotnet trace,dotnet sos,dotnet dump)等, 這些工具提升了對程序Debug的能力和效率,

原创 .NET 開源配置組件 AgileConfig 初體驗

介紹 在微服務大行其道的今天,系統會被拆分成多個模塊,作爲單獨的服務運行,同時爲了集中化管理,我們還需要日誌中心,配置中心等,很多開發人員可能更熟悉 ApolloConfig,這個組件功能也很完善,dotnet的客戶端也主要是國人在維護和

原创 在 .NET Core 中使用 ViewConfig 調試配置

介紹 .NET Core 中的配置包含了多個配置提供程序,包括了 appsettings.json,環境變量,命令行參數等,還有一些擴展的自定義提供程序,比如說 ApolloConfig,AgileConfig 這些,然後從鍵值對中讀取配