原创 Jackson常用註解

屬性設置 @JsonProperty   作用:作用在屬性上,用於將JSON數據中的key與POJO對象中的key進行關聯,也可以理解爲設置屬性別名; @JsonProperty("userName") private Strin

原创 緩存 —— 緩存更新策略(1)

策略1: Read/Write Through 緩存策略 讀請求處理策略 緩存命中,直接返回緩存數據; 緩存未命中,從數據庫加載數據,更新緩存; 寫請求處理策略 先更新數據庫,然後更新緩存; 數據不一致情況 情況1:

原创 軟件項目管理(軟件工程之美總結)

軟件生命週期 項目規劃   需求方和開發方共同確定軟件開發目標,同時進行可行性研究; 經濟可行性。從成本和收益角度分析,看投入產出比。不僅要分析短期利益,還要分析長期利益,看是不是值得做。 技術可行性。從技術角度分析是否可行,

原创 緩存 —— 先數據庫還是先緩存(2)

  到底是先操作數據庫還是先操作緩存,取決於哪種方案可以避免數據不一致,或者數據不一致的概率更低。下面的分析會基於Cache Aside策略展開,爲什麼基於Cache Aside策略,請查看博文“緩存更新策略”。 方案1:先緩存再

原创 訂單系統設計 --- SaaS訂單中心存儲方案

SaaS訂單中心作用   爲垂直領域的商家提供訂單管理能力,管理線上(各種互聯網平臺渠道)、線下等不同渠道的訂單; 需求分析   只是爲商家端提供訂單管理能力,其特點是訪問頻次低,查詢數據量大,需要支持靈活的訂單查詢,能夠容忍一

原创 存儲計算分離初窺

什麼是存儲計算分離?   存儲計算分離是一種分層架構思想,即將存儲能力和計算能力分開,各自服務化,通過高速網絡連接;以AWS的大護具架構爲例,底層統一採用S3存儲,存儲層上架設各種計算引擎比如HIVE、Spark等,如下圖所示:

原创 車載T-BOX

介紹   T-BOX(Telematics BOX),中文名叫做車載通信終端,相當於家庭上網的喵。對於車輛內部,T-BOX與車載CAN總線相連,可以將車輛的信息(車速、位置、油量、電量等),傳送到手機/PC端,同時接受手機端等控制

原创 定時器的幾種常用方案及原理

常見方案 單機:JDK的Timer、ScheduledThreadPoolExecutor,及Spring的@Scheduled; 分佈式:Quartz; JDK Timer   實現原理: 每個定時器實例綁定一個消費線程和任

原创 Content type 'application/json;charset=UTF-8' not supported

基礎   SpringBoot接受到http請求後,會根據content-type來判斷請求的數據格式,進而利用HttpMessageConverter將數據解析成特定的類型。對應JSON格式的數據,SpringBoot默認使用j

原创 @RequestMapping參數解析

作用   將Http請求映射到具體的方法上; 參數 path/value:請求需要匹配的URL路徑; method:請求需要匹配的方法; headers:請求頭中需要包含的字段; consumes:請求的Content-Type

原创 Linux基礎之網絡包收發流程

網絡包的接收流程 網絡數據包(Frame)到達網卡,按照FIFO順序存入網卡的接受隊列; 網卡通過DMA方式將接受隊列的數據拷貝到內核緩衝區sk_buffer; 當數據拷貝完成後,網卡通過硬件中斷(IRQ)通知CPU有新的網絡數

原创 Linux基礎之文件系統

什麼是文件系統?   文件系統是操作系統對存儲設備上文件一種管理機制,不同的管理機制形成了不同的文件系統; 文件系統劃分   按IO棧的層級來分,可以分爲VFS和具體文件系統兩層。VFS屏蔽不同的文件系統,向上提供統一的訪問接口,

原创 Linux零拷貝之sendfile/splice

  sendfile/splice實現了真正意義上的零拷貝:CPU完全不需要參與數據的拷貝,應用層Java NIO爲開發人員提供了FileChannel.transferFrom()/transferTo()方法使用零拷貝。 se

原创 查看進程網絡流量工具nethogs

介紹   按照進程維度查看網絡收發流量; 安裝 yum -y install nethogs 使用 查看所有網卡流量   命令:nethogs 查看指定網卡流量   命令:nethogs eth1