
架构设计
文章平均质量分 82
架构相关
ChatGPTer
我的新书《Android App开发入门与实战》已由人民邮电出版社出版,欢迎购买。
展开
-
BFF(Backends For Frontends)架构
在传统架构中,单个 API 网关通常处理来自不同客户端(例如 Web、移动、IoT)的请求。在微服务架构中,客户端可能需要从多个服务(例如,用户服务、订单服务、库存服务)获取数据。在现代软件开发中,向微服务、云原生架构和不断增长的客户端设备(移动应用、Web 应用、物联网等)的转变需要新的架构范式。随着应用程序变得越来越分散,根据单个客户需求定制后端服务的需求对于提供快速、可维护和安全的用户体验至关重要。对于构建多平台应用程序(网络、移动、智能设备)的公司,BFF 允许每个平台获得定制的体验。原创 2024-12-08 22:36:50 · 1518 阅读 · 0 评论 -
你必须知道的 50 个系统设计术语
系统设计面试表现始终是验证应聘者是否能够提出可扩展且高效的系统的关键因素。了解主要术语肯定有助于取得好成绩。以下是 50 个必须了解的系统设计面试术语,我们将通过定义和工作示例进行解释,并提供其他学习资源。原创 2024-07-19 10:17:26 · 1307 阅读 · 0 评论 -
系统设计面试问题:设计WhatsApp
在这个系统设计面试场景中,我们被要求设计一个类似于 WhatsApp 的消息应用程序。虽然真正的面试可能会关注应用程序的一个或多个功能,但在本文中,我们将对系统架构进行概述,然后您可以根据需要更深入地探索特定领域。原创 2024-07-19 10:00:35 · 890 阅读 · 0 评论 -
AirBnb架构简史
在这篇文章中,我们将回顾 Airbnb 架构多年来的演变、他们一路走来所获得的经验教训以及他们为支持这一愿景而开发的工具。原创 2024-05-28 17:15:40 · 1395 阅读 · 0 评论 -
系统设计面试问题:设计Spotify
在真正的面试中,通常,您会关注应用程序的一两个主要功能,但在本文中,我想对如何设计这样的系统进行高级概述,然后您可以更深入地研究如果需要的话,可以将其分为每个单独的部分。将保存歌曲元数据信息,例如歌曲 ID、标题、艺术家 ID、持续时间、发行日期和文件 URL,文件 URL 是歌曲文件存储位置(例如,在 Blob 存储中)的 URL。由于我们知道我们的应用程序的读取次数多于写入次数,这意味着有很多用户在听歌曲,但上传歌曲的艺术家数量相对较少 - 我们可以使用 Leader。(指向 Songs 表的外键)。原创 2024-02-28 11:53:54 · 923 阅读 · 0 评论 -
15条系统设计必知概念
15 core concepts when we design systems.原创 2024-01-24 09:31:21 · 430 阅读 · 0 评论 -
StackOverflow的架构
他们每秒处理超过 6000 个请求,每月 20 亿次页面浏览量,并设法在大约 12 毫秒内呈现一个页面。,一级缓存位于具有大 RAM (1.5TB) 的 SQL Server 上,其中 30% 的数据库访问位于 RAM 中,以及两台 Redis 服务器(主服务器和副本服务器)。除此之外,他们还有三台标签引擎服务器和三台弹性搜索服务器,每天用于3400万次搜索。这个应用程序在九个 Web 服务器和一个 SQL Server(加上一个热备用服务器)上运行。他们的解决方案已经有 15 年历史了,是一个。原创 2024-01-19 15:44:49 · 651 阅读 · 0 评论 -
微服务架构最佳实践
构建和管理微服务是一项艰巨的任务。这是因为微服务就像多个并行的整体应用程序,它们都必须处于同步通信和并发运行时间。因此,在设计和构建它们时考虑并应用最佳实践非常重要。原创 2024-01-11 10:16:32 · 433 阅读 · 0 评论 -
常见的架构模型
软件架构模式是用于解决软件开发中复杂架构挑战的基本准则。它们为重复出现的问题提供结构化的解决方案,确保效率、可扩展性和可维护性。原创 2024-01-07 23:22:49 · 435 阅读 · 0 评论 -
常见的软件架构风格
软件架构风格是构建各种软件系统的基础蓝图,确保它们满足特定的需求和质量属性。通过坚持合适的架构风格,组织可以确保其软件系统的构建与其战略目标保持一致,适应未来的变化,并在面对不断发展的技术环境和用户需求时具有弹性。原创 2024-01-05 09:42:41 · 1339 阅读 · 0 评论 -
日志记录、跟踪和指标
日志记录、跟踪和指标是系统可观察性的三大支柱。下图显示了它们的定义和典型架构。原创 2023-12-30 00:55:08 · 647 阅读 · 0 评论 -
系统设计的黄金法则
系统设计很复杂,一种设计并不能适应所有情况。原创 2023-12-27 00:41:36 · 395 阅读 · 0 评论 -
系统设计:网络爬虫
它计算提取的 URL 的校验和并将其与存储的校验和进行比较。它包含所有必需的资源,包括调度程序、网络爬虫工作程序、HTML 获取程序、提取程序和 blob 存储,这些资源可按需添加/删除。在分布式 URL 边界的情况下,系统利用一致散列在各个爬行工作程序之间分配主机名,其中每个工作程序都在服务器上运行。因此,为了避免数据不一致和抓取重复,我们的系统会计算网址和文档的校验和,并将其与。:由于我们的系统涉及多个抓取工作人员,因此所有这些工作人员之间的数据一致性是必要的。该组件充当爬虫的大脑,由工作实例组成。原创 2023-12-19 00:19:24 · 1780 阅读 · 0 评论 -
五大缓存策略
缓存策略经常组合使用。例如,write-around 通常与 cache-aside 一起使用,以确保缓存是最新的。当我们在架构中引入缓存时,缓存和数据库之间的同步就变得不可避免。让我们看看如何保持数据同步的 5 种常见策略。你用的是什么缓存策略呢?原创 2023-12-17 10:51:42 · 420 阅读 · 0 评论 -
系统设计:聊天应用
例如,在涉及多媒体的通信的情况下,在发送方设备上近乎实时地加密它们并在接收方上解密它们可能会给设备带来负担,从而导致延迟。通常,WebSocket 服务器是轻量级的,不支持繁重的逻辑,例如处理媒体文件的发送和接收。在这种情况下,信息将在 WebSocket 管理器中更新,而 WebSocket 管理器将验证 WebSocket 服务器使用的缓存中的数据,并将更新的数据发送到相应的缓存。它注册所有可用的聊天服务器,并根据预定义的标准为客户端选择最佳的聊天服务器。显然,在我们的系统中,消息的正确排序至关重要。原创 2023-12-14 23:38:49 · 915 阅读 · 0 评论