原创 nginx中一個請求匹配到多個location時的優先級問題,馬失前蹄了

背景 爲什麼講這麼小的一個問題呢?因爲今天在進行系統上線的時候遇到了這個問題。 這次的上線動作還是比較大的,由於組織架構拆分,某個接入層服務需要在兩個部門各自獨立部署,以避免頻繁的跨部門溝通,提升該接入層服務的變更效率。 該接入層服務之前是

原创 內網離線安裝docker並配置使用nexus爲docker私服

背景 本文簡單記錄下最近在內網服務器離線安裝docker及配置nexus作爲docker私服,踩的一些坑。docker和k8s這塊技術我跟得不是很緊,18年的時候用過一陣docker,後來發現它並不能解決當時我們遇到的問題,後來就沒用了,再

原创 數據庫連接池長時間不用,乍一用還用不了,結果是防火牆的鍋

前言 我們的程序,在實際的網絡部署時,一般比較複雜,會經過很多的網絡設備,防火牆就是其中的一種。做開發的同事,一般對這塊瞭解不多,也很可能被防火牆坑到。比如,應用一般需要訪問數據庫,爲了避免頻繁建立連接,一般是會提前建立一個連接池,每次來一

原创 tcpdump後臺不間斷抓包

版本1的抓包命令 這兩天排查一個小問題,需要在服務器上使用tcpdump24小時不間斷抓包,這裏簡單記錄下。 先看下tcpdump的語法: tcpdump [ -AbdDefhHIJKlLnNOpqStuUvxX# ] [ -B buffe

原创 oracle導入導出某個schema數據

背景 公司之前部門拆分,但一些服務並沒有拆分清楚。其中一個老服務,兩個部門都在用,現在爲了避免互相影響,決定克隆該服務。克隆就要克隆全套,當然也包括數據庫,我們這個老服務,用的oracle,所以,就涉及到從舊的oracle中導出數據,然後再

原创 純分享:將MySql的建表DDL轉爲PostgreSql的DDL

背景 現在信創是搞得如火如荼,在這個浪潮下,數據庫也是從之前熟悉的Mysql換到了某國產數據庫。 該數據庫我倒是想吐槽吐槽,它是基於Postgre 9.x的基礎上改的,至於改了啥,我也沒去詳細瞭解,當初的數據庫POC測試和後續的選型沒太參與

原创 問題排查:nginx能跑,但是隻能跑一會,不能跑多了

背景 上週都是查測試環境的問題,比如,我上一篇寫的問題排查:nginx的反向代理感覺失效了一樣 ,就是說這個事的。在文章裏,最終查到是nginx的全連接隊列滿了(每個監聽端口有個隊列,完成三次握手的請求會進入這個監聽端口的全連接隊列,隊列大

原创 問題排查:nginx的反向代理感覺失效了一樣

背景 最近,負責基礎設施的同事,要對一批測試環境機器進行回收,回收就涉及到應用遷移,問題是整個過程一團亂。比如服務器A上一堆應用要調用服務器B上一堆服務,結果服務器B被回收了,然後服務器A上一堆應用報錯。 今天就是負責查一個問題,app上一

原创 FastJson不成想還有個版本2啊:序列化大字符串報錯

背景 發現陷入了一個怪圈,寫文章的話,感覺只有大bug或比較值得寫的內容纔會寫,每次一寫就是幾千字,爭取寫得透徹一些,但這樣,我也挺費時間,讀者也未必有這麼多時間看。 我想着,日常遇到的小bug、平時工作中的一些小的心得體會,都還是可以寫寫

原创 老問題了:idea中使用maven archetype新建項目時卡住

背景 作爲一個後端Java打工人,idea就是最重要的打飯工具。創建項目,熟悉吧,但是,這麼多年下來,因爲idea換了版本,電腦換了等等,我還是時不時遇到根據maven archetype新建maven項目卡住。沒錯,我說的就是下面這樣的場

原创 服務端不迴應客戶端的syn握手,連接建立失敗原因排查

背景 測試環境有一個後臺服務,部署在內網服務器A上(無外網地址),給app提供接口。app訪問這個後臺服務時,ip地址是公網地址,那這個請求是如何到達我們的內網服務器A呢,這塊我諮詢了網絡同事,我畫了簡圖如下: 請求會直接打到防火牆上,防

原创 JDK中動態庫加載路徑問題,一文講清

前言 本週協助測試同事對一套測試環境進行擴容,我們擴容很原始,就是新申請一臺機器,直接把jdk、resin容器(一款servlet容器)、容器中web應用所在的目錄,全拷貝到新機器上,servlet容器和其中的應用啓動沒問題。以爲ok了,等

原创 線上問題排查--進程重啓失敗,最後發現是忘了cd

背景 我前面寫了幾篇文章,講c3p0數據庫連接池發生了連接泄露,但是隨機出現,難以確定根因,最終呢,爲了快速解決問題,我是先寫了個shell腳本,腳本主要是檢測服務的接口訪問日誌,看看過去的30s內是不是接口幾乎都超時了,如果是的話,咱們就

原创 如何使用iptables防火牆模擬遠程服務超時

前言 超時,應該是程序員很不愛處理的一種狀態。當我們調用某服務、某個中間件、db時,希望對方能快速回復,正確就正常,錯誤就錯誤,而不是一直不回覆。目前在後端領域來說,如java領域,調用服務時以同步阻塞調用爲主,此時一般會阻塞當前線程,等待

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

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