原创 sbt快速入門
sbt類似與maven, gradle的項目管理工具,主要用在scala,也可以用在java項目,本文介紹一下常用的使用命令和語法 安裝 mac brew install sbt redhat¢os # remove
原创 Elastic Stack內置nginx日誌收集
Elastic Stack內置對很多常用軟件日誌的收集和字段處理,本文介紹最常用的nginx 在Elastic Stack安裝使用後,打開Kibana頁面,開始進入內置的Nginx數據收集配置嚮導 第一步:添加數據 第二步:
原创 Postman - 使用pre-request-script動態計算簽名
OpenApi一般都有簽名,在對接的時候,不管文檔寫得多麼完善,總是會有人不明白,所以可以提供一個Postman的Collection,裏面包含了簽名邏輯 整體思路 每個對接方分配一對appKey和appSecret,其中appSec
原创 Elastic Stack安裝使用
Elastci Stack分析日誌的利器,其中最重要的組件有ElasticSearch, Kibana, Logstash, Filebeat,本文記錄快速搭建步驟,以及收集nginx的日誌 安裝ElasticSearch https:
原创 使用公鑰完成簽名驗證
在對接微信支付接口時,需要對微信支付返回的信息進行簽名驗證,防止中間人攻擊,替換微信支付返回的結果 整體過程 微信支付生成簽名:私鑰 + 內容 -> signature 調用方驗證簽名:公鑰 + 內容 驗證 signature 示例
原创 使用Postman批量測試接口
Postman功能強大,還可以用來做接口測試,也可以方便使用不同的參數批量調用,本文介紹如何從文件中加載參數,然後批量調用接口並驗證結果 批量測試接口 創建接口請求集合 使用{{xxx}}作爲佔位符,實際運行的時候會用文件中的參數替
原创 使用Arthas實現熱更新代碼
在定位問題或快速驗證問題的時候,如果還需要編碼、推送到倉庫、在編譯發佈,整個流程會比較長,我們可以使用Arthas完成熱修改代碼,實時看到最新效果 啓動arthas curl -O https://arthas.aliyun.com/a
原创 Spring Boot支持多Redis數據源
項目需要把自建redis遷移到雲服務,因爲無法做到業務無感遷移,所以業務遷移時,部分數據需要雙讀,因此需要支持多Redis數據源 支持多Redis數據源 配置信息application.yml spring: redis:
原创 如何做好一個feature owner
啓動階段 瞭解feature特性,背景,價值 價值如何體現,上線後是否有校驗的方法 記錄特性啓動前的現狀,比如性能,投訴率,下單量等;上線後再進行對比 輸出:特性啓動書 開始階段 方案確定:輸出方案文檔,給出整體方案以及關鍵路徑的設計
原创 如何閱讀開源項目的源碼
一個開源項目源碼文件一般都有數千甚至更多,如果直接從源碼開始閱讀,很容易陷入到複雜的代碼邏輯中,其實閱讀源碼最好的辦法就是一開始不要去看源碼 上手體驗 開源項目一般都有一個Quick Start欄目,可以讓人快速體驗,建立感性認識
原创 5分鐘實現第一個Flink程序
因爲網絡上很多資料都過時了,有的是版本太老了,本文針對最新版本的1.13.2快速構建一個WordCount程序 項目介紹 本文創建一個可以從網絡上讀取輸入,然後每5秒鐘輸出每個單詞個數的項目 創建maven項目 mvn archetyp
原创 Mac安裝MAT(Memory Analyzer Tool) 安裝MAT
Java服務遇到了內存泄露的問題,一般使用MAT分析,可以定位到哪一個類以及其依賴的類佔用了最多的內存。 但是MAT新版本依賴Java 11,安裝的時候還遇到了一些小麻煩。 安裝MAT 下載: https://www.eclipse
原创 SOLID-如何實現開閉原則
開閉原則,就是對擴展開放,對修改關閉,是SOLID最重要的一條原則,大部分的設計模式都是爲了實現開閉原則 如何寫出符合開閉原則的代碼 時刻具備擴展意識、抽象意識、封裝意識 開發設計的時候,需要提前設計,並預留擴展點,但是也不能陷入過度
原创 SOLID - 如何應用接口隔離原則
接口隔離原則,客戶端不應該被強迫依賴它不需要的接口。其中的“客戶端”,可以理解爲接口的調用者或者使用者。 判斷標準 從接口調用方來判斷,是否提供了多餘的能力 也就是增加不必要的依賴,而且會造成調用方使用的困惑 與單一職責原則的區別
原创 如何開始DDD領域驅動設計
最近從多種不同渠道瞭解到DDD領域驅動設計,對複雜業務的設計具有特別好的效果,本人負責的是電商業務的交易系統,正好是很適合的。 那麼應該怎麼把當前數據庫驅動設計切換DDD呢? 數據庫設計驅動特點 一般分爲Controller, Ser