原创 Mybatis主鍵返回策略

MyBatis 主鍵返回策略 最近在項目中需要用到MyBatis的主鍵返回策略,感覺官方文檔給的例子很簡短,上網搜索時又被人所誤導,可能也是自己沒認真看官方文檔,特此記錄。 背景 Mysql 數據庫 表主鍵自增(注意當表主鍵已設

原创 seata TCC事務流程

版本:1.2.0 TCC是一種資源服務化的兩階段提交協議,用戶需要實現Try、Confirm/Cancel接口。通過一階段的Try操作決定執行Confirm(確認)或者Cancel(取消)操作。 Seata TCC三種接口去

原创 seata server啓動源碼

版本:1.2.0 Seata主要包括三大組件:TC、TM和RM。TC(Transaction Coordinator)主要負責全局事務的提交和回滾,是seata的關鍵組件。對可用性及性能都有着較高的要求。 seata TC實現

原创 seata 簡介

背景 在分佈式微服務架構中,應用部署在不同的服務器環境中,因此需要服務與服務之間遠程協作才能完成事務操 作,這種分佈式系統環境下由不同的服務之間通過網絡遠程協作完成事務稱之爲分佈式事務,如何解決分佈式事務問題也是在分佈式架構系統所

原创 Ehcache 3 官方文檔整理

介紹 什麼是Ehcache? Ehcache 是一個開源的、基於標準的,健壯、可靠、快速、簡單、輕量級的java分佈式緩存,支持與其他框架的集成,是Hibernate默認的CacheProvider。同時也實現了JSR107的規範

原创 Synchronizied鎖原理及鎖優化

基本原理解析 synchronized可以修飾方法與代碼塊,首先看下在同步代碼塊中的實現方式 同步代碼塊 public class Monitor { public void synCodeBlock() {

原创 Log4j2配置與自定義

新需求要在log4j上做些自定義的東西,所以補了log4j2這一塊的東西 配置 先看下log4j2的傳統配置 <?xml version="1.0" encoding="UTF-8"?> <Configuration statu

原创 Java中的觀察者模式

介紹 觀察者模式(有時又被稱爲模型(Model)-視圖(View)模式、源-收聽者(Listener)模式或從屬者模式)是軟件設計模式的一種。在此種模式中,一個目標物件管理所有相依於它的觀察者物件,並且在它本身的狀態改變時主動發

原创 多線程Callable與Future

由於Runnable接口只能實現程序的操作無法返回數據,所以在需要返回結果的多線程操作中侷限性就凸現出來。而Callable接口則可以實現結果的返回,同時Future則提供了線程任務的取消,查詢是否完成,獲取結果等。 Callab

原创 Prometheus ubuntu安裝使用

Prometheus ububtu安裝 普羅米修斯是一款開源的監控報警工具,下面介紹在linux的安裝過程 環境準備 環境 版本 操作系統 ubuntu16.04 Prometheus 2.2.1 GO 1.8.

原创 SpringCloud Config

SpringCloud Config分佈式配置 在微服務數量越來越多,同時配置文件也變得越來越多,如何管理這些配置文件是一個問題。SpringCloud 提供瞭解決方案,分佈式配置。它支持將配置文件配置在本地和遠程的git倉庫。 主要

原创 MyBatis SQL解析源碼

MyBatis 架構 1、mybatis配置SqlMapConfig.xml,此文件作爲mybatis的全局配置文件,配置了mybatis的運行環境等信息。 mapper.xml文件即sql映射文件,文件中配置了操作數據庫的sq

原创 Maven插件開發

Maven插件開發 HelloWorld 命名規範:插件命名爲<youurplugin> -maven-plugin。maven-<yourplugin>-plugin是Maven官方插件命名規範,不可使用。 新建Maven項目 gr

原创 SpringCloud Alibaba Sentinel

爲什麼需要服務熔斷和降級 微服務是當前業界的一大趨勢,原理就是將單一職責的功能模塊獨立化爲子服務,降低服務間的耦合,服務間互相調用。但是這樣也會出現一些問題: 大量微服務互相調用,存在大量的依賴關係,難免會出現某個服務故障,然後變

原创 Spring使用ActiveMQ

背景 相信各位一定在網上買過東西、收過快遞。在過去,快遞員需要送到你家門口而你恰好有事不在家,所以快遞員只能拿着快遞給你打電話最後只能在你家門口等待。很大的可能就是你需要跑到快遞點自己取快遞。這種情況我們稱之爲同步通信。 現如今