原创 COLA開發流程總結

COLA開發流程總結 COLA發起者的博客 COLA是一套用於幫助你實踐DDD落地的項目架構,在開發COLA之前,我們先再熟悉一下基於COLA創建的項目的結構: demo-client: api:存放的是對外暴露的接口 dto

原创 Linux監控磁盤IO及線程讀寫狀態 並用日誌記錄

最近給客戶交付新系統,然後客戶反應服務器硬盤使用的增量有點異常,5天用掉了3個G,由於我們做的是一個採集系統,服務器每隔幾分鐘就會接收上千臺終端的數據,但是以前沒有遇到過增值量那麼大的情況。簡單檢查了一下數據庫,發現數據量增長沒有

原创 深入理解LVS篇:網絡通信原理(二)局域網間通訊之ARP協議

導讀什麼是ARP協議ARP協議的工作流程 上一篇文章我簡單講述了一個數據報文是如何在局域網中轉發的,簡單的回顧一下流程: 主機封裝數據報文,其中包含請求體、源IP、目標IP和源MAC地址等信息。 報文經過交換機,交換機將報文發送

原创 SpringBoot Security快速上手 ajax 405解除攔截 源碼+表結構

這篇文章源自我最近在做的一個需求,leader希望能做一個接口監控頁,而這個頁面需要做登錄攔截。由於我比較懶,不想手寫攔截器來做登錄認證,而之前又沒有玩過Spring Security,於是就把它引入進來了。 本文基於Spring

原创 Ractive編程實戰:基於Zookeeper實現分佈式鎖

導讀關鍵函數加鎖獲取執行權邏輯解鎖測試函數程序執行的效果 本文的源碼已上傳至Github 分佈式鎖需要解決的問題: 數據一致性問題:多個client搶鎖,只能有一個client能拿到鎖,不能出現多個client拿到多把鎖的情況;

原创 同事crud三年了跟我說還沒看過AQS源碼,我反手就給了他一巴掌----AQS源碼詳解

面試場景: 面試官:平時工作中有用到鎖嗎? 應聘者:有。 面試官:… 應聘者:… (沉默3秒) 面試官:怎麼用的? 應聘者:把想要同步的地方加上synchronized關鍵字。 面試官:synchronized怎麼實現的? 應聘者

原创 深入理解LVS篇:搭建基於LVS的負載均衡服務器

本次實驗基於DR模型來搭建,我們需要準備至少三臺機器,這裏全部使用虛擬機。這三臺機器的IP分別是192.168.40.129 192.168.40.132 192.168.40.133。我們先來看一下我們要搭建的模型的整體架構:

原创 深入理解LVS篇:網絡通信原理(三)路由轉發模式NAT、DR和TUN

上篇文章我們簡單講解了ARP協議是如何讓局域網中的各個主機找到對方的MAC地址的,實際上,ARP協議也可以應用於互聯網中用於路由器之間找到下一條的MAC地址,但在本系列文章中,我們不對廣域網的使用場景進行過多展開。 我們接着來探究

原创 深入理解LVS篇:網絡通信原理(一)局域網間通訊之路由轉發

導讀寫這篇博客的目的什麼是LVS網絡7層模型/4層模型當我們訪問網站的時候,底層究竟做了什麼? 寫這篇博客的目的 LVS涉及的網絡知識較多,所以一篇文章無法完全將其解釋明白。本系列文章將從以下幾個模塊講起: 網絡通訊原理 LVS

原创 理解同步/異步和阻塞/非阻塞

本文記錄了本人在複習網絡編程的過程中,關於同步/異步,阻塞/非阻塞這幾個重要概念的理解。特舉了幾個通俗易懂的例子來幫助理解和記憶,如果理解有誤,歡迎各位指正。 如果定義很難看懂,可以先看底下的例子,再返回來看看這些定義,會好理解很多。

原创 leetcode算法題之:寶石與石頭

比較簡單的題目就直接上代碼了。沒什麼優化可言,當然如果硬要提升性能的話分割字符串然後扔給多線程最後各個線程的num相加也可以,注意主線程要等待其它線程執行結束就行了,可以用CountDownLatch來標記子線程是否結束運行。 題目