什么是服务网关?
服务网关充当服务客户端和被调用服务之间的中介。
服务客户端仅与服务网关管理的单个URL通信。
服务网关解析来自服务客户端调用的路径,并确定服务客户端试图调用哪个服务。
有了服务网关,我们的服务客户端永远不会直接调用个别服务的URL,而是将所有调用都发送到服务网关。
由于服务网关位于从客户端到各个服务的所有调用之间,它还充当服务调用的中央PEP(策略执行点)。使用集中的PEP意味着可以在一个地方执行横切服务关注点,而无需各个开发团队实施这些关注点。
服务网关可以实现的横切关注点示例包括:
注意
如果服务网关没有正确实施,它有可能成为单点故障和潜在的瓶颈。
在构建服务网关实现时,请记住以下几点,以降低这些风险:
负载均衡:在多个服务网关实例前实施负载均衡是有益的。在这种情况下,位于多个服务网关实例前面的负载均衡器是一个适当的设计,可确保你的服务网关实现能够根据需要进行扩展。
无状态性:确保你的服务网关实现是无状态的。不要在服务网关的内存中存储任何信息。如果不小心,这可能限制网关的可伸缩性。然后,你将需要确保数据在所有服务网关实例之间复制。
代码简洁:保持服务网关代码的轻量级。服务网关是服务调用的“瓶颈”,具有多个数据库调用的复杂代码可能成为服务网关中难以追踪和解决的性能问题的根源。
通过解决这些问题,我们可以提高服务网关实现的可靠性和可伸缩性,减少其成为体系结构中的单点故障或瓶颈的风险。
Last updated