原创 Mysql 不同實例的表結構字段對比實踐

兩臺實例如果需要進行表結構對比時,一旦涉及的表過多或者字段過多,對比起來非常麻煩。 這時候沿用Mysql SQL問題mysql Illegal mix of collations for operation UNION 排查解決思

原创 Mysql SQL問題mysql Illegal mix of collations for operation UNION 排查解決思路

最近在做數據庫的遷移的時候發現一個查詢SQL執行不了,發生異常: mysql Illegal mix of collations for operation 'UNION’ 頭挺大,一番搜索發現是表字段的字符集的問題。 但是聯想到

原创 Java讀寫鎖ReentrantReadWriteLock之鎖降級案例

之前瞭解讀寫鎖的時候,只知道讀讀共享,讀寫互斥。 當線程先獲取到寫鎖,然後再去獲取讀鎖時,接着再釋放寫鎖。這個過程叫做鎖降級。 如果當前線程先獲取讀鎖,然後再去獲取寫鎖,這個時候會出現死鎖的情況。 這個時候小腦袋瓜就開始嗡嗡作響了

原创 純乾貨:大對象導致FullGC頻繁的原因及實踐思路

今天在檢查線上環境的時候,發現了在2分鐘內出現了2次FullGC。 雖然對線上功能影響不是很大,但還是想一探究竟。 線上監控得到的信息: 可以看到從短時間內有了2次GC,從13次直接飆到15次。 然後看了下老年代的堆情況: 可

原创 第三方接口對接之鑑權

第三方接口對接 鑑權 記錄一次和第三方接口對接的過程。 對接要求 對方的接口做了加密驗證,需要將參數進行加密生成一個Signature簽名。然後對方也會根據參數做一樣的步驟來比對簽名是否相等來判斷參數是否被篡改或者判斷身份是否一致

原创 SpringJdbcTemplate 批量新增返回自增編號功能

因爲業務上有些功能是希望批量新增的數據能夠返回對應的自增主鍵,單條的JdbcTemplate實現很簡單,但是批量的話,可能需要稍微改造一點點。 因爲我們的框架內部是在jdbctemplate上封裝了一點點,所以就這一部分上加入了通

原创 Spring好用的功能點:ApplicationEvent監聽器

Spring整個體系包含着很多有意思的功能點,有可能你還不知道,自己手動去實現一套,不僅麻煩而且耗費時間,可以多瞭解瞭解探索發現Spring很多已經弄好的功能點。 ApplicationListener 做什麼? 用來監聽所修飾的

原创 純乾貨:線上出現fullGC次數很多的排查思路以及實踐總結

最近線上發佈了一個版本,導致full gc次數忽然就上去了,雖然對線上業務造成的影響還不是很大,但是爲了以防萬一還是對這個問題做了相關排查。 GC命令排查 一開始還是從堆的變化開始: # 查看每秒的堆發生的變化以及gc的次數

原创 SpringMVC篇: 入參出參通過JsonProperty屬性轉換

工作中會遇到和前端對接的相關事宜,很多時候可能是並行開發,但是很多時候這個數據結構到底是前端定義還是後端給出一直有點模糊不清。 問題: 如果是前端定義,後端把接口開發完成之後,發現數據和你的名稱對不上,可能需要進行格式轉換,比較

原创 Spring與Mybatis集成的相關實現類流程

一直很喜歡Myabtis功能與Spring集成的非常不錯,對開發效率有很大的提高。之前一直很想了解Mabatis的相關流程思路,與Spring是如何去集成的。 下面我們來看一下很多關鍵的類的相關流程: 注意上圖是發生在Spri

原创 ReentrantLock中Condition的wait方法、signal方法簡單場景回顧

這裏不講代碼,只是用圖大概描述Condition在ReentrantLock中做了一件怎麼樣的事情。 流程描述 Lock lock = new ReentrantLock(); Condition condition = lock

原创 jenkins遠程執行python啓動腳本報自定義包找不到:ModuleNotFoundError

最近項目有一個python的項目需要發佈環境,想着應該和java的部署流程差不多: 從git上拉取指定分支的代碼 上傳到指定服務器 運行指定遠程服務器上的重啓腳本 整個過程想想都覺得沒啥大問題. 但是… 轉角就是一個模塊異常

原创 基於Netty編寫的聊天室

基於Netty編寫的聊天室 運行方式 啓動類 : com.lkx.code.netty.chat.server.ChatServer 訪問路徑 : http://localhost:8080 運行流程 localhost:8080

原创 手寫Netty版本的簡易tomcat以及實現部分SpringMVC功能

手寫Netty版本的簡易tomcat以及實現部分SpringMVC功能 實現思路 首先加載配置文件。 將配置文件中的掃描包進行位置掃描 解析類結構 根據註解將URL以及實例信息進行關聯 構建一個Netty的服務端,負責阻塞

原创 SpringBoot整合Quartz動態執行調度

Spring boot Quartz 相關資料 構建Mysql表:SQL腳本 屬性文件參考:quartz.properties 搭建環境 該項目是基於SpringBoot環境搭建,請搭建之前可以將SQL腳本先在數據庫中進行執行。