原创 學一點Ceph知識:初識Ceph

Ceph是什麼? Ceph是一個開源的分佈式存儲系統,可大規模擴展、高性能、無單點故障,在普通的服務器上可以支持到PB級容量,商用機器上支持的容量可以達到EB級別。 Ceph的競爭力 市面上提供雲存儲的分佈式系統如阿里雲的OSS(底層存儲框

原创 SpringMVC Json自定義序列化和反序列化

需求背景 需求一:SpringMVC構建的微服務系統,數據庫對日期的存儲是Long類型的時間戳,前端之前是默認使用Long類型時間,現在前端框架改動,要求後端響應數據時,Long類型的時間自動變成標準時間格式(yyyy-MM-dd HH:m

原创 SpringMVC日期格式屬性自動轉成時間戳實現源碼分析

背景介紹 SpringMVC搭建的微服務系統,後端數據庫對時間類型的存儲使用的是Long類型,而前端框架傾向於使用yyyy-MM-dd HH:mm:ss這種標準顯示格式,前端JSON格式的請求報文與後臺的接口交互都需要進行格式轉換,這部分轉

原创 spring-cloud-gateway聚合swagger文檔

需求背景 spring cloud搭建微服務系統,每個業務模塊使用swagger開放文檔接口查詢,在業務網關模塊提供swagger文檔聚合查詢接口,可以通過選擇業務模塊分類查看。 框架選型、版本及主要功能 spring boot 2.1.

原创 基於SpringCloud的enum枚舉值國際化處理實踐

背景 選用SpringCloud框架搭建微服務做業務後臺應用時,會涉及到大量的業務狀態值定義,一般常規做法是: 持久層(數據庫)存儲int類型的值 後臺系統裏用閱讀性好一點兒的常量將int類型的值做一層映射 前端(app或瀏覽器)同樣定義

原创 源碼剖析@ApiImplicitParam對@RequestParam的required屬性的侵入性

問題起源 使用SpringCloud構建項目時,使用Swagger生成相應的接口文檔是推薦的選項,Swagger能夠提供頁面訪問,直接在網頁上調試後端系統的接口, 非常方便。最近卻遇到了一個有點困惑的問題,演示接口示例如下(原有功能接口帶有

原创 實戰SpringCloud通用請求字段攔截處理

背景 以SpringCloud構建的微服務系統爲例,使用前後端分離的架構,每個系統都會提供一些通用的請求參數,例如移動端的系統版本信息、IMEI信息,Web端的IP信息,瀏覽器版本信息等,這些參數可能放在header裏,也可以放在參數裏,如

原创 Elasticsearch系列---生產集羣的索引管理

概要 索引是我們使用Elasticsearch裏最頻繁的部分日常的操作都與索引有關,本篇從運維人員的視角,來玩一玩Elasticsearch的索引操作。 基本操作 在運維童鞋的視角里,索引的日常操作除了CRUD,還是打開關閉、壓縮、alia

原创 Elasticsearch系列---生產數據備份恢復方案

前言 生產環境中運行的組件,只要有數據存儲,定時備份、災難恢復是必修課,mysql數據庫的備份方案已經非常成熟,Elasticsearch也同樣有成熟的數據備份、恢復方案,我們來了解一下。 概要 本篇介紹Elasticsearch生產集羣數

原创 Elasticsearch系列---生產集羣部署(下)

概要 本篇繼續講解Elasticsearch集羣部署的細節問題 集羣重啓問題 如果我們的Elasticsearch集羣做了一些離線的維護操作時,如擴容磁盤,升級版本等,需要對集羣進行啓動,節點數較多時,從第一個節點開始啓動,到最後一個節點啓

原创 Elasticsearch系列---生產集羣部署(上)

概要 本篇開始介紹Elasticsearch生產集羣的搭建及相關參數的配置。 ES集羣的硬件特性 我們從開始編程就接觸過各種各樣的組件,而每種功能的組件,對硬件要求的特性都不太相同,有的需要很強的CPU計算能力,有的對內存需求量大,有的對網

原创 Elasticsearch系列---幾個高級功能

概要 本篇主要介紹一下搜索模板、映射模板、高亮搜索和地理位置的簡單玩法。 標準搜索模板 搜索模板search tempalte高級功能之一,可以將我們的一些搜索進行模板化,使用現有模板時傳入指定的參數就可以了,避免編寫重複代碼。對常用的功能

原创 Elasticsearch系列---實現分佈式鎖

概要 Elasticsearch在文檔更新時默認使用的是樂觀鎖方案,而Elasticsearch利用文檔的一些create限制條件,也能達到悲觀鎖的效果,我們一起來看一看。 樂觀鎖與悲觀鎖 樂觀鎖 ES默認實現樂觀鎖,所有的數據更新默認使用

原创 Elasticsearch系列---數據建模實戰

概要 本篇以實際案例爲背景,介紹不同技術組件對數據建模的特點,並以ES爲背景,介紹常用的聯合查詢的利弊,最後介紹了一下文件系統分詞器path_hierarchy和嵌套對象的使用。 數據模型對比 實際項目中,電商平臺系統常見的組合Java、M

原创 Elasticsearch系列---聚合查詢原理

概要 本篇主要介紹聚合查詢的內部原理,正排索引是如何建立的和優化的,fielddata的使用,最後簡單介紹了聚合分析時如何選用深度優先和廣度優先。 正排索引 聚合查詢的內部原理是什麼,Elastichsearch是用什麼樣的數據結構去執行聚