精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

開發者需要理解的分布式原語

責任編輯:editor005

作者:Bilgin Ibryam

2017-04-27 11:38:39

摘自:INFOQ

隨著容器技術的崛起,開發人員的思維也從單主機擴展到了分布式。雖然我仍然需要使用面向對象的構件塊來創建應用程序組件

隨著容器技術的崛起,開發人員的思維也從單主機擴展到了分布式。Bilgin Ibryam在Red Hat官方博客上介紹了什么是分布式原語,以及它與進程內原語之間的聯系。本文已獲得作者翻譯授權,查看原文New Distributed Primitives for Developers。

面向對象的原語(進程內原語)

作為一個Java開發者,我熟悉面向對象概念,比如類、對象、繼承、封裝、多態,等等。除了面向對象,我也熟悉Java運行時,比如它提供了哪些特性,它是如何管理應用程序的,對象和應用程序的生命周期是怎樣的,等等。

十多年來,作為一名開發人員,我使用這些工具、原語和構建塊來創建應用程序。在我的意識里,我把類看成組件,它生成對象,并由JVM來管理它們。不過,這種模型近來在發生變化。

Kubernetes的原語(分布式原語)

我從去年開始在Kubernetes上運行Java應用程序,Kubernetes為我們引入了新的概念和工具。有了Kubernetes,我就不再局限于使用面向對象和JVM原語來實現應用程序功能。雖然我仍然需要使用面向對象的構件塊來創建應用程序組件,但也可以借助Kubernetes原語來實現部分的應用程序功能。

例如,我正在嘗試將應用程序組件單元放入獨立的容器鏡像,讓它們成為主要的構建塊。這樣我就可以使用Kubernetes提供的一系列豐富的組件來實現應用程序功能?,F在,我除了可以使用ExecutorService來實現服務定期作業,還可以使用Kubernetes的CronJob原語來定期運行容器。

Kubernetes的CronJob也提供了一些類似的基于時間的行為,不過它使用的是更加高級的組件,并依賴調度器完成動態配置、執行健康檢查,在作業完成之后關閉容器。這一切讓作業的運行更具彈性,對資源的使用也更加優化。如果我要執行應用程序的初始化操作,除了可以使用對象的構造函數,還可以使Kubernetes的init-container從更高層面來實現初始化。

腦海里的分布式模型

將本地進程內原語(面向對象和JVM特性)和由Kubernetes提供的進程外分布式原語結合起來,開發人員就可以更好地創建應用程序。在構建一個分布式的應用程序時,我的意識不再局限于一個JVM,而是擴散到一組運行著JVM的主機上。

進程內原語與分布式原語有一些共性,但它們之間不具有直接的可比性。它們運行在不同的抽象層之上,有不同的前提條件,并提供了不一樣的保證。有一些原語可以放在一起使用,比如我們使用類來創建對象,并把對象放入容器鏡像。不過有一些原語可以相互替代,比如Kubernetes的CronJob完全可以替代Java里的ExecutorService。以下列出我發現的JVM和Kubernetes之間的部分共性。

新的原語為解決問題提供了新的方式,有些重復性的方案變成了模式。可以參考“Kubernetes模式”這本書了解更多這方面的內容。

關于作者

Bilgin Ibryam是Apache軟件基金會成員,Red Hat的集成架構師,一個軟件工匠和博主。他熱愛開源,熱衷分布式系統、消息傳遞和應用集成。他同時是“Camel設計模式”和“Kubernetes模式”的作者。

鏈接已復制,快去分享吧

企業網版權所有?2010-2025 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 奉节县| 徐州市| 土默特左旗| 贡嘎县| 焦作市| 琼结县| 马山县| 榆中县| 夏邑县| 邹平县| 遵化市| 南投市| 临漳县| 逊克县| 德阳市| 黑水县| 吐鲁番市| 宿松县| 明光市| 南昌县| 炎陵县| 商水县| 仙桃市| 利辛县| 香河县| 鸡泽县| 庆阳市| 荆州市| 平陆县| 垫江县| 大庆市| 昂仁县| 虎林市| 邵阳县| 石泉县| 嘉义县| 得荣县| 洛川县| 太原市| 游戏| 泰顺县|