写点什么

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

  • 2017-04-26
  • 本文字数:1285 字

    阅读完需:约 4 分钟

随着容器技术的崛起,开发人员的思维也从单主机扩展到了分布式。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 模式”的作者。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-04-26 19:003687
用户头像

发布了 322 篇内容, 共 151.1 次阅读, 收获喜欢 148 次。

关注

评论

发布
暂无评论
发现更多内容

京东商品列表 API 接口使用指南

tbapi

京东API接口 京东API 京东商品列表接口 京东商品采集

Nacos 3.0 正式发布:MCP Registry、安全零信任、链接更多生态

阿里巴巴云原生

nacos MCP

首个云超算国标正式发布!百度智能云CHPC首批通过并获最高评级

科技热闻

京东商品详情API接口使用攻略

tbapi

京东商品详情接口 京东API 京东商品详情API 京东数据采集

通义灵码正式上线 Qwen3,编程智能体马上来了!

阿里巴巴云原生

阿里云 云原生 通义灵码 Qwen

使用 Amazon Nova Lite 实现多快好省的智能视频审核

亚马逊云科技 (Amazon Web Services)

藏数于仓 聚势东方 电科金仓赋能第八届数字中国建设峰会

科技热闻

eBPF开发者大会上,乘云技术专家分享eBPF在故障定位场景中的应用

乘云数字DataBuff

可观测性 故障定位 运维监控 eBPF 技术 eBPF开发者大会

如何用豆包做PPT?PPT自动生成全攻略!

职场工具箱

人工智能 PPT AIGC AI生成PPT 豆包

【等保知多少】企业过等保要点看这里!

行云管家

网络安全 等保 等保测评

时序数据库 TDengine × Perspective:你需要的可视化“加速器”

TDengine

数据库 tdengine 时序数据库

什么是委外管理?委外管理到底有什么用?

积木链小链

数字化转型 智能制造 中小企业 委外管理

通义灵码正式上线 Qwen3,编程智能体马上来了!

阿里云云效

阿里云 云原生 通义灵码 Qwen

影响LED显示屏价格的三大因素

Dylan

产品 LED LED display LED显示屏 LED屏幕

《Operating System Concepts》读后感

codists

操作系统

千亿级打点PV的成本治理实践

百度Geek说

百度 成本治理 打点治理

AI智能体平台的搭建

北京木奇移动技术有限公司

AI智能体 软件外包公司 AI技术应用

发件箱模式:打造微服务可靠消息传输

俞凡

架构 最佳实践 设计模式

中关村科学城工业软件创新暨开源峰会在海淀成功举办

极客天地

全开源、私有化部署!轻量级用户行为分析系统-ClkLog

ClkLog

开源 数据分析 埋点 用户行为分析 用户画像

25年甘肃省等保测评机构名单汇总

行云管家

等保 等级保护 等保测评

【京东招聘专场】京东零售&科技诚邀测试开发精英!多地热招中!

测试人

软件测试

聚焦查询引擎优化:技术人如何在国产数据库项目中不断突破

TDengine

数据库 tdengine 时序数据库

开放注册!RootTalk Sandbox沙盒系统正式上线

乘云数字DataBuff

可观测性 故障定位 Demo 运维监控

宁德新能源:时序数据库 TDengine 支撑百万级工业设备实时数据高效治理

TDengine

数据库 tdengine 时序数据库

AI智能体平台的组件和功能

北京木奇移动技术有限公司

AI智能体 软件外包公司 AI技术应用

区块链ETF软件的功能分解

北京木奇移动技术有限公司

区块链技术 软件外包公司 区块链ETF

CRaC 技术深度解析

mazhen

Java Linux Serverless Cloud Native crac

万界星空科技QMS质量管理系统几大核心功能详解

万界星空科技

万界星空科技 QMS 质量管理系统 生产质量管理 产品质量管理

数智报告:一键合并精准高效

用友智能财务

用友 财务 数智化 智能财务 数智报告

非凸科技受邀出席AI SPARK活动,共探生成式AI驱动金融新生态

非凸科技

开发者需要理解的分布式原语_语言 & 开发_Bilgin Ibryam_InfoQ精选文章