目前我有一个网站提供一些产品。 Web 服务器与数据库位于同一系统上,并直接访问数据库以检索 HTML 前端所需的信息。现在我认为通过 API 服务器将数据库与网络服务器分开是很好的。我想使用API服务器的原因是, future 的应用程序(除了网站之外)可能需要访问系统上的信息。
我想要的系统应该由以下组件组成:
- 将存储所有必需信息的数据库。
- API 服务器将用 Java 实现,并应使用 oauth2 来授权用户请求。 API 服务器将拥有与数据库的唯一直接连接。
- 网络服务器。
所以基本上我的想法是我想在该 API 服务器之上构建我的网站。用户将通过网站注册/登录/...,网站实现将在内部代表用户将 API 服务器作为 Web 服务进行查询。然后 API 服务器将从数据库返回数据。这样,HTML 前端只是一个使用 API 服务器的应用程序,它本身永远不会与数据库直接联系。
我认为这是一个经常遇到的问题,并且存在一个很好的解决方案。我不确定这个解决方案是否可行。您能帮助我和/或从这里为我指出正确的方向吗?
谢谢。
最佳答案
据我所知,不建议使用单独的 API 服务器,原因如下:降低性能并增加系统的复杂性。因此基本上您应该尽可能长时间地避免这种类型的解决方案。
您绝对应该阅读 M. Fowler:“企业架构模式”以获取灵感。
回到你的问题:你是否考虑过将这个API层作为一个模块(库)? 如果我还没有说服您,请尝试阅读 Java RMI 文档 ( http://www.oracle.com/technetwork/java/javase/tech/index-jsp-136424.html )
关于java - Systemdesign : Webserver, API 和数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25343427/