原创 mybatis 一級緩存二級緩存要點

慣例,不介紹概念,這裏記錄需要記錄的要點: 緩存通過HashMap實現 一級緩存作用域是sqlSession,默認開啓,在高併發或者分佈式(每個節點有自己的緩存)的情況下會產生髒數據。所以建議 一級緩存級別調成 statemen

原创 gin框架和xorm踩坑記錄

記錄一下實操過程中遇到的問題或者疑惑,也有一些是需要注意的點,既然花了時間解決就值得記錄下來   required認爲值爲0不通過校驗 背景: gin框架中一般用通過定義結構體中的字段Tag標籤來設置參數校驗規則和解析字段名,轉js

原创 gin框架源碼閱讀筆記:RouterGroup部分

engines包下:這個結構體是中間件和controller方法的格式: type HandlerFunc func(*Context)     加粗部分是比較重要的變量/結構體,上下文一半會提到   RouterGroup相關: 路由組

原创 分庫分表存在的問題

  分佈式事務的問題 跨節點 Join 的問題 跨節點合併排序分頁的問題 多數據源管理問題 額外的數據管理負擔和數據運算壓力 擴容與部署對線上的影響   事務問題 在執行分庫分表之後,由於數據存儲到了不同的庫上,數據庫事務管理出現了困難。

原创 awk學習總結

本文算是學習的總結,整體是按照菜鳥教程的流程一步步練習的,多一些自己的理解 AWK: awk [選項參數] 'script' var=value file(s) awk [選項參數] -f scriptfile var=value

原创 nssm把jar包製作成windows服務遇到的問題(無法啓動服務,服務器並未返回錯誤)

關於nssm的用法網上很多,不再贅述,這次的應用場景是把jar包製作成windows服務,遇到了一些問題資料比較少記錄一下 啓動路徑指向一個bat文件 第一個問題就是製作完,服務起不來,錯誤如圖: 查到網上有人遇到過:https://b

原创 mysql隔離級別要點

不介紹概念,記錄要點 mysql對acid的實現 隔離性的實現原理就是鎖,因而隔離性也可以稱爲併發控制、鎖等。 事務的隔離性要求每個讀寫事務的對象對其他事務的操作對象能互相分離。 原子性、一致性和持久性由數據庫的 redo log 和 u

原创 JAVA----靜態方法上加鎖 和 非靜態方法加鎖 區別

Synchronized修飾非靜態方法,是對調用該方法的對象加鎖,俗稱“對象鎖”。 這裏的對象加鎖並非是說執行該加鎖方法的時候整個對象的所有成員都不允許其他線程訪問了, 而是說該對象內所有的加鎖的非靜態方法共用這一把鎖, 一個加鎖非靜態方

原创 sql語句正確mybatis查找不出結果不報錯----映射關係不能加表名.列名

問題描述:  項目中需要多表查詢時相同的列起了別名, 在mybatis中查詢無法得到left join的表中對應信息, 只有主表的信息 在數據庫中直接測試sql語句排除了語句問題, 也沒有報錯, 所以不是哪裏敲錯了  最後關注在別名的問題

原创 go語言使用olivere/elastic es客戶端實現SearchAfter深度分頁

我們go項目裏使用的es客戶端是olivere/elastic包,資料比較少,SearchAfter的實現更是少,所以記錄下來給有緣人,也給記性差的自己。 關於深度分頁、淺分頁的區別優缺點另行了解,我的es版本是6.4,過低版本會不支持

原创 goland debug : could not launch process: decoding dwarf section info at offset 0x0: too short

這是一個卡了我兩天的報錯(痛心),先上解決辦法: 解決辦法: go build去掉參數 -ldflags "-w" goland啓動的時候會帶上你設置的啓動參數(如果你設置了) 背景: 我有兩個go項目,項目A go版本 (1.13)什麼

原创 go單例實現—雙重檢測是否安全

起因 今天看到項目中的kafka客戶端包裝結構體的獲取是單例模式<br>單例的實現是老生常談的問題了,懶漢餓漢線程安全,因爲看到項目中寫的還是有些問題,網上go單例實現的搜索結果比較少經測試也並不靠譜,所以在這記錄下 現狀 當前有的項目直

原创 go同名字段複製工具函數(類似BeanUtils.copy)介紹和性能測試

介紹說明: 本文是在介紹一個go的不同類型結構體的複製工具函數,能減少重複勞動,提高開發效率,讓代碼可讀性強,減少出錯機率 本篇包含背景的介紹,工具函數源碼的展示,性能測試等部分 問題背景: 故事的起因是看到了業務代碼裏有些字段比較多的部

原创 可達性分析算法中,哪些可以作爲 root?

java垃圾回收的可達性分析算法, 列舉可以作爲root的對象:  由於網上的博客回答都不全, 找了份來自help.eclipse.org的, 先上原文與連接供大佬參考, 後邊掛上垃圾翻譯, 不接受關於翻譯的質疑! (認真臉) https

原创 Mybatis中and和循環or混用 (or轉換成in)

這次項目用到一個and和or混用的場景 , 因爲用到多個or(循環), 沒想到好的辦法 最終轉換成用 IN實現: 場景: 用left join鏈接多個表, 多個條件and篩選, 其中狀態(state)條件篩選出多個可選狀態的條目, 本來想