原创 Seata學習中遇到的問題記錄

1、1.2.0版本註冊中心使用zk的時候,server啓動報錯:讀取zk配置信息的時候異常。 錯誤原因:序列化問題,由於使用seata自帶的zk-config.sh腳本向zk寫入配置信息的時候,採用的序列化方式相當於String.get

原创 Java與Netty實現高性能高併發

1. 背景 1.1. 驚人的性能數據 最近一個圈內朋友通過私信告訴我,通過使用Netty4 + Thrift壓縮二進制編解碼技術,他們實現了10W TPS(1K的複雜POJO對象)的跨節點遠程服務調用。相比於傳統基於Java序列化+

原创 淺談一下緩存策略以及memcached 、redis區別

緩存策略三要素:緩存命中率   緩存更新策略  最大緩存容量。衡量一個緩存方案的好壞標準是:緩存命中率。緩存命中率越高,緩存方法設計的越好。  三者之間的關係爲:當緩存到達最大的緩存容量時,會觸發緩存更新策略,而緩存更新策略影響到了緩

原创 代碼重構,越早越好

       還記得當年剛開始工作的時候,不熟悉設計模式,不瞭解阿里開發規範。參與的第一個正式項目是一款人臉實名認證APP,主要負責底層邏輯實現。沒有模板,不考慮代理,從下單到支付,從第三方API調用到本地認證對比邏輯處理,全都在一個se

原创 多數據源下事務支持

最近工作中遇到一個問題,由於某個業務明細表數據量越來越大,因此對該表進行了分表處理,考慮到其他業務未進行分表,因此重新配置了一套分表的數據源配置,這樣項目中同時有兩套數據源,兩套事務管理器。項目開發完畢後同事在偶然的情況下發現部分

原创 Seata學習筆記一:初識Seata(持續更新中)

什麼是Seata? 官網定義:Seata 是一款開源的分佈式事務解決方案,致力於提供高性能和簡單易用的分佈式事務服務。Seata 爲用戶提供了 AT、TCC、SAGA 和 XA 事務模式,爲用戶打造一站式的分佈式解決方案。 Seata三要

原创 Seata學習筆記二:Spring Boot + Dubbo下AT模式的嘗試性使用

Seata官方提供的有專門的各種場景的demo源碼,有興趣的可以自己拉下來嘗試一下。由於本人日常的工作環境是Spring Boot + Dubbo + mysql,出於實用性以及自己動手實踐方面的考慮,我沒有去跑官方的demo,而是選擇嘗

原创 Spring boot請求參數數據綁定重載set方法衝突異常原因解析

最近在工作中遇到了這樣一個問題:一個後端接口,請求對象中有一個字段List<Integer> status,有兩個地方調用該接口,其中一個傳參status:[1,2],其中一個傳參status:1。前一個接口調用沒問題,後一個接口調用報錯

原创 【轉】Mybatis-Configuration-詳解

Configuration MyBatis的初始化會執行SqlSessionFactoryBuilder的中build()方法,build方法又會調用XMLConfigBuilder()的內部parse()方法進行加載配置,所以我們先看一

原创 攻破JAVA NIO技術壁壘

現在使用NIO的場景越來越多,很多網上的技術框架或多或少的使用NIO技術,譬如Tomcat,Jetty。學習和掌握NIO技術已經不是一個JAVA攻城獅的加分技能,而是一個必備技能。再者,現在互聯網的面試中上點level的都會涉及一下N

原创 Java併發編程:volatile關鍵字解析

volatile這個關鍵字可能很多朋友都聽說過,或許也都用過。在Java 5之前,它是一個備受爭議的關鍵字,因爲在程序中使用它往往會導致出人意料的結果。在Java 5之後,volatile關鍵字才得以重獲生機。 volatile關

原创 JAVA設計模式初探之十四:裝飾者模式

這個模式花費了挺長時間,開始有點難理解,其實就是 定義:動態給一個對象添加一些額外的職責,就象在牆上刷油漆.使用Decorator模式相比用生成子類方式達到功能的擴充顯得更爲靈活。 設計初衷:通常可以使用繼承來實現功能的拓展,如果

原创 Nginx初探

一、 概念 Nginx——Ngine X,是一款自由的、開源的、高性能HTTP服務器和反向代理服務器;也是一個IMAP、POP3、SMTP代理服務器;也就是說Nginx本身就可以託管網站(類似於Tomcat一樣),進行Http服務處理

原创 LoadingCache的使用

緩存,在我們日常開發中是必不可少的一種解決性能問題的方法。簡單的說,cache 就是爲了提升系統性能而開闢的一塊內存空間。  緩存的主要作用是暫時在內存中保存業務系統的數據處理結果,並且等待下次訪問使用。在日常開發的很多場合,由於受限

原创 java設計模式之建造者模式

本文繼續介紹23種設計模式系列之建造者模式。 定義: 建造者模式:將一個複雜的對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。 實用範圍 1、當創建複雜對象的算法應該獨立於該對象的組成部分以及它們的裝配方式時。 2、當