对于微服务,常用的设计模式是API-Gateway。我对它的实现和含义有点困惑。我的问题/顾虑如下:
据我所知,在理想的环境中,网关服务器将接收来自客户端的请求,并在微服务完成相应任务后做出响应。
另外,我在看Spring Cloud Gateway。这似乎是我在网关服务器中寻找的东西,但如果它只是一个路由(重定向)服务,而微服务将直接负责对客户端的响应,那么它的路由功能让我感到困惑。
1.为什么不讨论微服务的其他模式?如果是,那我错过了吗?在数据库、服务等不同类别下,有许多微服务模式。这是一篇很好的文章https://microservices.io/patterns/index.html
2.如果我们部署网关服务器,这不是一个瓶颈吗?
在某种程度上是的。第三季度的答案图片将回答这个问题。
3.网关服务器是否容易因单点请求过多而发生崩溃/故障?我相信在这一点上,负载将是巨大的(请记住,Netflix正在做类似的事情)。如果我理解错误,请纠正我。
4.流/下载/上传数据(如文件、视频、图像)也将与其他中间件服务一起通过网关服务器?为什么我们不能使用代理模式而不是网关?
API代理与API网关的使用情况取决于您需要什么样的功能以及您在API生命周期中的位置。如果您已经有了一个不需要API网关提供的高级功能的现有API,那么推荐使用API代理。
您可以节省宝贵的工程带宽,因为代理更容易维护,并且您不会遭受任何可忽略不计的性能损失。如果您需要代理无法提供的特定功能,您还可以开发一个内部层来适应您的用例。如果您处于API生命周期的早期或需要API网关可以提供的额外功能,那么投资一个会有回报。
在微服务领域,API网关是一种经过验证的模式。它有几个优点,例如:
在代理中实现所有这些功能并非易事。有几个API网关提供所有这些功能,更像Netflix Zuul、Spring网关或Akana网关。
此外,为了避免API网关成为瓶颈,您可以:
网关模式用于为一系列不同的微服务提供单一接口。如果你有多个微服务为你的API提供数据,你就不想把所有这些都暴露给你的客户。对他们来说,最好只有一个入口点,而不必考虑为哪个数据投票哪个服务。能够集中处理诸如身份验证之类的常见处理也是件好事。与任何设计模式一样,它可以很好地应用于某些解决方案,但对其他解决方案并不适用。
如果吞吐量成为一个问题,网关是非常可扩展的。您只需添加更多网关并对其进行负载平衡
代理模式和API网关模式之间有一些细微的区别。我推荐本文给出一个非常简单的解释https://blog.akana.com/api-proxy-or-gateway/
本文向大家介绍为什么要使用微服务?相关面试题,主要包含被问及为什么要使用微服务?时的应答技巧和注意事项,需要的朋友参考一下 随着互联网的快速发展,各行各业都在用互联网。互联网已经离不开人们的形形色色。随着越来越多的用户,业务场景也愈来愈复杂。 传统的单体架构已经很难满足互联网技术发展的要求,代码可维护性扩展性和可读性降低,维护成本的提高都是驱动微服务的发展趋势。
问题内容: 众所周知,Java 中的接口已损坏。造成这种情况的原因很多,我将不再赘述。其他人已经做到了。这也是Java架构师本身的立场。 因此,我的问题是:为什么还不被弃用?如果核心Java团队已确定它已损坏,那么他们还必须考虑过时。他们反对这样做的原因是什么(在Java 8中仍不建议弃用)? 问题答案: 有一个错误在1997年提交给Java的错误数据库有关添加方法,所以将不再是无用的。它以“无法
问题内容: 我曾经在hibernate 3中使用getHibernateTemplate(),现在我转向了Hibernate 4,在这里我找不到以下类: 在这里我已经阅读过有关它的更多信息,不建议使用 http://forum.springsource.org/showthread.php?117227-Missing-Hibernate- Classes-Interfaces-in-spring
问题内容: 我正在将hibernate项目配置为使用第二级缓存提供程序,以便可以利用查询缓存。 我向ehcache添加了一个依赖项: 我认为我要使用的提供程序类是: 在eclipse中查看引用的库时,我在和上都看到了注释。是什么赋予了?我可以使用最新的替代供应商吗? 我正在使用hibernate版本3.4.0.GA,以防万一。 问题答案: 是什么赋予了?我可以使用最新的替代供应商吗? 不推荐使用它
问题内容: 我曾经在hibernate 3中使用getHibernateTemplate(),现在我转向了Hibernate 4,在这里我找不到以下类: 有人可以解释我为什么吗?在hibernate4中,我现在需要执行所有任务,例如提交,关闭,刷新由getHibernateTemplate()方法自动管理的事务? 问题答案: 因为它的主要目的是使Hibernate会话绑定到当前的Spring事务(
到目前为止,我还没有找到使用Blazor服务器(不是WebAssembly)和API网关和微服务的指导。讨论这些Blazor以及API网关和微服务的文章总是提到Blazor WebAssembly(Wasm)。(是不是假设Blazor Server应用程序不会使用微服务?此外,值得一提的是,选择Blazor服务器而不是Blazor WebAssembly的原因是为了更好地保护知识产权。) 无论如何