原创 在緩存和數據庫雙寫場景下,一致性是如何保證的

緩存一般是直接將數據放到離計算最近的地方(目前大部分放在內存中),解決 CPU 和 I/O 的速度不匹配的問題,用來加快計算處理速度,通常會對熱點數據進行緩存,保證較高的命中率。在互聯網的架構設計中,數據庫及緩存一般相互配合使用來滿足

原创 前端性能優化:瀏覽器緩存優化

瀏覽器緩存有多種形式,持久化或者會話存儲。以chrome爲例,打開調試面板,找到Application選項卡,就可以看到它所支持的各種緩存模式 緩存方式詳解使用情況 http緩存 分爲強緩存(200)和協商緩存(304),文章後

原创 前端性能優化:網站性能優化

網站性能優化可以從下面總結點入手。 1. 減少HTTP請求 使用雪碧圖 - CSS Sprites,把多個圖片合併到一個單獨的圖片中,利用CSS -background-position調整圖片顯示位置。這種方式適用面比較廣泛。 缺點是

原创 消息隊列的對比測試與RocketMQ使用擴展

消息隊列的對比測試與RocketMQ使用擴展     本文的主要內容包括以下幾個方面: 原有的消息技術選型 RocketMQ與kafka 測試對比 如何構建自己的消息隊列服務 RocketMQ擴展改造 RocketMQ使用經驗

原创 DB\redis\zookeeper分佈式鎖設計

多線程情況下對共享資源的操作需要加鎖,避免數據被寫亂,在分佈式系統中,這個問題也是存在的,此時就需要一個分佈式鎖服務。常見的分佈式鎖實現一般是基於DB、Redis、zookeeper。下面筆者會按照順序分析下這3種分佈式鎖的設計與實現,想

原创 分佈式事務原理及解決方案案例

事務的具體定義 事務(Transaction)是訪問並可能更新數據庫中各種數據項的一個程序執行單元(unit)。在關係數據庫中,一個事務由一組SQL語句組成。事務應該具有4個屬性:原子性、一致性、隔離性、持久性。這四個屬性通常稱爲ACID

原创 in notin exists not exists 性能優化算法總結

in notin exists not exists 性能優化算法總結 1.1. in 和 exists 區別 1.2. not in 能不能走索引 1.3. not in 和 join 的關係 1.4. 和 not Exists 的關

原创 Java 集合工具包

Java 集合工具包 Java集合是java提供的工具包,包含了常用的數據結構:集合、鏈表、隊列、棧、數組、映射等。 Java集合工具包位置是java.util.* Java集合主要可以劃分爲4個部分: List列表 Set集合 Map映

原创 常見性能優化實踐總結

常見性能優化實踐總結 一:代碼 這一點最容易引起技術人員的忽視。很多技術人員拿到一個性能優化的需求以後,言必稱緩存、異步、JVM等。有一些性能問題,完全是由於代碼寫的不合理,通過直接修改一下代碼就能解決問題的,比如for循環次數過多、作了很

原创 分佈式事務實戰方案彙總

分佈式事務: 1 CAP 定理 1.1 概念 CAP 理論在分佈式系統中 一致性:分佈式環境下多個節點的數據是否強一致 可用性:分佈式服務能一直保證可用狀態。當用戶發出一個請求後,服務能在有限時間內返回結果 分區容忍性:特指對網絡分

原创 消息隊列MQ帶來的一些問題、及解決方案

消息隊列MQ帶來的一些問題、及解決方案 RocketMQ的架構 RocketMQ由NameServer、Broker、Consumer、Producer組成,NameServer之間互不通信,Broker會向所有的nameServer註冊,

原创 如何保證 Redis 的高併發和高可用?討論redis的單點,高可用,集羣

如何保證 Redis 的高併發和高可用?討論redis的單點,高可用,集羣。 打開GitHub搜索redis,邊可以看到,該項目的介紹是這樣的: Redis is an in-memory database that persists o

原创 詳解JVM 內存結構與實戰調優總結

詳解JVM 內存結構與實戰調優總結 GC優化案例做個總結: 1在進行GC優化之前,需要確認項目的架構和代碼等已經沒有優化空間。我們不能指望一個系統架構有缺陷或者代碼層次優化沒有窮盡的應用,通過GC優化令其性能達到一個質的飛躍。 2其次,虛

原创 消息隊列初見:一起聊聊引入系統mq 之後的問題

一:爲什麼使用MQ 中小公司系統一開始體量較小,後來隨着用戶量逐漸擴大,需要把很多業務進行拆分,因此引入消息隊列來優化問題。 其通用的使用場景可以簡單地描述爲: 當不需要立即獲得結果,但是併發量又需要進行控制的時候,就是需要消息隊列的時候

原创 總結篇4:redis 核心數據存儲結構及核心業務模型實現應用場景

總結篇4:redis 核心數據存儲結構及核心業務模型實現應用場景 redis 和memcached 有什麼區別?爲什麼在高併發下,單線程的redis 比多線程的效率高? mc 可以緩存圖片和視頻,redis 支持除更多的數據結構。redi