自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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学习笔记:深入理解与设计唯一ID生成器

从需求分析、方案选择,到最佳实践,系统地阐述了唯一ID生成器的设计过程和关键技术。

2025-02-12 09:58:11 960

原创 ByteByteGo学习笔记:键值(Key-Value)存储

对键值存储的设计原理、核心概念、技术实现以及应用场景有了全面的了解。

2025-02-08 17:44:39 939

原创 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学习笔记:系统设计中的估算技巧

在系统设计中,估算系统容量和性能需求是一项至关重要的技能。

2025-01-26 11:32:00 962

原创 ByteByteGo学习笔记:从零扩展到数百万用户

从单服务器架构到支持数百万用户的分布式系统,通过逐步引入负载均衡、数据库复制、缓存、CDN、无状态Web层、多数据中心、消息队列和数据库分片等技术,我们可以构建一个高性能、高可用且可扩展的系统。这些技术不仅适用于大型互联网企业,也为初创公司和开发者提供了宝贵的参考。在实际应用中,我们需要根据具体需求灵活选择和组合这些技术,以实现最佳的系统设计。

2025-01-24 15:49:29 874

原创 应用开发必备的tcpdump命令详解

【代码】应用开发必备的tcpdump命令详解。

2025-01-21 16:13:31 452

原创 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

2021 java面试题.pdf

Java基础、IO、集合、JVM、多线程、常用框架、计组等常见面试题,适合初中高级Java工程师,祝大家拿高薪!

2021-12-14

pdf.js 跨域版本

基于pdf.js 2.9.8版本修改,去掉跨域限制,解决某些中文字体显示乱码的情况

2021-04-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除