原创 Feign小貼士-MultipartFile與RequestBoby的共存BUG修復

前言  在Zuul章節介紹過如何通過Feign實現文件的上傳,但當時留下一個大大的BUG,通過feign-form實現文件上傳,會導致無法解碼@Requestboby中傳遞的Map、User等等對象,會造成500錯誤,鑑於此在feign-

原创 可靠事件實現微服務下最終一致性事務

通過《消費者實現應用內分佈式事務》、《生產者實現應用內分佈式事務管理》、《實現持久訂閱消費者》三個章節的實踐,其實我們已經可以通過消息隊列實現多應用的分佈式事務,應用內的事務保證了消息不會被重複生產消費、持久化訂閱保證了消息一定會被消費(

原创 消費者本地事務

之前在《實現應用內分佈式事務管理(生產者)》章節已經重點介紹了生產者如何實現應用內的本地事務、分佈式事務,對於消費者同樣有事務管理的需求,本章節將重點介紹springboot下目前消費者本地事務。 本章概要 1、構建消費者基礎工程; 2

原创 DynamoDB初體驗

前言 DynamoDB作爲AWS雲服務一部分,也支持本地化應用,本章將介紹如何在本地構建基礎運行環境。 本章概要 安裝DynamoDB Local; AWS CLI安裝; AWS CLI使用 安裝DynamoDB Local

原创 同時消費隊列和發佈訂閱兩類型消息

在《實現生產者P2P&subpub兼容模式》中實現了生產者兩種消息類型的兼容模式,在消費者中對於單應用同樣有這樣的需求,我們需要能夠在一個應用內同時消費隊列和發佈訂閱兩個類型的消息。 本章概要 1、回顧; 2、編碼; 3、驗證; 回顧

原创 消費者JmsListener應用源碼淺析

在之前的章節中,特別是《消費者本地事務》我們並沒有進行任何配置,爲什麼事務生效了呢(不考慮關係型數據庫的結合,結合後MQ事務仍然生效,但關係型數據庫事務沒有作爲整體事務管理),下面我們通過對源碼的分析來探索Spring如何幫助我們實現了。

原创 消費者實現應用內分佈式事務

在《生產者實現應用內分佈式事務管理》中我們已經實現了消息生產與關係型數據庫MySQL的應用內分佈式事務,結合上一章《消費者JmsListener應用源碼淺析》中對源碼的分析,本章將實現消費者實現應用內分佈式事務。 本章概要 1、基礎工程

原创 ELK接入微服務工程

前言 基於上一個章節,我們已經將ELK完整的構建完成,本章節將實際在微服務工程項目中接入ELK,並進行簡單的數據檢索驗證。 本章概要 1、微服務工程改造; 2、啓動ELK相關組件; 3、日誌採集輸出驗證; 微服務工程改造 本次改造

原创 通過MyCAT中間件實現讀寫分離

緊接着上一章節的《MySQL一主多從配置》,本章節將介紹如何搭建mycat中間件,並用mycat來做讀寫分離. 本章概要 1、MyCat關鍵特性 2、下載MyCat主程序 3、基礎設施 4、配置MyCat&驗證 Mycat關鍵特性 關

原创 JPA集成MyCAT實現讀寫分離

在高併發的互聯網項目中,數據庫的壓力一直是一個瓶頸,而大量的操作均爲讀操作,通過MySQL的讀寫分離,一主多從的當時能夠大大的降低數據庫的壓力。在之前的Springboot章節中有過類似的話題,當時我們可以通過配置多個數據源,通過不同的

原创 MySQL事務隔離級別&鎖機制分析論證

基本概念 1、事務隔離級別說明 ANSI/ISO SQL標準定義了4中事務隔離級別:未提交讀(read uncommitted),提交讀(read committed),重複讀(repeatable read),串行讀(serializa

原创 Kafka+ELK集成

前言 在《ELK接入微服務工程》章節中實現了通過ELK對微服務日誌收集查詢管理工作,那麼對於大型系統,特別是微服務設計下的分佈式系統,我們的日誌來源非常之多,如果直接通過logstash收集輸出至elasticsearch很有可能會導致e

原创 Zuul進階篇-okhttp替換httpclient

前言 在當下微服務的場景下,HTTP請求方式成爲了集成各服務的最佳方式。在 Java 平臺上,Java 標準庫提供了 HttpURLConnection 類來支持 HTTP 通訊。不過 HttpURLConnection 本身的 AP

原创 實現持久訂閱消費者

在很多的業務場景下,如果有多個訂閱者,其不在線則會丟失生產者發出的消息,僅有在線狀態下方可接收到消息,那麼是否有方式可以實現離線訂閱消息的讀取呢,並保證可靠傳遞以及不重複消費呢,本章將通過持久訂閱者實現。 本章概要 1、定義持久訂閱消費

原创 1、Eureka實現服務註冊與發現

有道遷移樣式不夠友好,故提供鏈接如下; http://note.youdao.com/noteshare?id=6f6e31803027e075a8fa2446cd3df3f8&sub=DFB2B79124BE4898860660F0EA