原创 DNS的解析,查詢,調度原理是什麼?什麼是DNS劫持,污染?如何監控?

DNS的核心工作就是將域名翻譯成計算機IP地址, 它是基於UDP協議實現的,本文將具體闡述DNS相關的概念,解析,調度原理(負載均衡和區域調度)等DNS相關的所有知識點。 @pdai 網絡協議 - DNS 相關詳解 DNS簡介 域

原创 SpringBoot定時任務 - Spring自帶的定時任務是如何實現的?有何注意點?

通過前文我們基本梳理了定時任務體系:Timer和ScheduledExecutorService是JDK內置的定時任務方案,以及Netty內部基於時間輪實現的HashedWheelTimer,再到Quartz以及分佈式任務(Elastic

原创 SpringBoot定時任務 - 經典定時任務設計:時間輪(Timing Wheel)案例和原理

Timer和ScheduledExecutorService是JDK內置的定時任務方案,而業內還有一個經典的定時任務的設計叫時間輪(Timing Wheel), Netty內部基於時間輪實現了一個HashedWheelTimer來優化百萬

原创 SpringBoot定時任務 - 開箱即用分佈式任務框架xxl-job

除了前文介紹的ElasticJob,xxl-job在很多中小公司有着應用(雖然其代碼和設計等質量並不太高,License不夠開放,有着個人主義色彩,但是其具體開箱使用的便捷性和功能相對完善性,這是中小團隊採用的主要原因);XXL-JOB是

原创 SpringBoot定時任務 - 什麼是ElasticJob?如何集成ElasticJob實現分佈式任務調度?

前文展示quartz實現基於數據庫的分佈式任務管理和job生命週期的控制,那在分佈式場景下如何解決彈性調度、資源管控、以及作業治理等呢?針對這些功能前噹噹團隊開發了ElasticJob,2020 年 5 月 28 日ElasticJob成

原创 SpringBoot集成文件 - 如何集成itextpdf導出PDF?itext的變遷?

除了處理word, excel等文件外,最爲常見的就是PDF的導出了。在java技術棧中,PDF創建和操作最爲常用的itext了,但是使用itext一定要了解其版本歷史和License問題,在早前版本使用的是MPL和LGPL雙許可協議,在

原创 SpringBoot集成文件 - 如何基於POI-tl和word模板導出龐大的Word文件?

前文我們介紹了通過Apache POI通過來導出word的例子;那如果是word模板方式,有沒有開源庫通過模板方式導出word呢?poi-tl是一個基於Apache POI的Word模板引擎,也是一個免費開源的Java類庫,你可以非常方便

原创 SpringBoot定時任務 - 集成quartz實現定時任務(單實例和分佈式兩種方式)

最爲常用定時任務框架是Quartz,並且Spring也集成了Quartz的框架,Quartz不僅支持單實例方式還支持分佈式方式。本文主要介紹Quartz,基礎的Quartz的集成案例本,以及實現基於數據庫的分佈式任務管理和控制job生命週

原创 SpringBoot集成文件 - 如何使用POI導出Word文檔?

前文我們介紹了通過Apache POI導出excel,而Apache POI包含是操作Office Open XML(OOXML)標準和微軟的OLE 2複合文檔格式(OLE2)的Java API。所以也是可以通過POI來導出word的。本

原创 SpringBoot集成文件 - 集成POI之Excel導入導出

Apache POI 是用Java編寫的免費開源的跨平臺的 Java API,Apache POI提供API給Java程序對Microsoft Office格式檔案讀和寫的功能。本文主要介紹通過SpringBoot集成POI工具實現Exc

原创 一文深入淺出理解國產開源木蘭許可系列協議

伴隨着國際形式的變遷,越來越多組織申明將遵循美國出口管制法律的約束,並且蔓延到了開源領域;關於國內開源生態如何自立,做到在逼不得已無法與國際接軌的情況下能夠健康發展的措施也被提上議程,木蘭系列許可證系列由此誕生。木蘭系列許可證系列(包含“

原创 SpringBoot數據庫管理 - 用flyway對數據庫管理和遷移

上文介紹了Liquibase,以及和SpringBoot的集成。除了Liquibase之外,還有一個組件Flyway也是經常被使用到的類似的數據庫版本管理中間件。本文主要介紹Flyway, 以及SpringBoot集成Flyway。@pd

原创 SpringBoot數據庫管理 - 用Liquibase對數據庫管理和遷移?

Liquibase是一個用於用於跟蹤、管理和應用數據庫變化的開源工具,通過日誌文件(changelog)的形式記錄數據庫的變更(changeset),然後執行日誌文件中的修改,將數據庫更新或回滾(rollback)到一致的狀態。它的目標是

原创 SpringBoot接口 - API接口有哪些不安全的因素?如何對接口進行簽名?

在以SpringBoot開發後臺API接口時,會存在哪些接口不安全的因素呢?通常如何去解決的呢?本文主要介紹API接口有不安全的因素以及常見的保證接口安全的方式,重點實踐如何對接口進行簽名。@pdai SpringBoot接口 - A

原创 SpringBoot接口 - 如何生成接口文檔之非侵入方式(通過註釋生成)Smart-Doc?

通過Swagger系列可以快速生成API文檔,但是這種API文檔生成是需要在接口上添加註解等,這表明這是一種侵入式方式; 那麼有沒有非侵入式方式呢, 比如通過註釋生成文檔? 本文主要介紹非侵入式的方式及集成Smart-doc案例。我們構建