- 博客(14)
- 资源 (2)
- 收藏
- 关注
原创 ByteByteGo学习笔记:通知系统设计
一个高效、可靠、可扩展的通知系统,不仅能够提升用户体验,增强用户粘性,还能有效地传递关键信息,驱动业务增长。本文将深入探讨如何设计一个可扩展的通知系统,涵盖了从需求分析、高层设计到详细设计的各个环节,并着重强调了系统的可靠性、可扩展性、安全性以及其他关键的设计考量。对于通知系统而言,其功能看似简单——发送通知,但实际上,要构建一个能够发送数百万条通知的可扩展系统,其背后涉及到诸多复杂的技术细节和架构选择。
2025-03-14 16:21:31
856
原创 ByteByteGo学习笔记:网络爬虫设计
前言:互联网的触角——网络爬虫及其重要性在信息爆炸的时代,互联网已成为人类知识和数据最庞大的载体。如何高效地从这浩如烟海的信息中提取有价值的内容,成为了现代信息技术领域一个核心挑战。网络爬虫,作为自动化信息采集的利器,扮演着至关重要的角色。它如同互联网的触角,不知疲倦地探索、发现和收集网络信息,为搜索引擎、数据分析、网络监控等众多应用场景提供源源不断的数据支持。网络爬虫的应用领域极为广泛,几乎渗透到互联网应用的方方面面:构建一个高性能、高可靠、可扩展的网络爬虫系统绝非易事。它可能是一个简单的个人项目,也可能
2025-03-01 22:38:18
1054
原创 ByteByteGo学习笔记:URL短链服务设计
URL短链接服务设计,讨论了API设计、数据模型、哈希函数选择、URL缩短和重定向流程,以及分布式唯一ID生成器等核心组件
2025-02-13 17:44:33
772
原创 ByteByteGo学习笔记:一致性哈希
一致性哈希算法是一种特殊的哈希方法,当哈希表重新分配时,只有k/n个键需要重新映射,其中k是键的数量,n是槽的数量。相比之下,传统哈希表在数组槽数量变化时,几乎所有键都需要重新映射。虚拟节点是一种解决上述问题的技术。每个服务器在哈希环上由多个虚拟节点表示。例如,服务器 0 和服务器 1 都有 3 个虚拟节点。使用虚拟节点,每个服务器负责多个分区,从而提高了数据分布的均匀性。一致性哈希算法是一种有效的技术,用于在分布式系统中实现水平扩展和数据均匀分布。
2025-02-07 10:36:01
1058
原创 ByteByteGo学习笔记:设计限流器
在现代应用系统中,限流器(Rate Limiter)是一种至关重要的工具,用于控制客户端对服务的请求速率。
2025-02-04 22:06:20
1047
原创 ByteByteGo学习笔记:系统设计面试框架
在最后一步,面试官可能会问一些后续问题,或者让我们讨论其他补充点。识别系统瓶颈并讨论潜在的改进方案。总结设计方案,特别是如果提出了多个解决方案,可以刷新面试官的记忆。讨论错误处理和操作问题,如服务器故障、网络丢失等。考虑系统的扩展性,例如当前设计支持100万用户,如何扩展到1000万用户。系统设计面试确实是一个挑战,但通过这个四步框架,我们可以更有条理地进行思考和表达。特别是第一步,理解问题并澄清需求,这一点非常重要。很多时候,我们急于给出解决方案,却忽略了真正理解问题的本质。参考资料。
2025-01-27 20:54:20
1020
原创 ByteByteGo学习笔记:从零扩展到数百万用户
从单服务器架构到支持数百万用户的分布式系统,通过逐步引入负载均衡、数据库复制、缓存、CDN、无状态Web层、多数据中心、消息队列和数据库分片等技术,我们可以构建一个高性能、高可用且可扩展的系统。这些技术不仅适用于大型互联网企业,也为初创公司和开发者提供了宝贵的参考。在实际应用中,我们需要根据具体需求灵活选择和组合这些技术,以实现最佳的系统设计。
2025-01-24 15:49:29
874
原创 MQX - 基于 MySQL 的轻量级消息队列
在中小型项目中,经常需要使用消息队列来解耦服务,但部署维护专门的消息中间件(如 RocketMQ、Kafka)会带来额外的运维成本。MQX 基于 MySQL 实现消息队列功能,复用现有的 MySQL 基础设施,降低系统复杂度。
2024-12-27 10:17:30
1063
原创 Containerd 代理插件的作用与原理
代理插件(Proxy Plugins)是 Containerd 提供的一种灵活的插件集成机制,允许通过 gRPC 连接外部服务,并将这些外部服务无缝集成到 Containerd 的插件系统中。通过这个示例,我们展示了如何创建一个安全且高性能的 Containerd 代理插件,体现了系统的可扩展性和灵活性。代理插件体现了 Containerd 在系统设计中追求的模块化、可扩展性和灵活性,为容器运行时提供了强大且可定制的解决方案。
2024-12-09 10:00:59
374
原创 Containerd 插件系统深度解析
Containerd 是一个工业级的容器运行时,其插件系统是其架构中最核心的部分之一。本文将深入解析 containerd 的插件机制,帮助读者理解其设计理念和实现原理。模块化: 将功能解耦为独立插件可扩展性: 支持动态添加新功能类型安全: 基于 Go 接口的类型检查依赖管理: 自动处理插件间依赖关系// 定义插件接口// 任务管理接口// 资源管理接口// 实现插件// 注册插件},// 自定义配置},if err!= nil {
2024-12-05 23:20:58
870
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人