前端应该直接调用还是通过微服务调用数据库?

时间:2019-01-10 09:15:52

标签: design-patterns database-design frontend backend

我有一个用JSP编写的前端和一个DyanmoDB的数据库。 现在写,我有两个选择来创建应用程序。

1.Either to make a call directly from JSP to DynamoDB.

2.Call a MicroService from JSP and then call the DB from that service.

我必须从DynamoDB中获取数据,而不是将数据写入其中。

哪种方法会更好,为什么?为什么?

3 个答案:

答案 0 :(得分:1)

答案取决于您的应用程序,但是通常,您应该更喜欢在前端(JSP页面)和数据库之间具有一些服务层。这样就可以在不更改JSP页面的情况下更改数据库实现的详细信息(例如使用什么数据库以及用于检索和修改数据的实际查询)。

用户界面(您的JSP页面)应该与显示信息有关,并且应该与数据库的详细信息隔离。例如,在理想情况下,如果您决定将数据库从DynamoDB更改为MongoDB,则JSP页面不应更改。相反,应该直接更改与数据库直接交互的服务层部分,但与JSP页面交互的服务层部分应保持不变。

此方法有一个警告:您不应为此引入indirection。软件的总体目标是尽可能有效地解决问题。如果这是小型应用程序或原型,那么引入服务层可能会超出所需的范围。另一方面,如果这是企业级应用程序,则引入服务层可能会在将来为您和您的公司节省大量时间,并使体系结构更具可扩展性。目标应该是尽可能有效地解决眼前的问题,而不要应用模式或间接方式,因为这就是每个人都要做的

答案 1 :(得分:0)

获取/更新数据库是模型的责任。 为了与mvc兼容,您应该遍历jsp servlet来更新数据库并调用正确的微服务。 干杯, Hichem

答案 2 :(得分:0)

当您计划在多个企业级应用程序之间重用功能时,需要引入服务层。否则,您可以将服务直接作为类库集成到应用程序中,并在将来需要时对其进行重构。