小技术君


  • Home

  • About

  • Tags

  • Categories

  • Archives

  • Sitemap

  • Book

  • Markdown

  • Search

CDN初学者指南:是什么以及如何工作

Posted on 2023-10-22 | In CDN,系统设计,网络技术 |

内容交付网络(Content Delivery Network,CDN)是一种分布式服务器系统,旨在根据用户的地理位置提供网络内容。CDN的目标是减少加载时间、提高网站和在线应用程序性能。

当用户请求网页时,内容将通过距离最近的CDN服务器提供,而不是源服务器,即使源服务器可能位于用户数千英里之外。这样做可以显著加快加载时间,改善用户体验,并有助于提高搜索引擎排名,同时减少跳失率。此外,CDN还有助于减轻服务器过载风险,降低源服务器的负载。它通过在CDN服务器上缓存和存储经常访问的内容来实现。当源服务器面临高流量时,CDN服务器可提供缓存内容,防止源服务器超负荷和崩溃。此外,CDN还提供强化安全性,CDN提供商会提供DDoS防护和SSL加密,以保护内容交付过程并防止网络攻击对网站的威胁。

CDN对搜索引擎优化(SEO)至关重要。因为CDN提高了网站性能,因此页面加载速度更快,而这是搜索引擎排名的重要因素。例如,谷歌在对搜索结果页面排名时会考虑网站速度。

CDN图片

CDN速查表

Read more »

主从复制 (Master-Slave Replication) 在系统设计与网络技术中的应用

Posted on 2023-10-22 | In 系统设计 |

在数据库复制中,我们创建相同数据库的副本,并将其分布在多个节点(副本)上。然而,在拥有多个副本的情况下,一个问题出现了:如何确保每次写操作后所有数据都传播到所有副本?最常见的解决方案是主从复制,也称为主动/被动或单主复制。

什么是主从复制?

主从复制中有两种类型的节点:主节点和从节点。单个主节点(Leader)作为主数据库,而一个或多个从节点(Follower)维护主节点数据的副本。

  • 主节点负责处理写查询,而从节点负责处理读查询。注意:如果需要,主节点也可以执行读查询。
  • 每当主节点上进行写操作时,它将复制所有数据更改到所有从节点,以保持整个系统中数据的一致性。
Read more »

如何有效地扩展数据库服务器以满足日益增长的工作量 - 数据库扩展策略

Posted on 2023-10-22 | In CDN,系统设计,网络技术 |

在当今以数据为驱动的世界中,企业面临着一个挑战,即在保证应用程序的最佳性能的同时,管理迅速增长的数据量。扩展数据库服务器在满足这些需求方面起着至关重要的作用。本篇博客将探讨各种策略,以有效地扩展数据库服务器,以处理不断增加的工作量,提升性能并确保数据可用性。

什么是数据库服务器扩展?

数据库服务器扩展是增加数据库服务器的容量和性能,以处理不断增长的数据量、用户请求和系统负载的过程。通过升级硬件组件,如 CPU、内存或存储,可以实现垂直扩展,这允许数据库服务器利用升级后硬件的改进能力来处理更大的工作量。垂直扩展通常受限于单个服务器的最大容量。

6151697987454_.pic.jpeg

Read more »

关于TCP的所有你想知道的

Posted on 2023-10-14 | In network |

连接导向、可靠和比特流导向

在网络层的IP协议是不可靠的。它负责将数据包从一个IP地址传递到另一个IP地址,但不对传递的数据包的交付、顺序或完整性做任何保证。这就是TCP发挥作用的地方,它确保数据传输的可靠性。

TCP具有以下三个重要特点:

  1. TCP是连接导向的。与将数据从一个服务器发送到多个服务器的UDP不同,TCP在两个特定服务器之间建立连接。
  2. TCP是可靠的。TCP保证分段的传递,无论网络条件如何。
  3. TCP是比特流导向的。使用TCP时,应用层数据被分段处理,传输层对消息的边界不可见。此外,这些分段必须按顺序处理,并且重复的分段将被丢弃。

为了标识唯一的TCP连接,我们使用以下字段,通常称为四元组:

  • 源IP地址和目标IP地址:位于IP头中,用于指导IP协议进行数据路由。
  • 源端口和目标端口:位于TCP头中,用于指示TCP协议将分段传递给哪个进程。
Read more »

网络协议驱动互联网

Posted on 2023-10-14 | In network |

在分布式系统中,数据通过各种网络协议在网络中传输。作为应用程序开发者,这往往在问题出现之前似乎是一个黑盒子。

在本文中,我们将解释常见网络协议的工作原理,它们在分布式系统中的应用以及我们如何解决常见问题。后续还会介绍一些常见的面试问题,例如:

  • 在输入网址到浏览器时会发生什么?
  • 什么是TCP三次握手?
  • TCP的time_wait状态是什么意思?
  • HTTP 1/2/3是什么?
  • 为什么HTTP 3使用UDP?
  • HTTPS是如何工作的?
  • 为什么UDP被认为是“不可靠”的?

让我们首先了解网络协议的使用情况。

Read more »

设计自定义线程池

Posted on 2023-10-14 | In 系统设计 |

什么是线程池?

线程池是一组预初始化的工作线程,由线程池管理器进行管理。线程池管理器负责将任务分发给工作线程并管理任务的执行。

线程池不是为每个任务创建一个新线程,这样做可能效率低下并导致资源争用。线程池允许一组线程被创建一次,然后用于多个任务。这可以提高应用程序的性能和可伸缩性。

1*pOec-wF1ytIlwMIxQkQM3A.png

Read more »

SQL和NoSQL数据库的便捷速查表

Posted on 2023-10-14 | In mysql |

ae256384-ff3f-4fe8-9456-f6be80132cc7_1780x1536.jpeg

在项目成功的过程中选择合适的数据库非常重要。以下是关键要点的总结:

  • SQL数据库提供结构化数据存储、SQL支持和关系能力。
  • NoSQL数据库提供灵活性、可扩展性和分布式架构。
  • 专门的数据库,如列存储、图形数据库、空间数据库和时间序列数据库,满足特定需求。
  • 评估关键功能、优势和提供商,以做出明智的决策。
Read more »

Redis — 不仅仅是缓存

Posted on 2023-10-14 | In redis |

1*qIy3PMmEWNcD9Czh_21C8g.png

Redis是一种快速、开源的内存键值(NoSQL)数据库,远远超越了缓存的功能。Redis使用RAM进行操作,提供亚毫秒级的响应时间,支持每秒数百万次请求。Redis主要用于缓存,但它也可以作为那些数据不经常变化的应用程序的主要数据库。Redis内置了复制、服务端脚本(使用Lua脚本)、LRU驱逐、定时过期和事务支持。

Redis的用例包括:

  • 数据投影服务
  • 临时消息代理
  • 事件溯源系统

注意:Redis是使用C语言编写的。

Read more »

Google Drive 和 Dropbox 系统设计概述

Posted on 2023-08-25 | In system design |

在现代信息世界中,我们有许多照片、文件、视频等需要存储。我相信几乎所有人都尝试过使用 Google Drive 或 Dropbox。

功能需求

  1. 用户可以从任何设备上传和下载文件。
  2. 用户可以通过替换相同的文件名来更新文件。
  3. 用户可以通过电子邮件链接将文件和文件夹分享给其他人。
  4. 用户可以随时从任何设备删除文件和文件夹。
  5. 删除的文件和文件夹将在回收站中存储 15 天。
  6. 系统应该支持离线编辑。用户可以在离线状态下添加/修改文件和文件夹名称,一旦网络恢复,更改将与远程服务器同步。
  7. 用户可以进行文件版本管理,以恢复文件的先前版本。(系统可以支持多次更改的同一文件的多个版本,带宽和所需空间将显著增加)
  8. 系统可以支持跨设备的文件和文件夹同步。
  9. 系统允许每个用户免费上传高达 10 GB 的文件。
  10. 系统将为不同存储大小提供不同的市场计划。
Read more »

通知系统设计:如何将其集成到我们的基础架构中

Posted on 2023-08-12 | In system design |

什么是面向企业的通知?

毫无疑问,没有任何数字化企业可以在没有通知的情况下生存。通过通过电子邮件、短信或推送通知等各种渠道发送及时通知,企业可以提高客户参与度和留存率,促使重复购买。通知还为企业提供了一个机会,可以收集客户反馈和见解,这可以用于改善其产品或服务。

最终,一个设计良好的通知服务可以帮助企业与客户建立牢固持久的关系,从而实现长期的成功。因此,无论何时,所有产品都需要为技术提供通知集成的要求。

规划集成

由于通知的功能性/非功能性要求在公司/企业之间基本相似,并且每个人都了解什么是通知功能,因此我们可以迅速记录一些业务需求,并立即开始讨论技术方面的问题。

Read more »
123…6
小技术君

小技术君

桃李不言 下自成蹊

56 posts
22 categories
32 tags
RSS
GitHub Email
友情链接
  • Chris Blog
  • VPN
  • v2rayVPN
© 2015 — 2024 Chris
Powered by Hexo
|
Theme — NexT.Gemini v5.1.4