原创 商城數據表設計
1、商品規格:採用豎表設計,規格組表+規格參數表,一個分類->多個組->多個規格參數 規格參數分組表:tb_spec_group CREATE TABLE `tb_spec_group` ( `id` bigint(20) NOT
原创 商城秒殺功能總結
秒殺系統的場景特點:高併發、請求數量遠遠大於庫存數量、下訂單減庫存。 秒殺架構設計理念:限流、削峯、異步處理、緩存、可拓展。 實現方案: 前端:頁面靜態化、禁止用戶重複提交; 後端:限流、採用消息隊列緩存、利用緩存應對讀寫請求。 使用技術
原创 Java知識點六:消息隊列與數據庫
Kafka架構原理【1】: kafka架構1、消費模式:producer使用push模式,consumer使用pull模式。 tips:如果採用 Push,消息消費的速率就完全由消費代理控制,一旦消費者發生阻塞,就會出現問題。 Kafka
原创 Java知識點七:算法
快速排序【1】 private <T extends comparable<? super T>> void quicksort (T[] targetArr, int start, int end) { int i = sta
原创 Java知識點五:緩存(Redis與Memcache)
Memcache【1】:多線程、異步IO、KV存儲、內存存儲沒有持久化、採用LRU(Least Recent Used)淘汰算法。 1、內存管理:Slab->Page,內存將按照1MB的大小劃分爲頁,而該頁內存則會繼續被分割爲一系列具有相
原创 Java知識點三:併發與多線程
CAS:首先CPU將內存中的將要被修改的數據與預期的值進行比較,如果這兩個值相等,CPU則會將內存中數值替換爲新值,否則不做操作。 Synchronized原理: Synchronized實現原理_EntryList、Owner、_Wa
原创 記錄一次請求無響應的問題定位(jstat、VisualVM)
問題場景:測試seata分佈式事務回滾 問題現象:shop模塊調用user模塊創建新的user,並在shop模塊中拋出異常,觸發全局回滾。shop模塊觸發回滾成功,但是user模塊讀取超時。而且後續向user模塊發送請求均被阻塞。 問題分
原创 Java知識點二:JVM
加載機制-雙親委派模式【1】: 對於任意一個類,都需要由加載它的類加載器和這個類本身來一同確立其在Java虛擬機中的唯一性。 雙親委派:如果一個類加載器收到了加載某個類的請求,則該類加載器並不會去加載該類,而是把這個請求委派給父類加載器,
原创 微服務分佈式事務組件Seata使用指南
Seata原理(轉自官方文檔:https://github.com/seata/seata/wiki/%E6%A6%82%E8%A7%88) Transaction Coordinator (TC): 事務協調器,維護全局事務的運行
原创 Tech Lead(用於個人收藏)
上上週末,蹭了一個公司的 Tech Lead 培訓—— Coach 來自 ThoughtWorks 中國區的兩個資深 Tech Lead 和 ThoughtWorks 澳大利亞聯邦區的資深 Tech Lead。兩天的培訓下來,學習到了
原创 Vue開發中的優秀實踐(持續更新)
1、路由跳轉時的loading組件:nprogress; 2、store自動讀取並註冊所有模塊: /** * 讀取./modules下的所有js文件並註冊模塊 */ const requireModule = require.con
原创 《Javascript設計模式與開發實踐》關於設計模式典型代碼的整理(上):單例模式、策略模式、代理模式、迭代器模式、發佈-訂閱模式、命令模式、組合模式
1、單例模式:保證一個類僅有一個實例,並提供一個訪問它的全局訪問點。 使用閉包封裝私有變量 // 使用閉包創建單例 var user = (function () { var _name = 'sven', _
原创 《Javascript設計模式與開發實踐》關於設計模式典型代碼的整理(下):模板方法模式、享元模式、職責鏈模式、中介者模式、裝飾模式、狀態模式、適配器模式
8、模板方法模式:一種基於繼承的設計模式。 // 模板方法模式 var Beverage = function (param) { var boilWater = function () { console.l
原创 erget項目基本流程入門
本文通過白鷺官方示例程序(一分鐘掰彎工廠)爲例,初步學習分析一個遊戲的基本流程。 1、加載配置:入口文件爲Main.ts,創建任何遊戲第一都是要創建stage,在stage創建完成後通過json配置加載資源庫,
原创 組件化
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>test</title> <script src="http://code.jquery.com/jque