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