第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

PostgreSQL就能搞定了

当我开始我的第二个SaaS产品UserJot时,我决定把整个技术层都尽量简化。

我第一个推出的SaaS产品,LogSnag 是一个基于复杂基础设施的分析工具:Redis、Postgres、ClickHouse、Amazon SQS 等。这种复杂性很好地满足了 LogSnag 的要求。但对于 UserJot,一个用户反馈平台,我挑战自己走向完全相反的方向:将简洁性放在第一位。

我能不能只用Postgres来跑一个完整的、生产就绪的SaaS应用?

答案竟然是响亮的 肯定

用户笔记仪表板

……

复杂性在早期也不是你的好帮手

早期的产品很少会因为扩展性问题而夭折。它们往往因为过早地增加了复杂性而未能找到合适的市场,从而受挫。你添加的每个外部服务——如 Redis、BullMQ、Pinecone、SQS——都会增加复杂性,带来维护难度,并且可能成为故障点。

使用UserJot时,我主要遵循了基本原则。

别去管那些你根本不存在的麻烦。

没想到单靠Postgres就搞定了我所有的数据相关挑战。

……

用 Postgres 作为任务队列

事件驱动架构真是好用。副作用被很好地隔离,核心逻辑保持清晰。传统上,要实现这一点通常需要使用 Redis 和 BullMQ 或类似的服务。

不过还有一种更简单的方法:

请输入 pg-boss 命令

pg-boss 是一个轻量级的基于 PostgreSQL 的作业队列,使用 SELECT FOR UPDATE SKIP LOCKED。它提供了可靠的作业调度、重试、延迟作业以及并发处理功能——无需依赖外部组件。我在此文详细介绍了它。这里。

这就意味着:

  • 无需使用 Redis。
  • 更少的活动组件。
  • 调试简单。

如果访问量突然大幅增加呢?你总可以在以后遇到这个问题时再加回去 Redis。

这里省略了内容。

Postgres 中的向量搜索 (告别 Pinecone)

UserJot 包含多个依赖向量搜索的功能,比如 Pinecone 或 Weaviate 这样的专用向量搜索工具。通常会用到这些工具。

相反,我使用了pgvector,这是一个PostgreSQL扩展,可以直接在你的数据库内部实现原生向量检索功能。这让你可以无缝地存储嵌入并进行向量检索。

    SELECT id, 题名
    FROM 提交记录
    WHERE project_id = 'xyz'
    ORDER BY embedding <-> $1
    LIMIT 5;

切换到全屏模式,退出全屏

以下是好处:

  • 单一事实来源:数据保持一致。
  • 轻松连接和过滤: 轻松地将向量相似度查询与标准SQL查询结合起来。
  • 简化了基础设施: 无需额外的数据同步或双重写入操作。

再说一次,如果规模要求这样做,迁移到专用的向量数据库是简单明了的——不过对于大多数 SaaS 企业来说,这通常是不必要的。如果您想了解更多关于 Postgres 中向量搜索的信息,我在这里详细介绍了:这里

……

Postgres 作为键值存储的数据库

需要用于临时令牌、功能开关等的键值存储系统吗?

一般你会用 Redis,比如。还有 Postgres 也能搞定。

    CREATE TABLE kv_store (
      key TEXT PRIMARY KEY,
      value TEXT,
      expires_at TIMESTAMP WITH TIME ZONE
    );

    SELECT * FROM kv_store
    WHERE key = 'feature_flag'
    AND (expires_at IS NULL OR expires_at > NOW());

全屏模式(退出)

Postgres 轻松搞定,还有,额外的好处。

  • 持久数据存储
  • 简单的迁移过程和模式演进能力
  • 强大的查询功能

对于大多数小型独立或较小规模的 SaaS 产品(这里的“较小”是指比 Netflix 规模小的产品),Postgres 完全足够使用。

待补充文本

但它真的能扩展吗?

当然。

Postgres 在垂直扩展方面表现非常好。处理数百万行、每秒数千次查询以及复杂的查询任务变得轻而易举。现代 Postgres 提供了高级索引、缓存、分区以及优化策略,以满足高性能的需求。

当我提到“小产品”足够时,我指的是相对于大型科技巨头来说小的产品。实际上,几乎所有的SaaS业务——包括那些非常成功的独立产品——永远不会把Postgres用到极致。

而且如果你足够幸运地达到了那个尺度,恭喜!你可以轻松地拆分出来那些需要专用基础设施的零件。


Jot用户完全基于Postgres

如今,UserJot 后端完全运行在 PostgreSQL 上。

  • 核心关系型数据
  • 任务队列(pg-boss)
  • AI嵌入存储及向量搜索(pgvector)
  • 键值数据存储系统
  • 事件驱动的触发器副作用

这只是冰山一角。Postgres 还有很多其他功能和扩展,可以用于各种不同的应用场景。


最后的感想

你的基础建设应该反映你实际遇到的问题,而不是假设未来的问题。

早些选择简单就是说:

  • 简化了基础设施,降低了成本
  • 加快了开发周期
  • 更容易进行调试和维护
  • 拥有基础设施
  • 更方便搭建本地开发环境
  • 更容易扩展

复杂性最终总会找上你,但一旦失去简单,它就不会轻易回来。

Postgres不仅仅局限于一个数据库——它是构建出色产品的理想之选,能够快速且有效地构建。

如果你正在构建或考虑围绕Postgres构建一个简化的技术栈,我很想听听你的经历!如果你正在寻找一个客户反馈平台,我也很好奇你对UserJot的看法。

公开意见板

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺(jué)得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫(xiě)下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶(hù)
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專(zhuān)欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消