原创 【rabbitMQ】-延遲隊列-模擬控制智能家居的操作指令

這個需求爲控制智能家居工作,把控制智能家居的操作指令發到隊列中,比如:掃地機、洗衣機到指定時間工作   一.什麼是延遲隊列? 延遲隊列存儲的對象是對應的延遲消息,所謂“延遲消息” 是指當消息被髮送以後,並不想讓消費者立刻拿到消息,而是等待特

原创 【.Net7-性能優化篇】.Net7+WebApi+EFCore+SqlServer讀寫分離封裝

這篇博客描述的是運行環境是.Net 7下使用WebApi,ORM框架使用EF Core的DbFirst模式,再配合上SqlServer的1主,2從3個數據庫,完成的讀寫分離封裝。 一.先準備3個數據庫,1主,2從我先準備了3個數據庫,分別是

原创 【redis】-使用Lua腳本解決多線程下的超賣問題以及爲什麼?

一.多線程下引起的超賣問題呈現1.1.我先初始化庫存數量爲1、訂單數量爲0 1.2.開啓3個線程去執行業務 業務爲:判斷如果說庫存數量大於0,則庫存減1,訂單數量加1 結果爲:庫存爲-2,訂單數量爲3 原因:如下圖所示,這是因爲分別有6個

原创 【WPF】-MVVM-封裝窗口管理器解耦在ViewModel中調用View元素彈出窗口

一.在ViewModel層直接調用View彈出窗體 如下圖所示,這樣做就發生了在ViewModel層直接使用了View,兩者產生了耦合,ViewModel裏是不應該包含View的,這不是我們期望的。   二.封裝窗口管理器解耦在ViewM

原创 【數據庫事務】-1.數據庫併發訪問帶來的4個問題

一.更新的丟失舉例:同一時間我把名字改成張三,你把名字改成李四,你一提交把我的更新張三覆蓋了。  造成原因:別人修改後的數據把我修改後的數據覆蓋了。   二.髒讀舉例:老師覺的本次考試題難,給每個學生加上10分,你本來考了59分沒有及格,

原创 【kafka】-分區-消費端負載均衡

一.爲什麼kafka要做分區? 因爲當一臺機器有可能扛不住(類比:就像redis集羣中的redis-cluster一樣,一個master抗不住寫,那麼就多個master去抗寫),把一個隊列的單一master變成多個master,即一臺機器扛

原创 【kafka】-生產環境問題-報錯Maximum application poll interval

一.產生的問題 在.NET環境下使用kafka,消費者長時間消費,會報“ Application maximum poll interval ”錯誤。 二.重現問題 2.1.消費者配置 SessionTimeoutMs(會話超時時間)和Ma

原创 【Redis】-哨兵模式-一張圖解釋腦裂的產生

一.腦裂問題 出現了主節點和哨兵之間網路問題,而且有多數以上的哨兵認爲主節點宕機了,則在從從節點中選擇1個作爲主節點,這個時候客戶端代碼還是可以連接到之前的主節點的,可以寫數據,此時哨兵選舉了新的主節點,然後之前的主網絡恢復了,然後之前的主

原创 kafka-產線上客戶的電腦c盤空間越來越小,kafka日誌文件的索引文件刪除不掉的原因解釋

首先解釋下爲什麼產線客戶電腦c盤空間越來越小?是因爲如下圖所示,kafka數據文件所對應的兩個索引文件xxxxxx.index(偏移量索引文件),xxxxxx.timeindex(時間戳索引文件)沒有被刪除掉引起的,因爲產線上現在已經有10

原创 ELK-內置分詞器-simple分詞器

一.simple分詞器 simple分詞器是對字母文本進行分詞拆分,並將分詞後的內容轉換成小寫格式 #對指定內容根據"simple"分詞器進行分詞 POST _analyze { "analyzer":"simple",

原创 ELK-內置分詞器-simple_pattern分詞器

一.simple_pattern分詞器 simple_pattern分詞器是根據正則表達式進行分詞的分詞器 #創建映射並定義字段內容分詞的正則表達式 #正則表達式表示,如果連續有3個數字在一起,則可以被當作一個單詞 PUT myinde

原创 【Docker】1、在Linux裏使用Docker部署一個Asp.NetCore HelloWord項目

我在騰訊雲活動期間買了兩臺ECS,操作系統是Linux CentOS 7.0以上版本爲啥買兩臺呢?其一:一臺用來搭建私有鏡像倉庫其二:做Docker集羣 一、在CentOS 7.0上安裝 .NET SDK或 .NET 運行時 https:/

原创 【ASP.NET Core 3.1】【鑑權,授權】OAuth2.0四種授權模式--客戶端模式

一、鑑權中心 1.1、Nuget引入IdentityServer4(3.1.3) 我開始引入的是IdentityServer4(4.1.4),但是訪問:http://localhost:10010/connect/token總是報{ "e

原创 ASP.NET Core 3.1--中間件源碼解讀--RequestDelegate--ApplicationBuilder.Use

一、RequestDelegate的定義從RequestDelegate定義可以看出,RequestDelegate是接收請求上下文HttpContext的一個委託,RequestDelegate既然是一個委託,委託就是一個方法,所以Req

原创 Redis--分佈式系統--封裝Redis消息隊列--流量削峯

一、未做消息隊列缺陷:用戶秒殺,請求到了上游服務秒殺服務,然後上游服務調用下游服務下訂單,減去庫存,更新餘額。上游服務秒殺服務的併發量能力有10000,下游服務的併發量能力有1000,當真的客戶端併發量是10000,上游服務秒殺服務能接收1