假設咱們用netty作服務,當接受到網絡傳輸的碼流,咱們經過某種手段將這種傳輸數據解析成了熟悉的pojo,那這些pojo該如何進一步處理?java
好比遊戲中的搶購、場景業務等,對處理那種高併發的業務場景,如何保證數據的一致性?數據庫
1.悲觀鎖和樂觀鎖編程
悲觀鎖和樂觀鎖這種,你們當即會聯想到數據庫讀寫。可是咱們仍然能夠嘗試的在獲取對象鎖上理解。數組
沒錯,鎖技術很慢。網絡
2.讀寫分離,讀寫鎖併發
3.MVCC,我曾嘗試着用java來實現相似數據庫的多版本併發控制,後面具體詳說。高併發
4.actor模型的引入線程
java版本的actor,共享線程池,使用cas,實現同一時刻只有單線程訪問,同時更高的提高了線程池的利用率。指針
5.無鎖化編程思想:像閃電同樣的disruptornetty
這種ringbuffer環形數組解決了隊列的頭尾指針和大小變量等衝突,而惟一須要關心的,就是多個生產者寫入ringBuffer的場景,
這個要仔細說。