原创 BindingResult,MessageSource與@Valid實現接口封裝

        程序級別接口返回值,異常和Error通常需要統一編碼,本文以項目應用爲前提,應用Spring中集成的MessageSource實現國際化,並應用BingdingResult和@Valid實現屬性統一校驗。實現步驟如下:  

原创 java併發--高效緩存

        最近閱讀《java併發編程實戰》第5章中提到的一步步建立高效可伸縮緩存代碼,若有所思。         緩存是最容易引起併發問題的場景之一,因爲緩存的內容經常爲可變狀態,而作用域又相對較大。解決併發問題最簡單粗暴的方式就是

原创 人生苦短,我用python

        python是一種動態的,面向對象的解釋型腳本語言,他的代碼風格“優雅”,“明確”,“簡單”;更重要的是它於現在流行的數據分析,人工智能扯上了聯繫,因此受到廣大編程愛好者的喜愛。此時,大家戲稱:“人生苦短,我用python

原创 python 爬蟲實踐

       爬蟲是python最重要的一個應用場景,用戶可以根據自己的需要通過爬蟲從網站上獲取數據。        爬蟲按照爬取內容可以氛圍通用爬蟲和聚焦爬蟲兩類,通用爬蟲是獲得網頁本身即可,最典型的應用是百度快照;聚焦爬蟲則是獲取網頁

原创 秒殺業務設計

       秒殺因其流量大,併發高,成爲最經典的業務之一,併發的根源在於數據庫,通常採用緩存+隊列的方式減少數據庫訪問,降低訪問速度。有幸接觸到一個秒殺業務代碼,採用redis+mq的方式實現,現整理流程如下:       1. 數據庫

原创 Elasticsearch基本原理

       ES作爲高度可伸縮的全文搜索與分析引擎,經常被用作大量數據的複雜搜索與分析業務。本博文以問題方式展示ES的基礎特性,並簡單介紹底層算法實現。        1. ES搜索速度爲什麼會特別快?        簡單來說就是使用了

原创 從ActiveMQ認識JMS

           隨着分佈式系統的規模和複雜度提高,往往會出現如下問題:(1)系統間同步通信,客戶端發出調用後,必須等到服務對象完成處理並返回結果後才能繼續執行;(2)服務端和客戶端強耦合,後端一旦出現故障,前臺將會牽扯進來;(3)客

原创 springboot配置kafka與原生kafka配置

       搭建kafka要注意版本問題,本教程使用的kafka版本是kafka_2.11-0.11.0.2.tgz;首先看下spring-boot鏈接kafka的使用。       1. 添加pom依賴 <dependencies

原创 過濾器實現單一用戶登錄

         單一系統的登錄要保證同一時間內不允許pc,app,微信同時登錄,在一個時間內只保留最後一次登錄狀態。這樣的設計是我們容易忽略的。下面通過過濾器的方式進行實現:        首先在web.xml文件中添加: <fi

原创 Spring Boot 運行原理

       Spring Boot的優勢在於內置大量習慣性的配置,便於與第三方集成,即“習慣優於配置”,讓項目能夠快速運行起來,下面我們就探究下Spring Boot自動集成配置的原理。        Spring Boot關於自動配置

原创 Hadoop整體感知

          認識一門新技術首先從該技術解決什麼問題開始,探討該技術爲解決問題提供了什麼特性,是如何實現該特性的,最後探討在真是環境的應用。        1. 爲什麼會有hadoop?         隨着公司業務發展,數據會

原创 裝飾器模式應用--動態規則引擎

        裝飾器模式應用於動態功能添加,將功能實現分佈於不同的組件,代碼擴展能力強。        先從網上尋找示例,爲英雄聯盟裏面的英雄添加技能,類圖如下:                左側Hero與BindMonk就是簡單的接

原创 zk+curator監聽器機制實現分佈式高可用

         curator是開源zookeeper客戶端,與原生zk client相比,抽象層次更高,功能更加豐富。監聽器在分佈式中主要應用於服務註冊,也是很多開源項目中客戶端請求服務的必選技術應用,它不僅可以減少客戶端無限for循

原创 Spring使用POI實現Excel導入導出

       Apache POI 是創建和維護操作各種符合Office Open XML(OOXML)標準和微軟的OLE 2複合文檔格式(OLE2)的Java API。用它可以使用Java讀取和創建,修改MS Excel文件.而且,還可

原创 spring-boot使用itext與jfree導出pdf報表

          報表在項目開發中經常使用,itext是生成報表的java組件,對比於之前使用的poi,itext側重於pdf格式報表,並結合jfreechar製作圖表,能夠爲用戶多樣化顯示數據。本文結合項目應用案例使用進行描述。