10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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

  • 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:003113
用户头像

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

关注

评论

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

YashanDB|OCI 接口快速上手指南:从环境配置到代码实战,一文带你搞定!

数据库砖家

数据库

机械加工行业QMS质量管理系统

万界星空科技

万界星空科技 QMS 生产质量管理 机械加工行业 产品质量管理

YashanDB|数据文件损坏怎么查?教你用 dump + rowid 快速定位!

数据库砖家

数据库

2025 简易Scrum指南(简体中文版)

ShineScrum

敏捷

SEO与国际化

溪抱鱼

SEO

利用通义灵码和魔搭 Notebook 环境快速搭建一个 AIGC 应用 | 视频课

阿里云云效

阿里云 云原生 通义灵码

如何让 MCP 集成 API 更顺畅、无烦恼

数据追梦人

YashanDB|一文读懂 Outline 功能实战验证:绑定、失效、主备、升级全覆盖!

数据库砖家

数据库

PHP集成开发环境 JetBrains PhpStorm v2025.1.0.1 最新激活秘钥

Rose

从 0 到 1 开发梦精灵提示词管理器:我的全栈开发实战记录​

龙正哲

安全企业内部im,BeeWorks即时通讯

BeeWorks

即时通讯 IM 私有化部署 企业级应用

YashanDB|Windows 下如何配置 ODBC 跟踪日志?三步搞定!

数据库砖家

数据库

浅析金仓数据库KingbaseES自治事务

金仓技术

KingBase 金仓数据库

RAG vs. MCP: 你不知道你需要的 AI 充电接口

数据追梦人

报名丨第七届智源大会,6月6-7日北京见

智源研究院

啡漫AIP首发!AI+咖啡+动漫跨界融合,解锁咖啡产业AI新玩法

科技热闻

DataWorks Copilot 集成 Qwen3-235B-A22B混合推理模型,AI 效能再升级!

阿里云大数据AI技术

Copilot MoE Dataworks MCP Qwen3

本地部署阿里通义千问Qwen3:一键远程访问,还能解决Ollama安全隐患

贝锐

AI 内网穿透 通义千问 Qwen3

AI智上 | 数智报告:500强央企集团合并报表领先实践

用友智能财务

用友 数智化 智能财务 合并报表

YashanDB|decode 子查询被多次执行?性能骤降的真相找到了!

数据库砖家

数据库

利用通义灵码和魔搭 Notebook 环境快速搭建一个 AIGC 应用 | 视频课

阿里巴巴云原生

阿里云 云原生 通义灵码

YashanDB|执行计划突然变差?小心统计信息时间戳不一致!

数据库砖家

数据库

Qwen3 系列全家桶,百度百舸一键部署

Baidu AICLOUD

AI 基础设施

再这样玩下去,以太坊就是离心机,就是吸血魔

ChainFlash链訊

区块链 以太坊

1688 商品列表 API 深度拆解:从参数配置到数据获取

tbapi

1688商品列表接口 1688商品数据接口 1688API

AI与无人零售:如何通过智能化技术提升消费者体验和运营效率?

天津汇柏科技有限公司

人工智能 AI

怎么做好质量管理?质量管理怎么做到高效又保质?

积木链小链

质量管理 数字化转型 智能制造

TextIn MCP Server正式发布,无代码搭建智能文档处理Agent!

合合技术团队

人工智能 算法 #大数据

程序编程必备工具:SQLPro Studio可视化数据库管理

Rose

一文掌握 1688 商品详情 API 接口:从入门到实战

tbapi

1688商品详情接口 1688API 1688数据接口

独立开发者工具 • 半月刊 第 008 期

Immerse

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