原创 利用狀態機處理訂單狀態流轉

首先簡述一個場景,訂單的狀態流轉。 一個訂單會有很多種狀態:臨時單、已下單、待支付、已支付、已完成、退款中等等。每一種狀態都和其扭轉前的狀態、在扭轉前狀態所執行的操作有關。 一 引子 舉例一個過程:用戶將商品加入購物車,在後臺生成了一個所

原创 互聯網架構的演變過程

簡介 web1.0時代 web2.0時代 互聯網時代 互聯網+ --》智慧城市。 2012年提出。 雲計算+大數據時代 背景 隨着互聯網的發展,網站應用的規模不斷擴大,常規的垂直應用架構已無法應對,分佈式服務架構以及流動計算架構勢在必行,

原创 CPU密集型、IO密集型與線程關係

CPU密集型(CPU-bound) CPU密集型也叫計算密集型,指的是系統的硬盤、內存性能相對CPU要好很多,此時,系統運作大部分的狀況是CPU Loading 100%,CPU要讀/寫I/O(硬盤/內存),I/O在很短的時間就可以完成,

原创 獲取Dao上的自定義註解(瞭解Mybatis與Spring整合原理)

Dao類 @Repository @Tag("user_tag") public interface UserDao { void save(User u) } 需要是:將dao放入到一個本地Map中,key是Tag註解的內容,值是U

原创 單機結構/集羣結構/分佈式結構

  下面就正經解釋下三種結構的區別吧~ 單機結構 我想大家最最最熟悉的就是單機結構,一個系統業務量很小的時候所有的代碼都放在一個項目中就好了,然後這個項目部署在一臺服務器上就好了。整個項目所有的服務都由這臺服務器提供。這就是單機結構。

原创 灰度劃分方法

將一堆用戶按照百分比劃分方式: x &(-1)=x% 比如將用戶分1024個桶就是 uid & (-1) 相當於 uid%1024

原创 併發編程之Disruptor框架介紹和高階運用

1.   Disruptor是什麼 1.1   技術背景 LMAX是在英國註冊並受到FCA監管(監管號碼爲509778)的外匯黃金交易所, LMAX架構是LMAX內部研發並應用到交易系統的一種技術。它之所以引起人們的關注,是因爲它是一個非

原创 認識Spring 的註解 (三)之 @AliasFor 使用規則

一、該標籤存在的意義         顧名思義 @AliasFor 表示別名,它可以註解到自定義註解的兩個屬性上,表示這兩個互爲別名,也就是說這兩個屬性其實同一個含義。該標籤存在的含義,從網上查發現有個點,   若  自定義註解有一個屬性

原创 Java中文分詞hanlp使用

HanLP介紹:http://hanlp.linrunsoft.com/ github地址:https://github.com/hankcs/HanLP 說明:使用hanlp實現分詞、智能推薦、關鍵字提取、摘要等,更多功能參考官網 項目

原创 日誌體系與SringBoot的日誌應用

以後開發的時候,日誌記錄方法的調用,不應該來直接調用日誌的實現類,而是調用日誌抽象層裏面的方法; 日誌實現   意思爲簡單日誌門面,它是把不同的日誌系統的實現進行了具體的抽象化,只提供了統一的日誌使用接口,使用時只需要按照其提供的接口方

原创 zookeeper分佈式鎖

問題 (1)zookeeper如何實現分佈式鎖? (2)zookeeper分佈式鎖有哪些優點? (3)zookeeper分佈式鎖有哪些缺點? 簡介 zooKeeper是一個分佈式的,開放源碼的分佈式應用程序協調服務,它可以爲分佈式應用提供

原创 Servlet3之NIO線程池隔離

線程隔離主要是針對業務中不同業務場景,按照權重區分使用不同的線程池,以達到某一個業務出現問題,不會將故障擴散到其他的業務線程池,從而達到保證主要業務高可用。 本案例主要講解基於servlet3的線程隔離術。 首先我們回憶一下在tomcat

原创 idea中git遠程版本回退

原文鏈接:https://blog.csdn.net/gomeplus/article/details/78241070 工作中遇到git遠程倉庫需要回退到歷史版本的問題,根據網上的搜索結果結合

原创 Spring EL表達式詳細講解及使用實例

原文鏈接:http://www.manongjc.com/article/8467.html 一、簡介 Spring3中引入了Spring表達式語言—SpringEL,SpEL是一種強大,簡潔的

原创 EL表達式各種函數使用大全

原文鏈接:https://www.cnblogs.com/lxcmyf/p/5830230.html 引入<%@ taglib prefix="fn" uri="http://java.sun.