原创 如何對消息隊列進行選型

【寫在前面】 消息隊列中間件(簡稱消息中間件)是指利用高效可靠的消息傳遞機制進行與平臺無關的數據交流,並基於數據通信來進行分佈式系統的集成。 它具有低耦合、可靠投遞、廣播、流量控制、最終一致性等一系列功能,是異步RPC的主要手段之一。

原创 java wait(long timeout, int nanos),後面的nanos有什麼用?

【源碼】 java1.8: 1 public final void wait(long timeout, int nanos) throws InterruptedException { 2 if (timeout < 0)

原创 Java高併發與多線程(四)-----鎖

今天,我們開始Java高併發與多線程的第四篇,鎖。 之前的三篇,基本上都是在講一些概念性和基礎性的東西,東西有點零碎,但是像文科科目一樣,記住就好了。 但是本篇是高併發裏面真正的基石,需要大量的理解和實踐,一環扣一環,環環相扣,不難,但是需

原创 Java高併發與多線程(三)-----線程的基本屬性和主要方法

今天,我們開始Java高併發與多線程的第三篇,線程的基本屬性和主要方法。     【屬性】 編號(ID)   類型long 用於標識不同的線程,編號唯一,只存在java虛擬機的一次運行     名稱(Name)   類型Str

原创 Java高併發與多線程(二)-----線程的實現方式

今天,我們開始Java高併發與多線程的第二篇,線程的實現方式。     通常來講,線程有三種基礎實現方式,一種是繼承Thread類,一種是實現Runnable接口,還有一種是實現Callable接口,當然,如果我們鋪開,擴展一下,會有很多種

原创 Java高併發與多線程(一)-----概念

其實之前一直想專門寫一篇,單獨說一說Java的多線程與高併發,但是一直以來,都沒有想到能夠用什麼比較有趣的表現形式去表達出來,而且網上充斥着很多類似的博客,有好的又不好的,有簡介的有繁瑣的,所以也一直沒寫。 但是想了想既然之前有這個想法,

原创 如何使用GitHub創建Maven私有倉庫

【Github上創建倉庫】 首先,在GitHub上創建自己的倉庫(mvn-repo):   【配置本地setting文件】 找到本地的maven settings文件,配置server: 有兩種選擇,可以選擇配置username和

原创 如何開發一個maven插件

maven是當下最流行的項目管理工具,其豐富的插件爲我們的工作帶來了很大的便利。 但是在一些情況下,開源的插件並不能完全滿足我們的需求,我們需要自己創建插件,本文就從0開始帶大家一起創建自己的插件。 【命名規範】   首先,官方的命名規範是

原创 Maven依賴管理系統

【背景】 之前在領英上讀到一篇軟文,《Managing Software Dependency at Scale》,講述了領英是如何處理模塊之間的依賴解析,以及如何去更好的處理依賴關係以及依賴管理。感覺在一家多產品的公司,在產品有可能相互依

原创 談談nginx和lvs各自的優缺點以及使用

        在最開始呢,咱們先說一下什麼叫負載均衡,負載均衡呢,就是將一批請求,根據請求的內容,分發到不同的後端去進行相應的處理,從而提供負載分擔,主備切換等功能。                  對於不同的負載均衡軟件,有不同的流

原创 Java垃圾回收略略觀

本文主要介紹Java垃圾回收(Garbage Collection),90%乾貨,文字頗多,需要耐心一點看。     【對象判斷狀態算法】 ------引用計數法 在創建對象時,爲對象創建一個伴生的引用計數器,當有其他對象引用該對象時,將

原创 高併發&性能優化(二)------系統監控工具使用

上一篇主要從總體介紹了高併發&性能優化的相關思路和方法,本篇主要介紹系統監控工具。     【CPU查看工具】 ------top命令(性能) 進入top命令後,按1即可看到每核CPU的運行指標與詳細指標: 咱們依次說明下紅框裏面的參數:

原创 高併發&性能優化(一)------總體介紹

【開篇詞】 本文主要通過一些經典的高併發場景,以及一些基本的運維工具來講述一些關於高併發以及性能優化相關的內容,主要包括性能瓶頸的定位,性能調優的思路和技巧等。     【性能的衡量指標】 ?什麼是性能 性能就是,在有限的時間內,使

原创 線程池略略觀

【爲什麼要使用線程池】 ------傳統線程創建方式的問題 反覆創建線程系統開銷比較大,每個線程創建和銷燬都需要時間,如果任務比較簡單,那麼就有可能導致創建和銷燬線程消耗的資源比線程執行任務本身消耗的資源還要大。 過多的線程會佔用過多的內

原创 spring-mvc的工作原理

   【基本流程】 客戶端發送請求,到DispatcherServlet(SpringMVC前端控制器,主要負責分發)    DispatcherServlet根據請求的url信息調用HandlerMapping,解析請求對應的Ha