原创 秒殺下單流程問題

秒殺下單流程問題一.場景二.問題三.分析四.方案五.僞代碼六.總結 一.場景 秒殺下單Flow,一個會員,只能下一單。 下圖爲秒殺下單的簡單流程圖,其中除了<異步操作>外,其它操作均爲同步操作。 Created with Raph

原创 AOP解決數據庫事務與MQ的問題

AOP解決數據庫事務與MQ的問題一.場景二.問題1.數據庫事務的傳播性2.數據庫事務和MQ的一致性三.分析1.問題分析1.1事務傳播性分析1.2一致性分析2.方案分析1.1事務和MQ的執行順序1.2事件日誌記錄1.3大事務的MQ消

原创 緩存一致性問題

緩存一致性問題一.場景二.問題三.定義四.分析1.順序異常分析1.1 先A後B1.2 先B後A1.3小結2.方案分析2.1先A後B2.2先B後A2.3小結2.4方案改進五.項目中的實踐普通緩存(查詢併發量少)秒殺緩存(查詢併發量大

原创 秒殺下單流程

秒殺下單流程一.場景二.問題三.分析四.方案五.僞代碼六.總結 一.場景 秒殺下單Flow,一個會員,只能下一單。 下圖爲秒殺下單的簡單流程圖,其中除了<異步操作>外,其它操作均爲同步操作。 Created with Raphaë

原创 redis 事務與Lua腳本

redis 事務與Lua腳本一.原理1.redis事務2.lua腳本3.兩者異同相同點不同點二.問題1.使用場景是什麼秒殺限流2.如何選擇 一.原理 1.redis事務 基本原理爲樂觀鎖,多個client對操作的key進行watc

原创 構造隊列的算法問題

問題如下: 小明同學把1到n這n個數字按照一定的順序放入了一個隊列Q中。現在他對隊列Q執行了如下程序: while(!Q.empty()) //隊列不空,執行循環 { int x=Q.front(); //取出當前隊頭

原创 socket 簡單實現jms(消費者生產者模型)

本文基於socket通訊,以及lock鎖機制來初步實現jms的異步隊列。 設計分成三個部分,分別是信息隊列管理類,服務端類和客戶端類。 Buffer(信息隊列管理類) import java.util.LinkedList; impor

原创 排序算法

幾種基礎排序(python) 很久沒寫過排序算法了,現在對各種常見的排序進行復習並且記錄,以下算法實現有問題的歡迎提出。 class Sort: num = 0 def __init__(self): p

原创 shiro免密碼登錄

在實際開發中,一般我們使用shiro進行用戶密碼登錄,有時候面對一些常見的需求,不得不再已有的框架上進行修改,比如說,增加一種使用手機驗證碼登錄的登錄方式。這時候,我們可以根據已有的框架,對其稍微修改一下便可滿足需求。 public cl

原创 NIO 多線程處理異步隊列

本文使用java的NIO簡單實現server-client模式,處理異步隊列。 緩存隊列類 public class Buffer { private static Queue<Object> queue = new Linked

原创 Jedis 實現簡單的分佈式鎖(基於jdk的Lock接口)

Jedis 實現簡單的分佈式鎖(基於jdk的Lock接口) redis在高併發場景中的使用比較流行,雖然其內部IO處理使用單線程,但是依然能夠快速處理,支撐比較高的併發。基於這個特點,redis在互聯網應用中作爲分佈式鎖的中間件被廣泛應用

原创 win7中用virtualbox不能安裝虛擬機的問題

因爲某些原因,需要再次使用vrtualbox裝centos系統,但是又遇到同樣的問題,這次要把它記下來。 virtualbox不能爲虛擬電腦啓動一個新任務 錯誤詳情如下: Unable to load

原创 virtualbox中centos裝VBOXADDITIONS的注意事項

第二次搞這個了,就是又忘記了,這次要記下。 一般centos下裝VBOXADDITIONS會出現以下問題: Verifying archive integrity… All good. Uncompressing VirtualBox

原创 JQuery的ajax應用

近段時間在學習jquery,雖然之前接觸過,但沒有系統地學習,現在嚐到ajax的異步交互,於是把重要並且常用的知識點記下。 使用load()方法異步請求數據 使用load()方法通過Ajax請求加載服務器中的數據,並把返回的數據放置到

原创 Hibernate之關係映射

Hibernate封裝了JDBC大部分的API,使我們對關係型數據庫的訪問轉向面積對象的編程實現,使數據訪問層的代碼得到簡化,而對於Hibernate中實體與表的映射是學習Hibernate的重點,也是難點。這裏簡單總結一下我在學習Hib