原创 iptables簡要介紹及使用iptables實踐NAT技術

簡介 iptables的文章多如牛毛,但是,我讀了一些,發現雖然成體系,但是不便理解,今天就結合自己的理解,好好講解下,另外,我們也會使用iptables來實驗一個nat地址轉換的demo,nat轉換,通俗地講,一般是爲了解決ipv4公網地

原创 iptables防火牆調試,想打印個日誌就這麼難

背景 怎麼會講這個話題,這個說來真的長了。但是,長話短說,也是可以的。 我前面的文章提到,線上的服務用了c3p0數據庫連接池,會偶發連接泄露問題,而分析到最後,又懷疑是db側主動關閉連接,或者是服務所在機器和db之間有防火牆,防火牆主動關閉

原创 數據庫連接池之c3p0-0.9.1.2,線上偶發APPARENT DEADLOCK,如何解?

前言 本篇其實是承接前面兩篇的,都是講定位線上的c3p0數據庫連接池,發生連接泄露的問題。 第二篇講到,可以配置兩個參數,來找出是哪裏的代碼借了連接後沒有歸還。但是,在我這邊的情況是,對於沒有歸還的連接,借用者的堆棧確實是打印到日誌了,但是

原创 數據庫連接池之c3p0-0.9.1.2,16年的古董,發生連接泄露怎麼查(一)

背景 這篇文章是寫給有緣人的,爲什麼這麼說呢,因爲本篇主要講講數據庫連接池之c3p0-0.9.1.2版本。 年輕的朋友,可能沒怎麼聽過c3p0了,或者也僅限於聽說,這都很正常,因爲c3p0算是200幾年時比較流行的技術,後來,作者消失了好幾

原创 使用openresty替換線上nginx網關之openresty安裝細節

背景 線上跑了多年的一個網關業務,隨着部門的拆分,逐漸有了一個痛點。該網關業務主要處理app端請求,app端發起的請求,採用http協議,post方法,content-type採用application/x-www-form-urlenco

原创 nginx在代理到upstream時轉換http1.1爲http1.0,長連接轉爲短連接

nginx在代理到upstream時的默認行爲 最近準備用openresty替換nginx,替換的效果當然是需要保證效果和nginx一致,不然可能就會導致線上在用的服務出現問題。 替換成openresty後,在本地進行了一個請求,heade

原创 git diff與linux diff的輸出格式之unified format

前言 前面有一篇文章《一個有些意思的項目--文件夾對比工具(一)》,裏面簡單講了下diff算法之--Myers算法。 既然是算法,就會有實現,比如git diff中有Myers的實現,git diff默認就是用了這個算法(也可以選擇其他算法

原创 一個有些意思的項目--文件夾對比工具(一)

前言 爲什麼會寫這個,因爲遇到了有意思的事情,簡而言之就是,面試某意向公司,沒過;其中一位面試官非常nice,還仔細看了我博客,覺得是不是面試時沒展現出來,因此第二天專程打電話過來,給了我一個額外機會,就是花幾天時間做一個小項目,過幾天提交

原创 httpdns是個什麼技術,有什麼用

dns解析現狀問題1:暴利的dns劫持 要說爲啥會出現httpdns(先不用管意思,後面解釋),那麼,首先要說一下,現在的dns解析,是不是有啥問題? dns能有啥問題呢,就是輸入一個域名xxx.com,dns服務器遞歸獲取xxx.com背

原创 使用bind搭建內網dns服務

dns服務端方案簡介 dns服務有什麼用呢,尤其是內網的dns服務,其實用處還蠻大的,我見過的典型使用,是數據庫跨機房多活。 如某mysql主機搭建在深圳機房,爲了保證高可用,那我們可以給這臺主庫,維護多個深圳同城的跨機房半同步備機,在異地

原创 gslb(global server load balance)技術的一點理解

gslb(global server load balance)技術的一點理解 前言 對於比較大的互聯網公司來說,用戶可能遍及海內外,此時,爲了提升用戶體驗,公司一般會在離用戶較近的地方建立機房,來服務這部分用戶的請求。 比如微信主要是服務

原创 後端接入層技術的一些思考

後端接入層技術的一些思考 前言 網上技術文章已經氾濫了,部分寫得非常好,看着看着,就覺得自己太菜,感覺也沒有下筆的必要了。但是,寫文章也是一個梳理自身思路的一個過程,用輸出倒逼輸入,一直都是挺不錯的學習方法,不然網上文章看完就不記得是馬什麼

原创 git 多人在同一分支上迭代開發時,如何保證分支提交歷史保持線性

背景 最近我們組幾個同事都投入到了一個新項目,互相之間的功能耦合比較緊密,因此,是打算從master上新拉一個分支,可以理解爲我們幾個人的開發分支,以develop代替。 一開始,我們是打算像svn那樣用的,幾個人就把這個新分支develo

原创 rsync同步文件到遠程機器,卡住10多秒--問題解決過程

背景 以前大體介紹過,我們這邊是做運維平臺的。如果要形象化理解,那麼,比如jenkins這種喜聞樂見的軟件大致瞭解吧,jenkins就經常需要同步文件/版本包到遠程機器上,jenkins怎麼實現的,沒去了解。 我們這邊算是自研了類似jenk

原创 Maven插件mybatis-generator,如何讓生成的PO類的field上有對應表字段的註釋

前言 去年剛入職的時候,我就發現,po類(和數據庫表對應的類)上,一片都是光禿禿的,什麼註釋都沒有,類上沒註釋,field上也沒註釋。 在以前的項目中,其實我們都是有生成註釋的,比如,對於下面這個表: CREATE TABLE `t_use