摘要:它是一個非常簡單的小框架或者稱為微框架也行,其目的很簡單快速地將老舊類轉變成為遠程服務,降低這類工作的難度和門檻。而采用插件的原因則在于分工明確。
這些天因為項目的需要基于Vert.x和PF4J做了一個簡單的插件式遠程服務框架dfx。它是一個非常簡單的小框架(或者稱為微框架也行),其目的很簡單:快速地將老舊Java類轉變成為遠程服務,降低這類工作的難度和門檻。
簡單到什么程度呢?這么說吧:開發者只要實現一個指定的接口,然后將其打包成一個插件并復制到dfx指定的插件目錄之下就ok了(當然,還需要修改對應的配置文件)。
至于為何選定Vert.x為支撐技術,原因在我之前的踩坑記中已經解答。而采用插件的原因則在于:
分工明確。插件開發者只需專注于業務邏輯的開發,不用去為底層各種機制(如斷路器,你沒看錯,dfx管理下的插件天然就具有斷路器功能,而插件開發者根本就沒有意識到這一點!即使無意間引入了一個慢插件,也不會殃及其他插件。)煩心。
管理的需要。除了功能的擴展性,插件系統帶來的一個附加好處就是有效控制了整個系統的代碼。即,開發新功能時不需要將整個系統的代碼clone得到處都是。從代碼安全性上來講,這無疑是絕佳的選擇。同時,這還帶來了另一個好處:編譯速度的極大改善。要是經歷過編譯3天才得到一個二機制文件,那你應該明白我在說什么,;)。
對于插件系統,我選擇的是PF4J,一個小巧的插件實現。
除了簡單和斷路器支持,dfx的還支持熱更新,只是目前的方式簡單粗暴:當發現任意一個變化(conf和插件目錄中zip包的變化)時,會重新加載整個服務,即相當于重啟。
關于dfx的詳細使用和插件的開發,可以從它的README得到更多細節。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/67993.html
摘要:基本消息對象的設計消息對象的設計主要由兩部分組成特定數據幀對應的特定消息對象。該類包含上節數據幀主幀及子幀的所有公共信息,僅僅未包含子幀中的數據體信息,該需求由基本消息對象的子類實現。 開發工程中,有一個常見的需求:服務端程序和多個客戶端程序通過 TCP 協議進行通信,通信雙方需通信的消息種類眾多,并且客戶端的數量可能有數萬個。為此,雙方需要約定盡可能豐富、靈活的數據幀「數據包」協議,...
摘要:比特幣和以太幣屬于一類區塊鏈,我們將其歸類為公共無許可的區塊鏈技術。例如,在單個企業中部署時,或由受信任的權威機構運作,完全拜占庭容錯的共識可能被認為是不必要的,并且對性能和吞吐量造成過度的拖累。 介紹 一般而言,區塊鏈是一個不可變的交易分類賬,維護在一個分布式對等節點網絡中。這些節點通過應用已經由共識協議驗證的交易來維護分類帳的副本,該交易被分組為包括將每個塊綁定到前一個塊的散列的塊...
摘要:而實際兩者之間的通信使用的是基于的自定義二進制數據幀,對象與數據幀之間需進行轉換。該類實現了編碼解碼方法,故可對消息對象進行編碼或對數據幀進行解碼。該類的靜態方法可通過指定功能消息對象生成相應的回復對象。 本文為該系列的第二篇文章,設計需求為:服務端程序和眾多客戶端程序通過 TCP 協議進行通信,通信雙方需通信的消息種類眾多。上一篇文章詳細描述了該通信協議的二進制數據幀格式以及基本 J...
項目地址 showImg(https://segmentfault.com/img/remote/1460000019380071); 什么是 Puzzle Puzzle 是基于 Vue 和 Webpack4 實現的一種項目結構;業務模塊可以像拼圖一樣與架構模塊組合,形成不同的系統,而這一切都是可以在生產環境熱插拔的;這意味著你可以隨時向你的系統添加新的功能模塊,甚至改版整個系統,而不需要全量替換...
注解 注解(一種元數據形式)提供有關不屬于程序本身的程序的數據,注解對它們注解的代碼的操作沒有直接影響。 注解有許多用途,其中包括: 編譯器的信息 — 編譯器可以使用注解來檢測錯誤或抑制警告。 編譯時和部署時處理 — 軟件工具可以處理注解信息以生成代碼、XML文件等。 運行時處理 — 可以在運行時檢查某些注解。 本課程介紹了可以使用注解的位置,以及如何應用注解,Java平臺標準版(Java S...
閱讀 1882·2021-11-11 16:55
閱讀 2064·2021-10-08 10:13
閱讀 739·2019-08-30 11:01
閱讀 2155·2019-08-29 13:19
閱讀 3277·2019-08-28 18:18
閱讀 2620·2019-08-26 13:26
閱讀 579·2019-08-26 11:40
閱讀 1864·2019-08-23 17:17