本周系统设计复习:

  • AI 代理到底是什么?
  • 什么是 SSO(单点登录)?
  • Java 虚拟线程如何工作?
  • Redis vs. Memcached
  • Shopify 技术栈
  • 现在招聘:技术职位

什么是 SSO(单点登录)?

基本上,单点登录(SSO)是一种认证方案。它允许用户使用单个 ID 登录到不同系统。

SSO 工作原理

  1. 步骤 1:用户访问 Gmail 或任何电子邮件服务。Gmail 发现用户未登录,因此将他们重定向到 SSO 认证服务器,SSO 认证服务器也发现用户未登录。结果,用户被重定向到 SSO 登录页面,他们在那里输入登录凭据。

  2. 步骤 2-3:SSO 认证服务器验证凭据,为用户创建全局会话,并创建令牌。

  3. 步骤 4-7:Gmail 在 SSO 认证服务器中验证令牌。认证服务器注册 Gmail 系统,并返回”有效”。Gmail 将受保护资源返回给用户。

  4. 步骤 8:从 Gmail,用户导航到另一个 Google 拥有的网站,例如 YouTube。

  5. 步骤 9-10:YouTube 发现用户未登录,然后请求认证。SSO 认证服务器发现用户已登录并返回令牌。

  6. 步骤 11-14:YouTube 在 SSO 认证服务器中验证令牌。认证服务器注册 YouTube 系统,并返回”有效”。YouTube 将受保护资源返回给用户。

流程完成,用户重新获得对其账户的访问权限。

Java 虚拟线程如何工作

虚拟线程是 Java 19(预览版)和 Java 21(稳定版)中引入的轻量级线程。它们允许 Java 高效创建数百万线程,帮助处理并发任务而不浪费内存或 CPU。

虚拟线程不与 OS 线程 1:1 映射,也不替换原始的 Platform Threads。Platform Threads 由 OS Threads 支持,在此上下文中有时也称为 Carrier Threads。

将 Platform Threads 想象成一小群 worker,虚拟线程是任务。使用虚拟线程,任务仅在需要时分配给 worker,允许一个 worker 高效处理数千个任务。

虚拟线程工作原理

  1. 虚拟线程运行在 Platform Threads 之上 JVM 将它们调度到少量 Platform Threads 上。

  2. 当虚拟线程启动时 JVM 将其分配给正常的 OS 支持的 Platform Thread。

  3. 虚拟线程也可以处理 CPU 密集型工作 但它们的真正优势在于具有大量 I/O 绑定或并发任务的场景。

  4. 如果虚拟线程执行阻塞操作 (如 I/O、数据库调用、睡眠等),JVM 将其从 Platform Thread 卸载。然而,这并不阻塞底层 OS 线程。

  5. Platform 线程被释放 处理另一个虚拟线程。

  6. 当阻塞操作完成时 虚拟线程重新调度到任何可用的 Platform 线程上。

Redis vs. Memcached

下图说明了关键差异。

Redis 数据结构的优势使其成为以下的好选择

  • 记录每个帖子的点击和评论数(hash)
  • 排序评论用户列表和去重用户(zset)
  • 缓存用户行为历史和过滤恶意行为(zset、hash)
  • 将极大数据的布尔信息存储到小空间 例如,登录状态、会员状态(bitmap)

Shopify 技术栈

Shopify 是一个面向中小企业的多渠道商务平台。它允许商家创建商店并在任何地方销售产品。

以下是 Shopify 技术栈,为 60 万 + 商家提供动力,在高峰流量期间每秒处理 8 万次请求。

编程语言和 UI

  • Ruby
  • Typescript
  • Lua
  • React

后端和服务器

  • Ruby on Rails
  • Nginx
  • OpenResty
  • GraphQL

数据

  • MySQL
  • Redis
  • Memcached

DevOps

  • GitHub
  • Docker
  • Kubernetes
  • GKE
  • BuildKite
  • ShipIt(也已开源)

a16z Speedrun Demo Day 招聘

我上周参加了 A16Z Speedrun Demo Day。来自 A16Z 的 Jordan Mazer 好心地编制了他们投资组合公司招聘的列表:

包括 Sweatpals、FLORA、Plots、Darwin、Trophi.ai、Blank、Intangible、Coverd、Genway、Coverstar、KHK Games、Sunflower、Echo Chunk、Human Computer、AvatarOS、Nunu.ai、Hedra、k-ID、Neon、Altera、Crater Studios、Quago、Favorited、Rascal Games、Uthana 等公司。

你可以在 a16z speedrun talent network 找到更多职位空缺。

本文为学习目的的个人翻译,译文仅供参考。

原文链接:EP155: The Shopify Tech Stack

版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。