原创 dotnet-dump工具使用

介紹 dotnet-dump 是 .NET Core 官方工具之一,用於生成和分析 .NET Core 進程的轉儲文件(dump file)。它可以幫助開發人員在應用程序發生故障或性能問題時進行故障排查和診斷。 Linux 系統上的軟件包的

原创 PostgreSQL 性能檢測

數據庫統計信息概覽 pg_stat_user_tables relid:表的標識符。 schemaname:表所屬的模式名稱。 relname:表的名稱。 seq_scan:順序掃描表的次數。 seq_tup_read:從表中讀取的行

原创 PostgreSQL 序列(Sequence)

基本操作 --新增序列 CREATE SEQUENCE xxx_id_seq INCREMENT 1 -- 一次加多少 MINVALUE 1 -- 最小值 START 1 --從多少開始 CACHE 1 CYCLE; --指定表使用 al

原创 TCP 粘包

TCP(Transmission Control Protocol,傳輸控制協議)是一種傳輸層協議。 TCP提供了以下主要功能: 可靠性:TCP使用確認、重傳和校驗等機制來確保數據的可靠傳輸。它能夠檢測丟失、重複、損壞或亂序的數據,並採取

原创 .Net AsyncLocal介紹

AsyncLocal的基本概念 AsyncLocal是一個在異步環境中存儲和傳遞狀態的類型。它允許你在線程或任務之間共享數據,而不會受到異步上下文切換的影響。 每一個異步的AsyncLocal的數據都是獨立的 AsyncLocal主要是用

原创 TCP/IP 五層模型

TCP/IP五層模型 物理層(Physical Layer):物理層是最底層,負責傳輸比特流(bitstream)以及物理介質的傳輸方式。它定義瞭如何在物理媒介上傳輸原始的比特流,例如通過電纜、光纖或無線傳輸等。 數據鏈路層(Dat

原创 Socket 入坑

什麼是Socket Socket(套接字)是在計算機網絡中實現通信的一種機制。它提供了一種應用程序編程接口(API),允許應用程序通過網絡進行數據傳輸和通信。 在網絡通信中,Socket 可以被看作是提供網絡連接的一種抽象。它可以用於在不同

原创 SSL證書-通配符證書

單域名證書 單域名證書是最常見和基本的 SSL 證書類型,用於爲單個主域名提供安全加密連接。它只適用於特定的主域名,不能用於子域名或其他域名。例如,對於主域名 example.com,一個單域名證書可以用於加密和保護該網站的通信。 通配符證

原创 SignalR 進階

SignalR 客戶端使用 WebSocket 的條件 客戶端瀏覽器需要支持 WebSocket:WebSocket 是一種 HTML5 的新技術,因此要使用 WebSocket,客戶端瀏覽器必須支持 WebSocket 協議。大多數現代瀏

原创 SignalR 入門

SignalR 介紹 SignalR 是一個開源的實時通信庫,用於構建實時、雙向的應用程序。它提供了簡化實時通信的功能,允許服務器主動向客戶端推送數據,實現實時更新和即時通知的功能。SignalR 具有高度集成性、跨平臺支持和可擴展性,適用

原创 asp.net core如何獲取客戶端IP地址

客戶端直接訪問服務器 直接通過HttpContext.Connection.RemoteIpAddress獲取客戶端Ip [HttpGet] [Route("GetClientIP")] public async Task<IAction

原创 基準測試BenchmarkDotNet

今天飛書羣裏同事爭論 枚舉.GetHashCode()會裝箱,要改爲(int)枚舉,爭吵不下 紙上談兵無法說服另外的人,上BenchmarkDotNet基準測試 添加BenchmarkDotNet庫 <PackageReference

原创 Kibana Discover查詢語言KQL介紹

使用 ELK查詢日誌已有一段時間,直到今天我才發現 Kibana Discover 實際上是默認通過 Kibana Query Language(KQL)查詢語法來進行數據查詢的。 常用查詢語法 全文搜索 查找包含101021,或者包含1

原创 PostMan如何聯調SignalR WebSockets

我們在調試SignalR的時候,往往要寫多一個客戶端對接聯調。其實,在過去的幾個版本中,Postman 已經能夠使用 WebSocket 連接連接到 SignalR 中心併發送和接收消息。 設置請求 先觀察瀏覽器是如何發送請求 在Po

原创 再次認識using

今天看了同事代碼,發現using新的語法糖。頓時來了興趣,趕緊找文檔看看,看看更新了那些東西 基礎用法確保正確使用可釋放對象 class Program { static async Task Main()