本周系统设计复习:
- AI 代理到底是什么?
- 什么是 SSO(单点登录)?
- Java 虚拟线程如何工作?
- Redis vs. Memcached
- Shopify 技术栈
- 现在招聘:技术职位
什么是 SSO(单点登录)?
基本上,单点登录(SSO)是一种认证方案。它允许用户使用单个 ID 登录到不同系统。
SSO 工作原理
步骤 1:用户访问 Gmail 或任何电子邮件服务。Gmail 发现用户未登录,因此将他们重定向到 SSO 认证服务器,SSO 认证服务器也发现用户未登录。结果,用户被重定向到 SSO 登录页面,他们在那里输入登录凭据。
步骤 2-3:SSO 认证服务器验证凭据,为用户创建全局会话,并创建令牌。
步骤 4-7:Gmail 在 SSO 认证服务器中验证令牌。认证服务器注册 Gmail 系统,并返回”有效”。Gmail 将受保护资源返回给用户。
步骤 8:从 Gmail,用户导航到另一个 Google 拥有的网站,例如 YouTube。
步骤 9-10:YouTube 发现用户未登录,然后请求认证。SSO 认证服务器发现用户已登录并返回令牌。
步骤 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 高效处理数千个任务。
虚拟线程工作原理
虚拟线程运行在 Platform Threads 之上 JVM 将它们调度到少量 Platform Threads 上。
当虚拟线程启动时 JVM 将其分配给正常的 OS 支持的 Platform Thread。
虚拟线程也可以处理 CPU 密集型工作 但它们的真正优势在于具有大量 I/O 绑定或并发任务的场景。
如果虚拟线程执行阻塞操作 (如 I/O、数据库调用、睡眠等),JVM 将其从 Platform Thread 卸载。然而,这并不阻塞底层 OS 线程。
Platform 线程被释放 处理另一个虚拟线程。
当阻塞操作完成时 虚拟线程重新调度到任何可用的 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。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。