数据库的休息服务

问题描述 投票:-2回答:1

有时客户端无法直接连接到数据库(例如web js客户端 - Qlik Sense Extensions,...)但他们确实需要来自数据库的直接数据。好的方法是将数据库封装在REST服务中,这样,您就可以从这些客户端访问数据,而您无需为客户端提供数据库访问权限。

如果您正在寻找更通用的解决方案(不仅仅是针对当前项目),我相信,必须有更好的解决方案,然后为每个编写自己的REST服务的数据库(我知道如何编写它,并且是的,它不是那么多工作),因为那时你需要编写自己的服务,维护它们,......

所以:

如果我想要提供REST服务来提供数据库数据,那么最佳解决方案是什么?

更确切地说:

  1. 我不想自己写休息服务
  2. 我需要这个服务用于多个数据库(不只是一个项目)
  3. 我需要休息服务接近实时(没有缓存数据)

我正在寻找一些自动创建(封装)数据库(半)的解决方案,以便我可以快速地将我的新数据库插入我的基础架构中,并尽可能少地进行维护工作。

这有解决方案吗?我在看卡夫卡,但我不确定这是否是我需要的,......

编辑:

现在,lat说我需要它用于postgres数据库。

database rest apache-kafka
1个回答
0
投票

好的,所以如果你有一个Kafka形状的洞,并且想要在其中修复一个Kafka形状的钉子,这就是它的外观:

您可以对数据库使用Change-Data-Capture(CDC)工具,将实时发生在数据库(或特定表)中的每个更改实时传输到Kafka。一旦数据在Kafka中,您就可以将其提供给任何消费者(众多客户端API库以及REST proxy)。

您可以将多个hetrogenous数据库流式传输到Kafka,以便为相同的消费应用程序提供不同的数据。您可以使用Apache Kafka's Streams API来过滤或连接这些入站数据流。您也可以使用KSQL单独使用类似SQL的流处理语言来执行此操作。

使用Kafka中的数据不仅可以使用消费者API或REST代理来使用它,还可以使用Kafka Connect将其放到其他数据存储中。

由于数据在Kafka中保留(基于时间,大小或无限制地使用压缩主题进行保留),因此您可以独立于多个使用者和连接器使用相同的数据。

但所有这些都说......你不必使用卡夫卡。如果您想要这样做,有更简单的方法可以从数据库中访问数据。

© www.soinside.com 2019 - 2024. All rights reserved.