最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

微服务架构中使用的分布式调度器

  • 2017-08-22
  • 本文字数:1189 字

    阅读完需:约 4 分钟

在 MicroXchg 2017 柏林大会上,DigitalOcean 的微服务可扩展性专家 Martin Campbell 针对如何使用分布式调度器运行基于微服务的架构做了一个演讲。在演讲中,Campbell 着重介绍了在他们在部署过程中遇上的一些问题,以及在他们是如何权衡选用 Kubernetes、Nomad 和 Mesos 等产品的。

演讲的关键要点包括:

  • 分布式调度器使得用户可将集群理解为单一的物理机。
  • 分布式调度器简化了 DevOps,大大降低了普遍存在于基于微服务架构中的操作复杂性。
  • 没有任何现有产品可以完美地运行有状态服务,因此最好不要使用现有产品去运行这类服务。
  • 在网络分区的情况下,即便有些过程所在的主机节点不能与主服务器通信,容错的分布式调度器也应该保持所有进程的运行。

Campbell 首先指出,操作系统内核就是一种集中式调度器,因为它在单一计算机上实现了对多个进程的管理。他进而阐述了分布式调度在概念上与集中式调度器是类似的,差别在于它是跨集群中各机器工作的,而非工作于单一机器上。“我们可以与整个数据中心通信,就像是面对单台物理机一样。”

分布式调度器尤其适用于微服务架构。Cambell 认为这是考虑到那些额外的操作开销,这些操作开销是由不断得以扩展和部署的多个服务所导致的。

对于如何选择多种分布式调度器的问题,Campbell 首先介绍了他在 Mesos 上的实战经验。当使用 Mesos 时,用户不需操心进程所在的实际物理机,因为 Mesos 是基于对 CPU 和 RAM 等资源的限额处理做部署的。Mesos 还提供了一个仪表盘,可像查看单一物理机那样方便地实现数据中心的可视化。

Campbell 指出,Mesos 的主要问题在于它对网络分区的处理方式。如果一个进程不能与 Mesos 的主服务器通信,那么该进程就会被杀掉。在 Campbell 看来,这并非是一种好的设计方式,事实上,因为网络分区普遍存在于分布式系统中,在这种情况下应该继续保持应用的运行。他以 Kafka 为例说明了这种行为会导致数据的丢失。虽然 Kafka 是一种分布式消息总线,在设计上考虑了弹性问题,但是分区还是可以导致丢失几乎全部的单一节点及数据。

Campbell 最终弃用了 Mesos,他先是转向 Nomad 作为替代。Nomad 的优点在于,它具有自身的 Gossip 协议,允许服务器在同一数据中心中及跨数据中心间的相互通信。在网络分区的情况下,同一分区中的服务会保持功能及通信,并在分区识别时成为最终一致的。但是由于 Campbell 并不了解有任何在生产环境中运行 Nomad 的应用,因而不想冒险迁移到 Nomad 上。

他最终选定了 Kubernetes。尽管 Kubernetes 类似于 Mesos,Campbell 还是从中发现一些独到之处。最主要是,Kubernetes 对网络分区处理机制不同,并不会在上述情况下杀死实例。它也提供了仪表盘,让用户易于了解集群的状态,减少了处理应用中的抽象层级。

该演讲的视频可以在线完整观看,其中详细地介绍了Campbell 正在处理的应用架构及各种调度器。

查看英文原文: Distributed Schedulers with Microservice Architectures

2017-08-22 19:002598
用户头像

发布了 227 篇内容, 共 71.4 次阅读, 收获喜欢 27 次。

关注

评论

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

「风控算法服务平台」高性能在线推理服务设计与实现

京东科技开发者

Python 数据 高性能 风控 风险控制

低代码引擎半岁啦,来跟大家唠唠嗑...

阿里巴巴终端技术

前端 低代码

【收藏】设备的前期管理,你重视了吗?

PreMaint

设备管理

10分钟让你了解应用宝APP上架流程

YonBuilder低代码开发平台

开发者

jquery 事件绑定及取消 bind live delegate on one区别 (超详细且通俗易懂)

Ankiee

jquery 11月月更

Serverless 的前世今生

Serverless Devs

MatrixOne从入门到实践03——部署MatrixOne

MatrixOrigin

MatrixOrigin MatrixOne

先聊聊「堆栈」,再聊聊「逃逸分析」。Let’s Go!

王中阳Go

Go golang 逃逸分析 内存分配 11月月更

avm 开发 APP 怎么设置字体

YonBuilder低代码开发平台

7X24 高可用保障,火山引擎边缘函数为猿辅导在线教学业务保驾护航

火山引擎边缘云

Serverless 边缘计算 在线 教育 火山引擎

python常用内置函数用法精要(一)

乔乔

11月月更

阿里技术风险与效能部负责人张瓅玶:阿里集团深度用云实践

云布道师

云计算

判断一个需求优先级的方法、步骤、工具

PingCode

从流程驱动到数据驱动 银行业数据平台架构的演进

酷克数据HashData

双机热备与数据备份的关系说明一二

行云管家

数据备份 双机热备

VoneDAO助力元宇宙生态治理,加速组织数字化转型

旺链科技

区块链 产业区块链 DAO

分布式数据库Greenplum基本原理和使用

价投小邱

数据库 分布式数据库 greenplum

HummerRisk V0.5.2:升级对象存储、云检测、云审计和K8s资源态势等

HummerCloud

云原生 k8s #Kubernetes# 云原生安全

为什么要用 Tair 来服务低延时场景 - 从购物车升级说起

阿里技术

内存数据库 低延时

上海 Meetup | 一键获取 11 大云原生热门开源项目技术分享入场券

阿里巴巴云原生

阿里云 开源 容器 微服务 云原生

工程团队如何合理地管理数据库访问

Bytebase

DevOps 运维 dba 数据库管理工具 删库保护

MatrixOne从入门到实践01——初识MatrixOne

MatrixOrigin

MatrixOrigin MatrixOne

MatrixOne从入门到实践02——源码编译

MatrixOrigin

MatrixOrigin MatrixOne

DHorse系列文章之镜像制作

tiandizhiguai

云原生 Serverless Kubernetes

深入浅出DDD编程

百度Geek说

架构 后端 领域驱动设计

极客时间架构训练营模块七作业

李晨

架构

是时候考虑升级 JDK 17 了

世开 Coding

Java jdk JVM jdk17

PCB做SET连片,转批量时发现利用率非常低,有遇到过吗?

华秋PCB

PCB PCB设计 拼板

温州有等保测评机构吗?听说没有是吗?

行云管家

等保 等保测评

第一届云原生边缘计算学术研讨会KEAW'22成功举办

科技热闻

直播预约|Flink + StarRocks 实时数据分析新范式

StarRocks

数据库

微服务架构中使用的分布式调度器_DevOps & 平台工程_Andrew Morgan_InfoQ精选文章