运动基元

面向对象的基元(进程内基元)

作为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

运动基元

运动基元_开发人员的新分布式基元相关推荐

  1. 开发人员的新分布式基元

    面向对象的原语(进程中的原语) 作为Java开发人员,我非常熟悉面向对象的概念,例如类,对象,继承,封装,多态性等.除了面向对象的概念之外,我还非常熟悉Java运行时.它提供的功能,如何调整它,如何管 ...

  2. 帝国时代 游戏是如何开发的_开发人员是新的王国建设者

    帝国时代 游戏是如何开发的 斯蒂芬·奥格雷迪(Stephen O'Grady)的<新造王者> ( The New Kingmakers)是一本很棒的书,解释了为什么开发人员是企业最重要的资 ...

  3. 面向.NET开发人员的Dapr——分布式世界

    面向.NET开发人员的Dapr--前言 The world is distributed 分布式世界 Just ask any 'cool kid': Modern, distributed syst ...

  4. mysql中groupby会用到索引吗_开发人员不得不知的MySQL索引和查询优化

    本文主要总结了工作中一些常用的操作及不合理的操作,在对慢查询进行优化时收集的一些有用的资料和信息,本文适合有 MySQL 基础的开发人员. 索引相关 索引基数 基数是数据列所包含的不同值的数量,例如, ...

  5. 比特币现金生态:SLP开发人员发布新规则

    简单分类账协议(SimpleLedgerProtocol,SLP)已经成为比特币现金(BCH)生态系统中热门的智能合约技术,因为它让所有人都能够以无权限的方式发行和交易Token:从去年开始BCH链上 ...

  6. java开发工作经历_开发人员在寻找第二份工作时会经历什么

    java开发工作经历 Just a little background before we begin. I have been working as a mobile app developer f ...

  7. idea非开源安装指南_开发人员开源指南

    idea非开源安装指南 想为一个开源项目做贡献,但不知道从哪里开始? 在不熟悉的代码库中找到要解决的第一个问题似乎很困难-甚至在数百万行代码的情况下更是如此-但通常比看起来容易得多. 本文应该为您提供 ...

  8. linux 开源谷歌浏览器_开发人员浏览器,Google开源版本等

    linux 开源谷歌浏览器 在本周的开放源代码新闻摘要中,我们将介绍Mozilla开发人员浏览器,欧盟委员会对开放数据的承诺,Google的Open Roberta计划等等! 开源新闻让您阅读愉快. ...

  9. 敏捷开发创始人_开发人员和技术创始人如何将他们的想法转化为UI设计

    敏捷开发创始人 by Simon McCade 西蒙·麦卡德(Simon McCade) 开发人员和技术创始人如何将他们的想法转化为UI设计 (How developers and tech foun ...

最新文章

  1. 超干货 | 一线从业者实践案例大分享:3个tips实现用户增长
  2. ESP32启明云端又有新玩法|基于ESP32+热像仪传感的物联网非接触智能测温终端为高考护航了
  3. 【SMTP 补录 Apache服务】
  4. 请写出sfr和sbit的语句格式_习题_C51语言答案
  5. FPGA设计时避免使用循环语句
  6. 贾跃亭向全体债权人道歉!个人资产曝光:总额14亿美元,国内三套房
  7. 压力测试过程中MySQL服务CPU占用率过高的问题排查思路
  8. GeoTools——新建shapefile文件
  9. c 导出html表格数据格式文件,将html网页导出excel表格数据/如何将html页面中的表格导出到excel表格...
  10. JavaScript 图片转文字,文字转语音
  11. 上海交通大学教授金耀辉:AI在智慧法院中的应用
  12. 重言式判别 (数据结构课程设计)
  13. 练习 fullpage
  14. 混合现实在医学领域的应用学习日志
  15. h5互动小游戏定制开发流程
  16. python对list列表进行排序方法总结
  17. qt中的QNetwork的通信的使用
  18. I Can See You 远程控制软件最新下载地址(含所有设计文档)
  19. Linux中C语言标准库glibc源码下载
  20. HDUOJ 1281 棋盘游戏

热门文章

  1. 洛谷P4173:残缺的字符串(FFT、通配符匹配)
  2. YBTOJ:染颜色(KDtree)
  3. AT2300-[ARC068C]Snuke Line【整除分块】
  4. P5236-[模板]静态仙人掌【tarjan,LCA】
  5. U94222-循环往复【tarjan,DAGdp】
  6. jzoj3054-祖孙询问【LCA】
  7. jzoj4274-终章-剑之魂【位运算,贪心】
  8. 2018/7/9-纪中某B组题【jzoj1503,jzoj1158,jzoj1161】
  9. 操作系统复习笔记 06 CPU Scheduling CPU调度
  10. 分布式事务解决方案——柔性事务与服务模式