原创 當mysql遇上大偏移量的limit

前言 前段時間項目中的慢sql預警郵件有類似這樣一條慢sql報警了,後來進行了優化,我們的目標是沒有慢sql,sql具體如下 select * from test order by createTime desc limit 3000

原创 springboot集成springsession實現分佈式session共享

前言 現在隨着分佈式,微服務架構的日益成熟,越來越多的企業將傳統的單體服務改造成微服務或者分佈式架構。當然不是說單體服務現在是百無一用,只能說沒有最好的,只要適合就好。在分佈式服務改造中,大家都遇到過一個問題,那就是分佈式session管

原创 Keepalived高可用概念篇

原文鏈接:https://www.cnblogs.com/yanjieli/p/10683751.html Keepalived介紹 Keepalived 軟件起初是專爲 LVS 負載均衡軟件設

原创 HttpClient設置請求超時

前言 最近,我無疑間看到同事提交到git上的httpclient調用第三方服務設置超時代碼,發現有趣的一件事。項目中引用的httpclient版本是4.4.5版本,結果同事爲了設置超時,在項目的pom.xml中又增加了一個低版本的http

原创 redis設置key過期時間,你可能誤會他了

前言 之前在項目中某個功能用redis做限流,裏面需要對Key設置1分鐘的過期時間。請求進來的時候對這個key進行incr。在incr之前特意重新獲取了這個key的過期時間,然後在incr之後,將剛剛獲取的過期時間重新設置到這個key上。

原创 spring的@Retryable重試機制

前言 在很多業務場景中,我們需要用重試機制。比如說在微服務中,服務之間的調用有時候會因爲網絡波動導致調用失敗,這時候代碼中進行失敗重試就ok了,當然這種重試機制通常會和異步結合使用,否則因爲重試導致響應時間變長,這肯定是不行的。至於異步,

原创 對於OSI七層模型,我再也不想"背誦"了

前言 對於網絡協議,我們在日常開發中,實際碼相關代碼的場景不多,因爲日常都是各種CURL。小夥伴們在大學學完可能都忘的差不多了,甚至有些小夥伴在大學就沒學好,甚至壓根就沒學的(這裏是指那些半路轉行投身於碼海的小夥伴)。但是網絡協議這塊很是

原创 httpclient封裝工具類

##前言## 在日常開發中,我們經常需要通過http協議去調用網絡內容,雖然java自身提供了net相關工具包,但是其靈活性和功能總是不如人意,於是有人專門搞出一個httpclient類庫,來方便進行Http操作。對於httpco

原创 Linux中進程和連接狀態查看

前言 在linux日常使用,我們經常會需要查看具體某個進程是否存在,服務是否啓動成功,抑或是需要根據端口號來查詢這個端口號是否被佔用。有時候我們還要查看目前系統中某個進程的連接數,還有各個TCP連接分別處於什麼狀態。這裏來和大家一起總結下

原创 Linux中的文件快速查找

前言 日常開發中,我們經常會用到linux系統,如果剛開始接觸Linux系統,可能操作起來確實有點不習慣,這裏和大家一起總結一些在日常開發中比較實用的命令,俗話說:"熟能生巧",linux命令本身不難,多操作幾遍就會了。 1.在目錄中查找

原创 分佈式服務限流實戰

原文鏈接:https://dbaplus.cn/   限流的作用 由於API接口無法控制調用方的行爲,因此當遇到瞬時請求量激增時,會導致接口占用過多服務器資源,使得其他請求響應速度降低或是超時,

原创 Spring Cloud微服務架構入門(三分鐘看懂)

前言 Spring Cloud作爲當下主流的微服務框架,可以讓我們更簡單快捷地實現微服務架構。Spring Cloud並沒有重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,通過Spring Boot風格

原创 springboot異步結果獲取

前言 前面簡單介紹了springboot的異步,以及自定義線程池。這裏再和大家一起學習下springboot異步中的結果獲取。在實際項目中,我們可能需要獲取異步回調的結果,這種結果獲取,和同步獲取肯定是不一樣的。其實異步調用的獲取結果也很

原创 springboot異步--自定義線程池

前言 在前面,我們簡單學習了Springboot中異步處理@Async小demo。前面的異步中,我們在需要異步的方法上加上@Async註解。@Async默認異步配置使用的是SimpleAsyncTaskExecutor,該線程池默認來一個

原创 Springboot中異步處理@Async小demo

前言 我們日常開發中的請求,從Controller到Service再到Dao層,它是同步的,如果不考慮並行執行的話,一個執行過程需要等前面的執行完成之後才能執行,但是有些業務開發中,我們不需要等待前面的操作執行完成,或者說操作之間沒有依賴