欢迎来到Introzo百科
Introzo百科
当前位置:网站首页 > 技术 > 对标大厂,微服务网关应该这样设计!

对标大厂,微服务网关应该这样设计!

日期:2023-10-06 03:29

本文主要从七点来谈网关,分别是网关的基本概念、网关设计思路、网关设计重点、流量网关、业务网关、常见网关的比较。熟悉基本概念的朋友可以根据目录查看自己的感受。有趣的部分。

什么是网关

网关,很多地方都把网关称为门,没有问题,但是需要区分网关和网桥的区别

「网桥」:工作在数据链路层,在不同或相同类型的局域网之间存储和转发数据帧,并在必要时进行链路层的协议转换。可以连接两个或多个网络,并且可以在它们之间发送信息包。

“网关”:这是一个很大的概念。它并不具体指某一类型的产品。只要它连接两个不同的网络,就可以称为网关。网桥一般只转发信息,而网关可能会封装信息。

网关简单易懂

根据网关特性,例如:

假设你想去群里的老大(这里只是举个例子)。谁都知道,老大绝对不是一个想见他就能见的人。他也害怕坏人。然后你就去老板所在的办公楼。如果是集团总部,这栋大楼的门就是角色的门户。通常看门员就在门口。看门员会做什么?

首先,所有想见boss的人都必须从这扇门进入(“统一入口”)。这扇门相当于将办公室与外界隔绝了。主要是为了保护内部安全和正常工作。到了这个门后,门卫肯定会要求你出示相关证件(“认证测试”),意思是判断你见老板的要求是否合理。如果无理取闹,他会直接拒绝,让你回家等消息。如果经过身份验证后,你发现你只是找老板谈二元店的生意,门卫会告诉你,没必要和老板谈。你可以直接去团投部门(【动态路由”,将请求路由到不同的后端集群),这时候它会帮你做一些“打包”,比如比如给你发一张通行证,然后告诉你怎么走等等。

看,网关的作用就是这三个。最终目标是减少你和团队之间的耦合。具体在计算机上,就是减少客户端和服务器之间的耦合。如果没有网关,则意味着所有请求都会被直接调用。服务器上的资源耦合度太高。如果服务器出现问题,客户端会直接报错。比如,老板换了工作地点。如果没有传送门,直接去原来的地方寻找的话,肯定会被告知boss不在这里。

为什么需要网关

使用单体应用程序架构时,客户端(Web 或移动设备)通过对后端应用程序进行 REST 调用来获取数据。负载均衡器将请求路由到 N 个相同的应用程序实例之一。然后,应用程序查询各种数据库表并将响应返回给客户端。在微服务架构下,单个应用被切分成多个微服务。如果所有的微服务都直接暴露于外界,必然会出现各种安全问题。此外,内部和外部耦合严重。

客户端可以直接向各个微服务发送请求。主要问题如下:

  • 客户端需求与每个微服务公开的细粒度 API 之间不匹配。

  • 某些服务使用的协议不是 Web 友好协议。可以使用Thrift二进制RPC,或者可以使用AMQP消息传递协议。

  • 微服务很难重构。如果合并两个服务,或者将一个服务拆分为两个或多个服务,这种类型的重构会非常困难。

服务器端的每个服务都直接暴露给客户端调用,这必然会导致各种问题。同时,服务器端各个服务的扩展性和扩展性较差。 API网关是微服务架构中的基础组件,位于接入层下方、业务服务层上方。上述这些功能都适合在API网关中实现。

网关和服务器集群

回到我们的服务器,下图介绍了Gateway的作用。可见,Gateway模式下的架构可以细到为每个服务实例配置自己的Gateway,也可以粗到配置一组服务。一,您甚至可以为整个架构配置一个访问网关。如此一来,整个系统架构的复杂性就会变得简单且可控。

关灯