原创 Java註解的用處和使用

Java 註解(Annotation)又稱爲 Java 標註,是 JDK5.0 引入的一種註釋機制。 Java 語言中的類、方法、變量、參數和包等都可以被標註。和 Javadoc 不同,Java 標註可以通過反射獲取標註內容。在編

原创 解決ActiveMQ服務停掉後無限重連問題

斷線重連機制是ActiveMQ的高可用性具體體現之一。ActiveMQ提供failover機制去實現斷線重連的高可用性,可以使得連接斷開之後,不斷的重試連接到一個或多個brokerURL。 默認情況下,如果client與broke

原创 Java中的匿名類與Lambda表達式

匿名類 匿名類是一個沒有名稱的內部類,並且只能創建一個對象實例。當要實現某些“額外”功能(例如類或接口的重載方法)來創建對象的實例時,匿名類可能很有用,這時不必實際子類化。 匿名類主要以兩種方式創建: 繼承類(可以是抽象的或具體

原创 Netty精粹之基於EventLoop機制的高效線程模型

摘要: Infoq有篇文章提到通過Netty4+Thrift壓縮二進制編碼技術有人實現了10W TPS(1K的複雜POJO對象)跨節點遠程服務調用,對於RPC應用來說高性能的三個主題永遠是IO模型、數據協議、線程模型,10W TP

原创 Netty 核心概念介紹和簡單示例

Netty是一個異步的,事件驅動的網絡框架,我們可以使用它來開發高性能客戶端和服務器。在本文中,我將解釋一些基本的netty概念,以便當我們開始使用netty框架來構建我們自己的Http Web服務器和客戶端時,很容易理解Nett

原创 Twitter的snowflake算法改進

Twitter的snowflake算法是在分佈式系統中一種自增ID的算法,ID能夠按照時間有序生成並且可以做到全局唯一。 算法生成的是Long類型的id,一個Long類型佔8個字節,每個字節佔8比特,也就是說一個Long類型佔64

原创 使用SpotBug進行靜態代碼檢查

在運行程序前我們可以通過編譯來發現問題,但這樣是遠遠不夠的。這是因爲在編譯期間僅捕獲到非常小的錯誤範圍,即語法錯誤,無效引用等。當程序包含編譯錯誤時,IDE會發出警告,但它無法防範其他類型的錯誤,例如運行時錯誤或邏輯錯誤。 通過使

原创 H5通過數據流方式播放視頻

本文介紹如何通過H5頁面通過數據流的方式播放服務端的視頻文件,可以兼容PC、Android和IOS環境。 H5頁面可以通過<video> 標籤來播放視頻。一般的方式如下: <!DOCTYPE HTML> <html> <body>

原创 Java字符串比較方法equals的空指針異常

在Java語言中字符串比較有兩種方式:== 和equals()。 “==”比較的是針對兩個String類型變量的引用,當兩個String類型的變量指向同一個String對象(即同一個內存堆),則返回true。而equals()方法

原创 分佈式服務接口:Rest與RPC比較

分佈式服務顧名思義服務是分散部署在不同的機器上的,一個服務可能負責幾個功能,是一種面向SOA架構的。一個Web服務提供服務API(Application Programming Interface),通過網絡在客戶端和服務器之間進

原创 分佈式事務中的Saga模式

微服務架構(MSA)已經變得非常流行。但是,一個常見問題是如何跨多個微服務管理分佈式事務。當微服務架構將單體系統分解爲自封裝服務時,意味着單體系統中的本地事務現在分佈到將按順序調用的多個服務中。 說到分佈式事務,通常熟悉的是兩階段

原创 MySQL 5.7中對XA支持的改進

介紹 XA的意思爲“eXtended Architecture”,是The Open Group組織爲分佈式事務處理創建的標準。雖然MySQL 5.0是第一個支持XA的版本,但MySQL 5.7提升了XA支持的可靠性,修復了許多錯

原创 Spring Security OAuth2認證授權示例詳解

這篇文章主要介紹了Spring Security OAuth2認證授權示例詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨着小編來一起學習學習吧 本文介紹瞭如何使

原创 分佈式事務處理中的冪等性

事務是指以全有或全無的方式執行的一系列操作。所有操作必須全部成功完成,否則在每個操作中所作的所有更改都會被撤消。 以數據庫爲列,事物包含四個特性(ACID) 原子性(Atomicity):操作這些指令時,要麼全部執行成功,要麼全

原创 解決Maven報錯:Plugin execution not covered by lifecycle configuration

當一個新的maven項目導入到工作空間中可能會遇到maven插件lifecycle configuration 錯誤,例如: Plugin execution not covered by lifecycle configurat