原创 SpringBoot整合Shiro

  兜兜轉轉,轉眼已經進入12月中旬了,馬上就是2020年了,回顧這一年,技術上,真的提升很少很少,項目中使用的技術都是很老套的SpringMvc+MyBatis,有的老項目還使用的是Struts2+Hibernate,公司對技術也不重視

原创 java識別驗證碼

  之前在做數據覈對部分工作,需要獲取廠商的數據,有的廠商提供了api,可以直接通過api拿到數據;有的就沒api,這部分,只能去它們後臺獲取了,那就需要爬蟲,但是,過程中,又碰到登陸的驗證碼。這裏記錄一下識別驗證碼的過程。 使用tess

原创 git 回滾到指定版本

1.切換到分支 git checkout testBrand 2.獲得版本號 git log   查詢歷次提交記錄,得到版本號,比如,當前是“測試03”版本,要回滾到“測試02”版本,這裏需要的版本號是 0090e3e75719

原创 docker開啓consul後 莫名連不上8500端口

  一個新項目,需要本地跑docker環境,配置完後,一切正常。過了幾個小時,項目就各種報錯,然後就全部不能用了,排查下來,原來是項目連consul超時了,導致後續都走不下去了   然後就看consul出啥問題了,在docker下查看進程

原创 MySQL中IN對NULL的處理

  先說結論,MySQL中NULL是不參與計算的,對NULL進行計算,只可以使用預設的IS NULL和IS NOT NULL來操作   student表中,有三條數據,id分別是1、2、3 SELECT * FROM s

原创 記一次FileNotFoundException異常

  同事提交了代碼,就回去過春節了,今天,業務人員來說他昨天修改的東西有問題,要我處理。看了下日誌,發現是這個很easy的異常 java.io.FileNotFoundException: \excel-templates\123 (系

原创 2PC和後置提交

  分佈式事務,常見的是2pc、tcc   2pc是分爲兩個階段:preCommit和commit,多個節點preCommit成功,協調者再通知各節點,去commit   tcc是try-confirm-cancel,try階段是各節點去

原创 javax.crypto.BadPaddingException

  錯誤信息: javax.crypto.BadPaddingException: Given final block not properly padded. Such issues can arise if a bad key is

原创 kafka是如何實現高性能的寫入和讀取的?

寫    頁緩存(page cache) + 順序寫入磁盤    頁緩存:操作系統的內存緩存,kafka寫入是寫入到內存緩存,然後再從內存緩存刷到磁盤    順序寫入:一般情況,寫磁盤是需要尋找適宜的磁盤空間的。kafka改變策略,直接在

原创 RSA+Base64工具類

   RSA+Base64工具類 RSA加密後的,需要進行base64 /** * BASE64工具類 * * @author Frank.Z * */ public class Base64Utils { static pr

原创 mysql使用double的坑

  碰到一個很奇葩的問題,mysql默認是四捨五入的,但是,使用double,有時候不四捨五入。 犯罪現場還原 表結構 CREATE TABLE `test` ( `salary_decimal` decimal(11,2) DEF

原创 數據庫分表後 如何優雅的擴容

停服方案   很low的方式,【停服方案】,先發公告,再停機,再遷移數據,測試沒問題再發布。   雙倍擴容法   按id取膜,假設,開始是 %2, %2=0 –>庫0 %2=1 –>庫1   1.雙倍擴容,擴容後是四個, %4 庫0和庫1

原创 jdk7和8 內存可見性上的一個小細節

  在看一篇關於jvm內存可見性的文章的時候,無意中發現了jdk7和jdk8在處理上的細微差別,導致了兩種截然不同的效果:jdk7(文中使用的是1.7.0_67)會順利執行完;jdk8(文中使用的是1.8.0_192)會一直卡住。   下

原创 java實現單鏈表、雙鏈表、環鏈表

  鏈表是程序裏重要的數據結構,在程序世界運用很廣泛,衆所周知的當屬於jdk裏的linkList了。   鏈表的優點,是相對於數組來說,擴容是非常快的,如果是數組擴容,數組是新申請一個更大空間的數組,然後把老數組內的數據複製到新數組;而鏈