加入收藏 | 设为首页 | 会员中心 | 我要投稿 淮南站长网 (https://www.0554zz.cn/)- 管理运维、图像技术、智能营销、专属主机、5G!
当前位置: 首页 > 站长资讯 > 动态 > 正文

创新就要做到极致,用开源的方式培养未来工程师

发布时间:2021-02-06 11:19:08 所属栏目:动态 来源:互联网
导读:这就是所谓的异步回调,asynchronous callbacks,也有的资料将其称为deferred callbacks ,名字很形象,延迟回调。 从上面这两张图中我们也可以看到,异步回调要比同步回调更能充分的利用机器资源,原因就在于在同步模式下主程序会偷懒,因为调用其它函数被

这就是所谓的异步回调,asynchronous callbacks,也有的资料将其称为deferred callbacks ,名字很形象,延迟回调。

从上面这两张图中我们也可以看到,异步回调要比同步回调更能充分的利用机器资源,原因就在于在同步模式下主程序会“偷懒”,因为调用其它函数被阻塞而暂停运行,但是异步调用不存在这个问题,主程序会一直运行下去。

因此,异步回调更常见于I/O操作,天然适用于Web服务这种高并发场景。

回调对应的编程思维模式

让我们用简单的几句话来总结一下回调下与常规编程思维模式的不同。

假设我们想处理某项任务,这项任务需要依赖某项服务S,我们可以将任务的处理分为两部分,调用服务S前的部分PA,和调用服务S后的部分PB。

在常规模式下,PA和PB都是服务调用方来执行的,也就是我们自己来执行PA部分,等待服务S返回后再执行PB部分。

但在回调这种方式下就不一样了。

在这种情况下,我们自己来执行PA部分,然后告诉服务S:“等你完成服务后执行PB部分”。

因此我们可以看到,现在一项任务是由不同的模块来协作完成的。

即:

  • 常规模式:调用完S服务后后我去执行X任务,
  • 回调模式:调用完S服务后你接着再去执行X任务,

有同步回调就有异步回调。

异步回调

不同于同步回调, 当我们调用某个函数A并以参数的形式传入回调函数后,A函数会立刻返回,也就是说函数A并不会阻塞我们的主程序,一段时间后回调函数开始被执行,此时我们的主程序可能在忙其它任务,回调函数的执行和我们主程序的运行同时进行。

既然我们的主程序和回调函数的执行可以同时发生,因此一般情况下,主程序和回调函数的执行位于不同的线程或者进程中。
 

K8s编排标准虚拟机

以前,虚拟化堆栈是与K8s和云原生是完全独立的孤岛——独立的工作流程、独立的工具、独立的团队等。容器原生虚拟化的概念,使虚拟机能够遵循与K8s中基于容器的应用程序相同的工作流程。

现在有了像KubeVirt这样的开源项目,就可以实现容器原生虚拟化。K8s编排引擎可以应用于管理在云或虚拟化平台上运行的标准虚拟机,K8s开始使容器和虚拟机的混合运维成为可能。

裸机上的K8s(没有虚拟机)

虽然目前大多数K8s平台都部署在基于虚拟机的基础设施上,但容器并不依赖于虚拟机来运行,在裸机上运行K8s和容器的实践还在继续增长。

在裸机上运行K8s将使应用程序能够充分利用底层硬件,这对于为K8s带来更多机器和性能敏感应用程序的用户来说非常重要。在裸机上运行K8s和容器,还可以帮助用户减少虚拟机蔓延并简化操作。这对于虚拟机而言,不算是个好消息。

总体而言,虚拟机和容器有着各自的优势,虽然在应用场景上有一些重叠,但主要应用场景还是有区别的。比如,虚拟机更适合运行多个操作系统资源和功能的场景,而容器更适合在更少的服务器上运行更多的应用。

大部分情况下,多数企业会同时使用虚拟机和容器,特别是考虑到大多数企业在此前已经广泛部署了虚拟化技术。鉴于此,容器和虚拟化应当会在相当长时间内共存。

 

(编辑:淮南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读