2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

分布式系统架构的冰与火

  • 2018-01-16
  • 本文字数:1550 字

    阅读完需:约 5 分钟

更多左耳朵耗子的独家干货,请订阅极客时间出品的陈皓全年专栏《左耳听风》,一次订阅、永久阅读。即日起,戳此订阅立享以下两大福利:

福利一:原价 ¥199/ 年,极客时间新用户注册立减 ¥30

福利二:每邀请一位好友购买,你可获得 36 元现金返现,多邀多得,上不封顶,立即提现(提现流程:极客时间服务号 - 我的 - 现金奖励提现)

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

本文首发于陈皓(网名“左耳朵耗子”)在极客时间 App 上开始的全年独家专栏《左耳听风》,是《分布式系统架构的本质》7 篇系列文章的第一篇,更多文章,正在专栏更新。

点击此处,或扫描下图二维码订阅,永久阅读专栏内所有内容。

最近几年,我们一直在谈论各式各样的架构,如高并发架构、异地多活架构、容器化架构、微服务架构、高可用架构、弹性化架构等。还有和这些架构相关的管理型的技术方法,如 DevOps、应用监控、自动化运维、SOA 服务治理、去 IOE 等。面对这么多纷乱的技术,我看到很多团队或是公司都是一个一个地去做这些技术,非常辛苦,也非常累。这样的做法就像我们在撑开一张网里面一个一个的网眼。

其实,只要我们能够找到这张网的“纲”,我们就能比较方便和自如地打开整张网了。那么,这张“分布式大网”的总线——“纲”在哪里呢?我希望通过这一系列文章可以让你找到这个“纲”,从而能让你更好更有效率地做好架构和工程。

首先,我们需要阐述一下为什么需要分布式系统,而不是传统的单体架构。也许这对你来说已经不是什么问题了,但是请允许我在这里重新说明一下。使用分布式系统主要有两方面原因。

  • 增大系统容量。我们的业务量越来越大,而要能应对越来越大的业务量,一台机器的性能已经无法满足了,我们需要多台机器才能应对大规模的应用场景。所以,我们需要垂直或是水平拆分业务系统,让其变成一个分布式的架构。
  • 加强系统可用。我们的业务越来越关键,需要提高整个系统架构的可用性,这就意味着架构中不能存在单点故障。这样,整个系统不会因为一台机器出故障而导致整体不可用。所以,需要通过分布式架构来冗余系统以消除单点故障,从而提高系统的可用性。

当然,分布式系统还有一些优势,比如:

  • 因为模块化,所以系统模块重用度更高;

  • 因为软件服务模块被拆分,开发和发布速度可以并行而变得更快;

  • 系统扩展性更高;

  • 团队协作流程也会得到改善;

  • ……

不过,这个世界上不存在完美的技术方案,采用任何技术方案都是“按下葫芦浮起瓢”,都是有得有失,都是一种 trade-off。也就是说,分布式系统在消除上述问题的同时,也给我们带来了其他的问题。因此,我们需要清楚地知道分布式系统所带来的问题。

下面这个表格比较了单体应用和分布式架构的优缺点。

从上面的表格我们可以看到,分布式系统虽然有一些优势,但也存在一些问题。

  • 架构设计变得复杂(尤其是其中的分布式事务)。
  • 部署单个服务会比较快,但是如果一次部署需要多个服务,部署会变得复杂。
  • 系统的吞吐量会变大,但是响应时间会变长。
  • 运维复杂度会因为服务变多而变得很复杂。
  • 架构复杂导致学习曲线变大。
  • 测试和查错的复杂度增大。
  • 技术可以很多样,这会带来维护和运维的复杂度。
  • 管理分布式系统中的服务和调度变得困难和复杂。

也就是说,分布式系统架构的难点在于系统设计,以及管理和运维。所以,分布式架构解决了“单点”和“性能容量”的问题,但却新增了一堆问题。而对于这些新增的问题,还会衍生出更多的子问题,这就需要我们不断地用各式各样的技术和手段来解决这些问题。

以上仅为文章的一部分,欲阅读全文,还请点击链接关注『左耳听风』专栏,在试读文章模块,继续阅读。本文是《分布式系统架构的本质》7 篇系列文章的第一篇,更多文章,正在专栏更新,扫描下图二维码订阅,永久阅读专栏内所有内容,可在 PC、微信和 App 中随时阅读。

2018-01-16 23:059092

评论

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

加速无索引表引起的主从延迟数据回放

GreatSQL

从大规模恶意攻击 DeepSeek 事件看 AI 创新隐忧:安全可观测体系建设刻不容缓

阿里巴巴云原生

阿里云 云原生

软件测试左移右移:打造全面质量保障机制

xuyinyin

2025年(第18届)中国大学生计算机设计大赛两大赛道相继开赛,等你来报名!

ModelWhale

Java Python 人工智能 大数据 中国大学生计算机设计大赛

音乐NFT的钱包对接流程

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

区块链技术 软件外包公司 音乐NFT

DeepSeek 快速体验,魔搭+函数计算一键部署模型上云

阿里巴巴云原生

阿里云 云原生

人工智能是否会发展出“自我意识”?科学与科幻的交汇

天津汇柏科技有限公司

人工智能

告警事件如何与 CMDB 打通附加更多元信息

巴辉特

告警管理 告警信息丰富 告警OnCall 告警响应

DGL(0.8.x) 技术点分析

Splendid2025

人工智能

【DeepSeek版】JeecgBoot低代码 3.7.3 发布,集成DeepSeek实现AI编程

JEECG低代码

低代码平台 代码生成 JeecgBoot DeepSeek

选购成品陪玩系统软件时,要考虑哪些因素?陪玩系统软件开发定制陪玩小程序源码,满足您的个性化需求

DUOKE七七

MySQL uniapp thinkphp

如何管理能力比自己强的下属

易成研发中心

团队管理

速度超越DeepSeek!Le Chat 1100tok/s闪电回答,ChatGPT 4o和DeepSeek R1被秒杀?

智领云科技

深度解读「摩根士丹利」人形机器人最新研报:100家人形机器人价值链(附报告)

机器人头条

科技 大模型 人形机器人 具身智能

智能灌溉管理系统(源码+文档+部署+讲解)

深圳亥时科技

网易元宵节能提前下班,你慕了吗?

王中阳Go

Go 网易

虾皮(shopee)商品详情接口(虾皮API系列)

tbapi

虾皮商品详情接口 shopee API 虾皮API 虾皮商品数据采集

【实战经验分享】1688API商品详情和关键词搜索商品的正确打开方式 中小商家必看!

代码忍者

1688API接口

浏览量超 10w 的热图,描述 RAG 的主流架构

阿里巴巴云原生

阿里云 云原生

人工智能丨如何通过DeepSeek优化软件测试工作,提升效率与准确度

测试人

如何制定好绩效管理体系

易成研发中心

人工智能丨DeepSeek、文心一言、Kimi、豆包、可灵……谁才是你的最佳AI助手?

测试人

软件测试

淘宝店铺商品数据一网打尽:详解Taobao.item_search_shop接口

代码忍者

淘宝API接口

智能名片系统(源码+文档+部署+讲解)

深圳亥时科技

活动回顾|Apache Cloudberry™ Meetup · 上海站暨中文用户组年终聚会

酷克数据HashData

NineData云原生智能数据管理平台新功能发布|2025年1月版

NineData

数据库 工具 数据管理 NineData

一键解锁 AI 动画视频创作,赢好礼

阿里巴巴云原生

阿里云 云原生

分布式系统架构的冰与火_语言 & 开发_陈皓_InfoQ精选文章