原创 Windows 平臺安裝配置 MongoDB

概述 MongoDB 是一個基於分佈式文件存儲的數據庫。由 C++ 語言編寫。旨在爲 WEB 應用提供可擴展的高性能數據存儲解決方案。MongoDB 是一個介於關係數據庫和非關係數據庫之間的產品,是非關係數據庫當中功能最豐富,最像關係數據庫

原创 Thread類線程常用操作

創建線程 線程是通過擴展 Thread 類創建的。擴展的 Thread 類調用 Start() 方法來開始子線程的執行。 下面的程序演示了這個概念: class ThreadCreationProgram { pu

原创 自建Git服務器系列——Gitea(Gogs的孿生兄弟)

概述 該項目的目標是提供一種最簡單,最快,最輕鬆的方式來建立自託管的Git服務。使用Go,可以在Go支持的所有平臺上進行獨立的二進制分發 ,包括x86,amd64,ARM和PowerPC體系結構上的Linux,macOS和Windows。是

原创 一日一技:ASP.NET Core Api網關Ocelot初探

概述 Ocelot面向使用.NET運行微型服務/面向服務的體系結構的人員,這些體系結構需要在系統中具有統一的入口點。特別是我想與IdentityServer參考和承載令牌輕鬆集成。Ocelot是按特定順序排列的一堆中間件。Ocelot將Ht

原创 你不知道C#只帶有 get 訪問器的屬性是隻讀屬性?

問題窺探 之前有個哥們在使用Newtonsoft.Json反序列化的時候,發現明明有數據,但是就是序列化不出來數據到實體裏面。             咋一看,確實沒什麼問題啊,字符串的數據是存在的。那麼問題出在哪裏呢。 解決思路 1

原创 一日一技:Ocelot網關使用IdentityServer4認證

概述 Ocelot是一個用.NET Core實現的開源API網關技術。IdentityServer4是一個基於OpenID Connect和OAuth2.0的針對ASP.NET Core的框架,以中間件的形式存在。OAuth是一種授權機制。

原创 93.7%的程序員!竟然都不知道Redis爲什麼默認16個數據庫?

背景 在實際項目中redis常被應用於做緩存,分佈式鎖/消息隊列等。但是在搭建配置好redis服務器後很多朋友應該會發現和有這樣的疑問,爲什麼redis默認建立了16個數據庫, 16個數據庫的由來 redis是一個字典結構的存儲服務器,一個

原创 日誌框架NLog之將日誌發送到郵件

背景 NLog可以將日誌輸出到不同的媒介上,郵件是其中一個,通過郵件可以讓我們第一時間收到信息。使用SMTP協議通過電子郵件發送日誌消息。與FallbackGroup Target很好地結合在一起,以創建具有多個SMTP主機的後備。 配置語

原创 python才能做爬蟲,No,C#也可以!

介紹 網絡爬蟲(又稱爲網頁蜘蛛,網絡機器人,在FOAF社區中間,更經常的稱爲網頁追逐者),是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。 背景 最近在玩爬蟲,但是發現基

原创 Web API實現微信公衆平臺開發-接收數據Post

介紹 當普通微信用戶向公衆賬號發消息時,微信服務器將POST消息的XML數據包到開發者填寫的URL上。在微信用戶和公衆號產生交互的過程中,用戶的某些操作會使得微信服務器通過事件推送的形式通知到開發者在開發者中心處設置的服務器地址,從而開發者

原创 聊聊如何使用單例模式

介紹 單例模式,顧名思義就是隻有一個實例,並且她自己負責創建自己的對象,這個類提供了一種訪問其唯一的對象的方式,可以直接訪問,不需要實例化該類的對象。下面我們來看下有哪幾種實現方式吧。 實現方式 1、使用lock ,保證方法只有一個線程可以

原创 c#爬蟲-1688官網自動登錄

背景 在1688官網裏面有很多信息是需要登錄才能看得到的,比如商家的聯繫電話等等。那麼我們在抓取它的網頁的時候,肯定是需要維持登錄狀態才能得到對應的內容。這裏面就會涉及到自動登錄的問題。 登錄地址 https://login.1688.co

原创 用gogs搭建屬於自己的git服務器

背景 我們都知道,像碼雲、GitHub就是一個免費託管開源代碼的遠程倉庫。但是對於公司來說,既不想公開源代碼,又捨不得給交保護費,那就只能自己搭建一臺Git服務器作爲私有倉庫使用。 下面介紹下使用gogs搭建屬於自己的git服務器。 官網:

原创 使用Func<T, TResult> 委託實現API日誌的記錄

問題 平常我們開發web api的時候,一般是需要記錄api的輸入輸出信息,方便後續排查問題;那麼我們一般怎麼做的,一般是我們在一個公共地方的寫個公共方法控制輸入輸出。這時候Func<T, TResult> 委託就派上用場。 什麼是Func

原创 使用緩存防擊穿,解決微信”被動回覆用戶消息”重試回覆問題

背景  做微信公衆號開發的時候,其中有個接收普通消息、接收事件推送 API。 有這麼條規則,  ”微信服務器在五秒內收不到響應會斷掉連接,並且重新發起請求,總共重試三次。假如服務器無法保證在五秒內處理並回復,可以直接回復空串,微信服務器不會