日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

开发者需要理解的分布式原语

發布時間:2023/12/4 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 开发者需要理解的分布式原语 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

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

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

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

Kubernetes的原語(分布式原語)

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

例如,我正在嘗試將應用程序組件單元放入獨立的容器鏡像,讓它們成為主要的構建塊。這樣我就可以使用Kubernetes提供的一系列豐富的組件來實現應用程序功能。現在,我除了可以使用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模式”的作者。

原文地址:http://www.infoq.com/cn/news/2017/04/Developers-distributed-primitive


.NET社區新聞,深度好文,微信中搜索dotNET跨平臺或掃描二維碼關注

總結

以上是生活随笔為你收集整理的开发者需要理解的分布式原语的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。