springmvc的controller和api 网关有啥区别?

发布于 2022-09-11 16:06:24 字数 126 浏览 23 评论 0

感觉api 网关的功能和springmvc的controller的功能差不多啊
nginx+controller所在服务的集群可以负载均衡
controller可以实现登录和权限控制
controller可以实现服务路由

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

来日方长 2022-09-18 16:06:24

首先,可以用 springmvc 的 controller 实现网关的功能,甚至可以用 springmvc 的 controller 实现网关服务。

但是大型组织一般都会有个单独的网关,业务系统的 springmvc 的 controller 会只关注业务,而不会去关注鉴权,负载军和这些。

权谋诡计 2022-09-18 16:06:24

controller确实可以做登录和鉴权,其次更主要的是业务逻辑
但是如果有api网关的话,登录和鉴权可以放到网关层来做,controller只负责具体业务逻辑,有利于代码分层隔离。
也有利于解耦

旧情勿念 2022-09-18 16:06:24

api网关的作用和nginx的确很像,区别就在于你可以在网关写一些鉴权等代码,这样就不必在底层的每一个微服务里面写鉴权代码。nginx的话,我相信很多人包括我都不会去动他的代码写一些自己的业务逻辑。

谜兔 2022-09-18 16:06:24

我的理解是 网关的目标是将权限控制,路由,负载均衡等所有的与业务开发无关的部分提炼出来。我们通常用spring开发java应用,在单应用的时代网关和业务代码杂糅在一起,问题不大。但是在分布式业务开发的场景下,我们的应用通常会部署在不同机房不同的机器上,每个应用可能会存在成百甚至上千的实例。这时候如果再将网关和应用绑定,二者之间的强耦合可能会大大降低应用的可维护性,比如网关的升级可能需要所有的应用实例也同时更新,这样明显非常不方便。因此我们会专门将网关部分的业务提炼出来,单独管理,单独维护。spring cloud也有自己的网关实现,可以看看

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文