原创 RPC接口設計總結

設計總結   對於RPC接口,設計之初就應該要考慮到接口的通用性、可擴展性、兼容性,以方便後期的修改和升級。 設計總結 入參 入參校驗   對外提供的開放接口,不管是 RPC/API/HTTP 接口都需要進行入參校驗。實踐中,可以

原创 緩存查看利器hcache

簡介   hcache是一款查看buff/cache的工具,可以查看進程的緩存佔用情況,以及佔用操作系統緩存最多的N的文件; 安裝 wget https://silenceshell-1255345740.cos.ap-shang

原创 Linux基礎之IO棧

I/O棧   Linux 存儲系統的 I/O 棧,由上到下分爲三個層次,分別是文件系統層、通用塊層和設備層。 文件系統層,包括虛擬文件系統VFS和其他各種文件系統的具體實現。VFS作用就是屏蔽不同的文件系統,爲上層提供一套標準的

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

目標   爲某垂直領域的電商平臺設計一個訂單中心,用戶、商家和運營可以對訂單中心進行不同的操作; 需求分析 C端:訪問量大,數據的實時性和一致性要求高,主要是訂單列表和訂單詳情的查詢; B端:訪問量適中,對數據的實時性和一致性

原创 庫存扣減

扣減時機   何時扣減扣減庫存,目前有兩種主流方式: 方式1:下單減庫存——即用戶下單成功時減少庫存數量 優點:用戶體驗好,系統邏輯簡單; 缺點:會導致惡意下單或下單後卻不買,使得真正有需求的用戶無法購買,影響真實銷量; 解決

原创 SpringBoot Logback擴展

日誌配置訴求 同一個配置文件,不同環境可以配置不同的日誌級別和存儲路徑; 當爲特定的環境時,某些特定的配置可以生效; SpringBoot Logback擴展   SpringBoot對Logback進行了一定擴展,用戶可以在

原创 構建Maven多模塊工程

爲什麼用Maven多模塊 每個模塊功能明確,工程結構清晰; 整個工程可一起構建,每個模塊也可單獨構建,方便模塊的複用和對外暴露,特別是在微服務時代; Maven多模塊工程結構 IDEA創建示例 創建父模塊 File → N

原创 開放平臺初步認識

什麼是開放平臺?   開放平臺可以理解爲一個公司對外的窗口,公司通過開放平臺將內部的標準、數據和服務等以API的形式開放出來,供第三方開發者使用,以便達到數據交互、合作共贏的目的,如下圖所示: 業界產品   基本上,稍微有些體量

原创 商品中心 --- 基本概念

分類體系 類目:商品的分類,分爲前臺類目和後臺類目; 前臺類目:M端視角對商品的分類,便於買家導購; 後臺類目:B端視角對商品的分類,便於賣家發佈商品; 類目樹:多級類目形成類目樹; 屬性:每個類目都有屬性,作爲商品更細粒度的劃

原创 微信支付: 普通商戶 VS 服務商

區別 普通商戶:用戶使用微信支付付款後,由微信直接與商戶進行結算,沒有資金凍結和分賬; 服務商:用戶使用微信支付付款後,資金會先被微信凍結,時間到達後由服務商向微信發起分賬,微信按照各分賬方約定的比例進行分賬,如下圖所示:

原创 支付 VS 清算 VS 結算

概念 標準定義 支付: 完成付款人向收款人轉移可以接受的貨幣債權的過程,包括交易過程、清算過程和結算過程等三個過程(一個完整的支付過程,清算和結算都屬於支付的某個環節); 清算: 包含了在收付款人金融機構之間交換支付工具以及計算

原创 讀超時小於系統處理時間問題思考

問題描述   系統A調用系統B的服務,系統A設置了超時上限t1(讀超時,或者熔斷超時等),系統B服務處理時間爲t2。當t1 < t2時,系統A會拋出超時異常,系統B可能處理成功也可能失敗,但是系統A無法感知,如下圖所示: 影響

原创 HashMap注意點

注意點1:初始容量設置   儘量根據業務場景設置合理的初始容量(2的冪次方),避免頻繁擴容和數據遷移,以此提升性能; 注意點2:默認最大容量 表容量/桶個數最大爲2^30(MAXIMUM_CAPACITY設定),當桶個數超過設定

原创 TCP半連接隊列和全連接隊列

基本介紹 半連接隊列(syn queue) 作用:TCP 三次握手中存儲處於SYN_RECV狀態的連接; 最大長度:max(64, /proc/sys/net/ipv4/tcp_max_syn_backlog),syncooki

原创 Linux版本查看

命令及解析   使用命令cat /proc/version來查看Linux版本信息,輸出信息如下: Linux version 2.6.18-92.el5 ([email protected]