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

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

責任編輯: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>
      主站蜘蛛池模板: 通河县| 沁水县| 汝阳县| 浮梁县| 新泰市| 泗洪县| 宁河县| 鄯善县| 乐陵市| 安多县| 长兴县| 东兰县| 鲜城| 双城市| 溧阳市| 翁源县| 来宾市| 永寿县| 恩平市| 东阿县| 阿荣旗| 连南| 松滋市| 徐汇区| 中宁县| 诸暨市| 榆中县| 遂昌县| 阳原县| 连州市| 颍上县| 酒泉市| 高邮市| 鹤山市| 金塔县| 浪卡子县| 凉山| 晋宁县| 兰考县| 鄂伦春自治旗| 北碚区|