为了账号安全,请及时绑定邮箱和手机立即绑定

你绝对想不到的PostgreSQL的神奇用法

PostgreSQL 已经成为了数据库方面的事实标准。尽管其他数据库在纸面上可能看起来更出色,比如拥有特定功能或小众优化,但 PostgreSQL(或简称 Postgres)在流行度方面胜出,就像 React 在前端一样占据主导地位。不是因为它本质上更好,而是因为它赢得了流行度竞赛。它的简洁性、可扩展性以及完全开源的特性(不像 Oracle 和 Microsoft Sql Server),使得它成为许多人喜爱和依赖的多功能工具。

但 Postgres 不仅仅是你的 API 的后端数据库。虽然这是常见的用例,人们实际使用 Postgres 的方式多种多样且令人惊讶。以下是一些酷炫且意想不到的 Postgres 应用实例,最后我会提到一些知名的使用它的项目——其中一些可能会让你感到惊讶!

1. PostgreSQL 作为 Kubernetes 集群的数据存储库

让我们从一个可能会让人大吃一惊的事情开始:将PostgreSQL用作Kubernetes集群的状态仓库。请注意,我指的是并不是在Kubernetes上运行PostgreSQL的Helm图表。我说的是用PostgreSQL数据库来替换默认的嵌入式etcd,作为集群的核心数据存储。

通常,Kubernetes集群使用etcd来存储集群中的所有关键数据。但在某些环境或应用场景中,可以将Postgres配置来扮演这个角色,提供一个熟悉的关系型数据库来满足Kubernetes的操作需求。虽然这可能不是大多数人的首选,但在某些特定场景下,它是一个出人意料的稳健选择!

2. Postgres 作为 Helm 发布的后端数据库

另一个有趣的用例来自Helm社区,Helm是Kubernetes的包管理工具。你知道Postgres可以作为你的Helm发布的后端数据库吗?

Helm 会将你部署的版本详情存储在持久存储中,包括配置和 chart 信息。通过使用 Postgres 作为后端,你可以获得一个关系型视图,一个集中式的,来查看所有 Helm 部署。这对于大型团队尤其有用,需要更多部署可见性以及以结构化方式管理版本历史。

这里有一个我在网上找到的教程链接:这里是一个使用PostgreSQL作为Helm后端存储的教程

3. Promscale:用于指标、追踪和日志的 PostgreSQL

其中一个最酷(虽然可惜已经停止)的使用Postgres的项目是Promscale。即使现在Promscale已经是只读的(观众会发出遗憾的声音),它的理念仍然值得我们关注。Promscale允许你将Prometheus指标存入Postgres进行长期存储。

这提供了一个统一的方式来存储所有的可观测性数据在关系数据库中,这是之前从未实现过的。Promscale 对已经在使用 Postgres 的人来说特别有用,因为它简化了在 Postgres 上实现长期存储的复杂性。虽然 Promscale 已不再积极维护,但对于较小的环境或希望简化数据存储的人来说,它仍然可能值得一试。谁知道呢,也许有一天一些有冒险精神的开发者会将其 fork 出来继续开发下去。

Promscale 是一个名为 tobs 的更广泛监控解决方案的一部分,该方案是在流行的 kube-prometheus-stack 基础上构建的。Tobs 实质上提供了一个预配置的堆栈,用于监控 Kubernetes 集群,Promscale 则提供了一个独特的基于 Postgres 的存储解决方案。

4. Dapr:使用 Postgres 进行应用程序配置

对于那些已经听腻了 Kubernetes 讨论的人来说,这里有一个更友好的开发者用例:Dapr(分布式应用运行时)允许你用 Postgres 存储应用配置。

是的,你没看错——PostgreSQL不仅仅用于存储关系型数据。借助Dapr的配置相关的API,你可以用PostgreSQL作为应用程序配置设置的可靠、可扩展存储,从而轻松地跨环境和部署管理应用程序配置。

5. 使用 MassTransit 和 Postgres 作为消息队列

如果你是一名 .NET 开发者,同时也是 MassTransit(一个工具无关的消息库,即 MassTransit)的爱好者,Postgres 也可以作为你的消息队列。虽然从理论上讲,对于大规模系统来说,Kafka 或 RabbitMQ 可能是更好的选择,但在开发初期,或者在用户较少的场景下,Postgres 处理消息也绰绰有余。

除此之外,你可以使用同一个 Postgres 数据库来实现出箱模式,确保在分布式环境中消息的可靠传递。Postgres 可以在你的应用基础设施中扮演多种角色,这意味着更少的组件和更简单的架构。

6. 基于 Postgres 的项目:一些你可能想不到的
  • AWX/Ansible Tower:Ansible Tower的开源版本,AWX使用Postgres作为其主要数据库。在我个人实验室部署了AWX之后,我可以确认它运行得非常顺畅。

  • 释放功能:是的,甚至释放功能,这个流行的功能标志项目,也用Postgres作为其后端存储。这表明Postgres的可靠性和可扩展性,需要稳健和一致存储的项目都依赖Postgres作为其核心基础设施。

最后

Postgres 可能最出名的是作为典型网络应用的可靠关系数据库,但它远不止于此,它还有更多的用途。无论是存储 Kubernetes 集群的状态,作为 Helm 发版的后端支持,还是甚至充当 .NET 开发者的消息队列,PostgreSQL 的多功能性令人印象深刻,。它不仅开源、免费,而且能够处理远远超出人们对于传统数据库预期的各种应用程序。

希望这能让你对Postgres有新的认识。谁知道,也许你会想出自己独特的用法——因为可以肯定的是,Postgres会一直存在。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
算法工程师
手记
粉丝
41
获赞与收藏
158

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消