原创 java隊列學習 deque和queue

老是記不住peek poll 啊啥的一大堆的操作,記錄一下區別deque接口addFirst addLastofferFirst offerLastremoveFirst removeLastpollFirst pollLastgetFi

原创 springmvc controller相關注解源碼位置

流程大致是dispatcherServlet => RequestMappingHandlerAdapter => invokeHandlerMethod=>ServletInvocableHandlerMethod源碼分析可以參考htt

原创 leetcode刷題總結 1-100

leetcode   1. Two Sum 維護2個指針即可 2. Add Two Numbers 類似於大數相加 3. Longest Substring Without Repeating Characters 找最長的不出現重複字符

原创 Quartz工具類

官方的學習文檔 http://www.quartz-scheduler.org/generated/2.2.1/html/qs-all/ package com.xh.market.business.time.service; imp

原创 分佈式鎖實現

數據庫實現 利用唯一索引 插入刪除數據 注意死鎖 系統崩潰的情況 zookeeper 分佈式鎖可以使用curator庫的InterProcessMutex redis 參考 http://wudashan.cn/2017/10/23/Re

原创 設計模式——結構型

7種適配器模式對於某些接口不一致的情況,可以用適配器模式,比如springmvc中的HandlerAdaptermybatis中的routingstatementhandler,找到對應的statementhandler,simplest

原创 git reset

回退到某個版本 例子  寫文件a git add a.txt  git commit -m 'a' 寫文件b git add b.txt  git commit -m 'b'   這時候 git reset --mixed HEAD^ 

原创 分佈式事務中間件myth研究總結

查看的源碼是master分支 時間2018.04.10這一款分佈式事務中間件是基於mq進行補償不支持回滾 所以發起rpc操作就意味着成功,注意調用的順序比如現在有一個發起者和兩個提供者,發起者需要調用2個提供者暴露的服務先看發起者發起者在

原创 future

java6 實現和java7及以上是不一樣的java6使用了aqs,而後者並沒有java7實現futuretask主要看awaitDone run removeWaiter 3個方法get獲取的結果的時候會阻塞 調用awaitDone,會

原创 設計模式——行爲型

11種策略模式做同一件事情不同的方法,項目中都很多規則,每一種格式不一樣,用了策略模式使用不同的策略解析模板方法模式父類定義一個流程,子類去實現觀察者模式可以用來做滿足某種條件觸發的一些工作迭代子模式java中的迭代器就是責任鏈模式spr

原创 架構的一些考慮點

異地多活? 彈性擴容? 數據的備份 如消息隊列 es 數據庫等 容災切換包含了“數據庫切換”“緩存容災切換”“多活規則切換”“中間件切換”“負載均衡切換”“域名解析切換”等多個環節

原创 一些sql題

給一個,一個表記錄了某論壇會員的發貼情況,存儲了會員id ,發貼時間和內容。找出連續發貼n次及以上的會員。 一個表存了用戶ID,用戶上線時間和下線時間,用戶一天中可多次上線下線,求這一天中哪個時刻在線人數最多,sql如何實現? 每一行是1

原创 mybatis一級緩存和InnoDB一致性非鎖定讀

突然發現mybatis的一級緩存和InnoDB一致性非鎖定讀不謀而合啊 之前一直覺得 你開啓事務的情況下 查詢之後接下來如果繼續查詢 中間沒有增刪改,那你是查不到其他事務的修改的結果的。 現在發現InnoDB一致性非鎖定也是這樣啊 你開啓

原创 mysql死鎖問題收集

2019-01-27 10:45:20 0x7f47600bd700 *** (1) TRANSACTION: TRANSACTION 1164073413, ACTIVE 0 sec inserting mysql tables in

原创 在線數據遷移的一點想法

方案: 上線代碼中啓動的時候獲取表中最大的id,記爲maxId,然後如果insert 插入新的庫,查詢刪除修改判斷id是否大於maxId,如果是走新庫。對於小於等於maxId的數據走老庫,同時監聽binlog ,發到消息隊列堆積,暫不消費