开发人员的新分布式基元
面向對象的原語(進程中的原語)
作為Java開發人員,我非常熟悉面向對象的概念,例如類,對象,繼承,封裝,多態性等。除了面向對象的概念之外,我還非常熟悉Java運行時。它提供的功能,如何調整它,如何管理應用程序,對象和整個應用程序的生命周期等等。
十多年來,所有這些都是我使用開發人員創建應用程序的主要工具,原語和構建塊。 在我的思維模型中,我將使用類作為組件,這將產生由JVM管理的對象。 但是這種模式最近已經開始改變。
Kubernetes基本體(分布式基本體)
去年,我開始在Kubernetes上運行Java應用程序,這引入了新的概念和工具供我使用。 使用Kubernetes,我不僅僅依賴于面向對象的概念和JVM原語來實現整個應用程序行為。 我仍然需要使用面向對象的構建塊來創建應用程序的組件,但是我也可以將Kubernetes原語用于某些應用程序行為。
例如,現在我努力將應用程序行為的單位組織到獨立的容器映像中,這些映像成為主要的構建塊。 這使我可以使用Kubernetes提供的一組新的豐富構造來實現應用程序行為。 例如,現在我不僅僅依賴ExecutorService的實現來定期運行某些服務,而且還可以使用Kubernetes CronJob原語定期運行我的容器。 Kubernetes CronJob將提供類似的時間行為,但使用更高級別的構造,并依賴調度程序進行動態放置,執行運行狀況檢查并在作業完成時關閉容器。 所有這些最終帶來了更具彈性的執行力,同時還具有更好的資源利用率。 如果我想執行一些應用程序初始化邏輯,則可以使用對象構造函數,但也可以在Kubernetes中使用init-container進行更高級別的初始化。
分布式心理模型
具有面向對象概念和JVM功能形式的進程內原語,再加上Kubernetes提供的分布式進程外原語,為開發人員提供了更豐富的工具集,可用于創建更好的應用程序。 在構建分布式應用程序時,我的思維模式不再局限于JVM,而是分布在幾個節點上,多個JVM協同運行。
進程內原語和分布式原語具有共同點,但不能直接比較和替換。 它們以不同的抽象級別運行,具有不同的前提條件和保證。 某些原語應該一起使用,例如,我們仍然必須使用類來創建對象并將它們放入容器圖像中。 但是其他一些原語(例如Kubernetes中的CronJob)可以完全替代Java中的ExecutorService行為。 我在JVM和Kubernetes中找到了一些共同點,但這里不再贅述。
隨著時間的流逝,新的原始方法催生了解決問題的新方法,其中一些重復的解決方案成為了模式。 查看我的進度
Kubernetes模式書就是這種思路。
翻譯自: https://www.javacodegeeks.com/2017/04/new-distributed-primitives-developers.html
總結
以上是生活随笔為你收集整理的开发人员的新分布式基元的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑玩安卓游戏用什么模拟器好(电脑玩安卓
- 下一篇: 上饶县房管局备案查询网(上饶县房管局备案