原创 大量CLOSE_WAIT導致服務不可用的原因解析

1.現象 商旅通服務沒有宕機,服務CPU,磁盤,內存,網絡均正常,但就是一直不提供服務。 2.定位問題 出現服務不可用時,最重要的是要定位出原因,出於經驗考慮,當服務不可用時,優先考慮服務本身的問題。最直接的方法就是查看服務不可用

原创 系統運行緩慢,CPU 100%,以及FULL GC次數過多問題的排查思路

對於線上系統突然產生的運行緩慢問題,如果該問題導致線上系統不可用,那麼首先需要做的就是,導出jstack和內存信息,然後重啓系統,儘快保證系統的可用性。這種情況可能的原因主要有兩種: 代碼中某個位置讀取數據量較大,導致系統內存耗盡

原创 一次SPRING聲明式事務失效的探討

楔子 現在在Spring開發過程中使用聲明式事務的次數要遠遠大於編程式事務,這一切都要歸功於聲明式事務讓我們從複雜的事務處理中解脫出來。它會自動幫我們進行獲取連接,關閉連接、事務提交、回滾、異常處理等操作。正因爲這一切都是Spri

原创 gradle第三方Jar包依賴統一管理

1. 背景 一個gradle的工程中往往包含很多的子工程,每個子工程都有其自己的Jar包依賴。現實情況是各個子工程對jar包的引入都是比較隨意的,版本號各式各樣,如何統一各個子工程的版本號?統一管理第三方依賴? 版本號統一後,若某

原创 Vert.x(vertx)入門資料

1.vert.x簡介 vert.x 採用類似 Node.js 的 eventloop callback 機制,優勢是 Eventloop 是單線程場景下幾乎是最快的併發解決方案,但也需要周邊生態的支持,比如 DbClient/Ht

原创 性能測試工具 wrk,ab,locust,Jmeter 壓測結果比較

前言 在開發服務端軟件時,經常需要進行性能測試,一般我採用手寫性能測試代碼的方式進行測試,那有什麼現成的好的性能測試工具嗎? 性能測試工具 wrk,ab,locust,Jmeter 壓測結果比較 詳見: 性能測試工具 wrk,a

原创 兩個長數字相加

1.編程題目 題目:要實現兩個百位長的數字直接相加 分析:因爲數字太長所以無法直接相加,所以採用按位相加,然後組裝的方式。(注意進位) 2.編程實現 package com.sino.daily.code_2019_6_29;

原创 圖片輕鬆轉文字-天若OCR

1.楔子 工作中經常需要把圖片中的文字、字符轉爲可編輯的文本? 你還停留在手動敲擊的原始社會嗎?那就太OUT了 使用圖片轉文字的OCR軟件可以方便的解放生產力 2.天若OCR簡介 天若OCR,只有1.4M,但是識別度非常的高,特別

原创 nginx配置ngx_http_sub_module

1.前言 nginx的ngx_http_sub_module模塊,可以用於修改網站響應內容中的字符串,如過濾敏感詞。第三方模塊ngx_http_substitutions_filter_module,彌補了ngx_http_sub

原创 獲取所有classpath指定包下類的所有子類

1.問題 開發過程中,有時需要找到所有classpath下,特定包下某個類的所有子類,如何做到? 2. 實現 比較常見的解決方案是自己遍歷目錄,查找所有.class文件。 下面這個方法使用spring工具類實現,簡化過程,不再需要

原创 spring boot 創建no-web應用

1. 問題 不是所有的Spring應用都必須是web應用(或web服務)。如果你想在main方法中執行一些代碼,但需要啓動一個Spring應用去設置需要的底層設施,那使用Spring Boot的SpringApplication特

原创 Jenkins自動構建部署項目

1. 楔子 在實際開發中,經常需要編譯、靜態代碼檢查、自動化測試、打包、部署、啓動等一連串重複機械的動作,浪費時間、而且容易出錯,而Jenkins就是專門Continuous integration(CI)/ Continuous D

原创 Spring Cloud入門教程

一個非常好的Spring Cloud入門教程系列。推薦下: Spring Cloud入門教程系列

原创 看完這個不會配置 logback ,請你吃瓜!

之前在 日誌?聊一聊slf4j吧 這篇文章中聊了下slf4j。本文也從實際的例子出發,針對logback的日誌配置進行學習。 logack 簡介 logback 官網:https://logback.qos.ch/ 目前還沒有看過日誌