原创 3min快速掌握Go語言正/反向代理的姿勢

先重溫一下什麼叫反向代理,正向代理。 鵝廠二面,nginx回憶錄 所謂正向,反向代理取決於代理的是出站請求,還是入站請求。 正向代理: 代理的出站請求, 客戶端能感知到代理程序,架構上距離客戶端更近。 反向代理: 代理的是入站請求,客戶端認

原创 聞道Go語言,6月齡必知必會

大家好,我是馬甲哥, 學習新知識, 我的策略是模仿-->歸納--->舉一反三, 在同程倒騰Go語言一年有餘,本次記錄《聞道Go語言,6月齡必知必會》,形式是同我的主力語言C#做姿勢對比。 1. 宏觀預覽 1.1 常見結構對比 某些不一定

原创 兩將軍問題和TCP三次握手

兩將軍問題,又被稱爲兩將軍悖論、兩軍問題, 是一個經典的計算機思想實驗。 首先, 爲避免混淆,我們需要認識到兩將軍問題雖然與拜占庭將軍問題相關,但兩者不是一個東西。拜占庭將軍問題是一個更通用的兩將軍問題版本, 通常在分佈式系統故障容錯、區

原创 深入解讀[面向對象五大設計原則]

最近在看許世偉的架構課, 面向對象五大設計原則(SOLID),扣理論找出處。 早期我跟着大家人云亦云, 回過頭來,摳字眼找出處, 五大設計原則真的很有功力。 注意區分設計原則和設計模式。 設計原則更爲抽象和泛化; 設計模式也是抽象或泛化的

原创 ConcurrentDictionary<T,V> 的這兩個操作不是原子性的

好久不見,馬甲哥封閉居家半個月,記錄之前遇到的一件小事。 ConcurrentDictionary<TKey,TValue>絕大部分api都是線程安全且原子性的, 唯二的例外是接收工廠委託的api:AddOrUpdate、GetOrAdd,

原创 如何仿造websocket請求?

之前兩次singnalr、 websocket實時推送相關: .NET WebSockets 核心原理初體驗 SignalR 從開發到生產部署避坑指南 tag: 瀏覽器--->nginx--> server 其中提到nginx默認不會

原创 有關golang信道的面試筆記

信道是一個goroutine之間很關鍵的通信媒介。 理解golang的信道很重要,這裏記錄平時易忘記的、易混淆的點。 1. 基本使用 剛聲明的信道,零值爲nil,無法直接使用,需配合make函數進行初始化 ic := make(ch

原创 ConfigurationManager姿勢快閃

C# ConfigurationManager使用記錄 最近一個祖傳代碼是使用.NET Fx寫就的,我在使用控制檯程序獲取配置時有些折騰。 下面記錄一些管理配置文件的姿勢: ConfigurationManager用於在客戶機應用程序中獲取

原创 golang 方法接收者

[定義]: golang的方法(Method)是一個帶有receiver的函數Function,Receiver是一個特定的struct類型,當你將函數Function附加到該receiver, 這個方法Method就能獲取該receiv

原创 源碼解讀etcd heartbeat,election timeout之間的拉鋸

轉一個我在知乎上回答的有關raft election timeout/ heartbeat interval 的回答吧。 答:準確來講: election是timeout,而heartbeat 是interval, 這樣就很容易理解了

原创 站在巨人的肩膀上重新審視C# Span<T>數據結構

先談一下我對Span的看法, span是指向任意連續內存空間的類型安全、內存安全的視圖。 如果你瞭解【滑動窗口】, 對Span的操作還可以理解爲 針對連續內存空間的 滑動窗口。 Span和Memory都是包裝了可以在pipeline上使用

原创 使用etcd選舉sdk實踐master/slave故障轉移

本次將記錄[利用etcd選主sdk實踐master/slave高可用], 並利用etcdctl原生腳本驗證選主sdk的工作原理。 master/slave高可用集羣 本文目標 在異地多機房部署節點,slave作爲備用實例啓動,但不接受業務

原创 使用etcd 選舉sdk實踐master/slave故障轉移

本次將記錄[利用etcd選主sdk實踐master/slave高可用], 並利用etcdctl原生腳本驗證選主sdk的工作原理。 master/slave高可用集羣 本文目標 在異地多機房部署節點,slave作爲備用實例啓動,但不接受業務

原创 三分鐘掌控Actor模型和CSP模型

回顧一下前文《三分鐘掌握共享內存模型和 Actor模型》 Actor vs CSP模型 傳統多線程的的共享內存(ShareMemory)模型使用lock,condition等同步原語來強行規定進程的執行順序。 Actor模型,是基於消息

原创 Go的優雅終止姿勢

最近優化了一版程序:用到了golang的優雅退出機制。 程序使用etcd的election sdk做高可用選主,需要在節點意外下線的時候,主動去etcd卸任(刪除10s租約), 否則已經下線的節點還會被etcd認爲是leader。 所以在這