gpt4 book ai didi

java - Dao 作为单体中的独立模块考虑将来可扩展到微服务

转载 作者:行者123 更新时间:2023-12-02 02:22:02 24 4
gpt4 key购买 nike

我实际上正在创建一个项目,其中我们有 2 个或更多数据库。我将使用 Spring Boot。我想知道:

  1. 为什么我们有网关客户端,而代码我们已经在服务器中拥有 REST 端点(可能是我错了)?

  2. 我的项目目前将是单一的,但我希望将来可以更改为微服务架构。考虑到我可以拥有多个数据库(RDBMS 和 NoSQL),我是否应该将 DAO 作为单独的模块来依赖其他模块?

希望我是在问工作问题,但在开始项目时我现在很困惑。

提前致谢

最佳答案

我会尽力消除一些困惑。

您正在使用 Spring Boot 构建单体应用程序,但希望它准备好微服务,对吧..

首先将您的应用程序逻辑地分解为 diff。服务并定义每个服务拥有哪些数据(sql 表)(每个服务应该有自己的数据库 URL 实例,它们都可能指向相同的物理数据库)。然后,从一个服务代码中,您不应该访问其他服务拥有的任何数据库实体,当您需要其他服务拥有的数据时,请调用它们的 REST API。

现在,在执行此操作时,您会遇到一些问题,例如您想要执行跨多个服务的操作,但又想要事务一致性。例如:在创建 user 时,应该创建用户钱包,但用户和用户钱包应该是不同的。服务。为此,您需要使用消息传递总线并根据用户创建事件创建用户钱包。

我目前提供的解决方案是实现微服务的一个非常非常抽象和基本的 View 。这只是为了理解。

我认为您的很多问题仍然没有答案。现在提出更具体的问题,我会提供帮助

关于java - Dao 作为单体中的独立模块考虑将来可扩展到微服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48374452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com