首页 > 编程知识 正文

网关是多少,网关

时间:2023-05-05 11:47:51 阅读:161092 作者:2609

首先,在IOT (物联网)中,我们的一些设备。 例如,如果需要汇总收集到的数据和信息(如监控、传感器等),则需要API

网关接收来自上千个终端的请求,实现对外统一接口、内部进行负载均衡的功能。 API系统的开发和维护变得很容易。 根据需要API

网关还可以基于每个终端使用的不同通信协议进行协议自适应,从而便于APP应用层的数据采集和分析。

什么是API网关? 要知道什么是API网关(API Gateway ),首先需要知道什么是微服务器。

微服务

微服务是构建APP营销的体系结构方案。 微服务器架构与更传统的单体方式不同,可以将APP应用划分为多个核心功能。 每个功能称为服务,可以单独构建和部署。 这意味着每个服务在工作中(和出现故障时)不会相互影响。

让我们依托几个阶段来简单了解一下什么是微服务。

一、单机阶段(所有服务都是一条龙) ) ) ) )。

在项目的早期,将所有功能(包括商城系统)放在一个项目中可能更容易快速开发和迭代。

二.拓展阶段(水平、垂直拓展)

随着你们公司业务的壮大,服务的广泛,开始考虑水平或垂直扩大。

水平部署:简单来说,就是将服务器装载到多台机器上进行负载均衡。

垂直部署:简单来说,就是提高一台服务器的性能(俗称氪石) )。

三是微服务阶段(分期服务)严重的豌豆公司越来越大,开发者越来越多,越来越杂。 项目也随着时间变得非常臃肿的时候。 必须划分服务,并按服务类型对人员进行分组。

例如,商业街系统可以分为用户系统、交易系统、商品系统等。

为什么需要API网关? 我知道什么是微服务。 那么为什么微服务需要API网关呢?

疯狂客户端(Mad client )给哈哈,起个玩笑的标题。

如果不使用API网关,很快就会遇到棘手的问题。

如图所示,如果糟糕的豌豆有三个服务器(服务器1、服务器2、服务器3 ),如果没有API网关,客户端需要记住每个微服务器的地址。 例如,服务器1 ( http://xxx.com)、服务器2 ( http://yyy.com)、服务器3 (

http://zzz.com)。

当糟糕的豌豆有几十个微服务时,相信我,你的前端一定会杀了你。

当然,Api网关不仅仅是路由功能。

API网关可以做什么? 那么,让我们简单地捋一下API网关。 什么都能做吧。

统一门户:通过刚才提到的路由功能,API网关可以通过内部维护路由表进行反向代理。

什么是反向代理,什么是前向代理。

场景1 (正向代理)虽然你们公司有内部网络的限制,但是我想登录内部网站处理一些业务。 无法直接登录,需要中继代理。 通过中继代理服务器将请求转发到内部服务器。 进行信息交换。

场景2 (反向代理) :如果您要访问一个类似“www.moudu.com”的站点,并且有一个糟糕的豌豆输入该站点,则在一定程度上网关会将您的请求路由到其他服务器进行处理。

由此可见,一个简单的规则是,如果拙劣的豌豆知道中继服务器和最终目的地的地址,则通过正向代理,如果拙劣的豌豆知道中继服务的地址,则通过反向代理

安全性:统一门户允许网关统一处理所有服务的权限、黑名单等与认证相关的部分。

流限制:可以根据流计算分析和流限制规则限制对微服务的访问请求。

缓存:缓存一些静态数据等。

日志:所有请求和响应都可以由日志系统记录,便于将来的分析。

监控:根据日志系统获取的请求响应数据、时间等进行实时性能监控。

重试:针对例外请求重试。

熔断:对部分故障服务进行维修。

什么是服务降级?

如何在服务器承受压力或服务器出现故障时,不基于实时流量处理或轻松处理某些服务和页面(上图)。 用于保证核心服务的正常运行。

一些常见的解决方案大致了解了API网关的功能。 本节介绍一般解决方案

Nginx

在C中创建的异步web服务器可以用作反向代理、负载均衡等。 C语言和" epoll and queue "模式为Nginx提供了超高性能和低内存开销的好处。 以下许多API网关是基于Nginx实现的:

康格

基于Nginx和OpenResty的API网关通过插件体系结构为Kong带来了强大的可扩展性。 整个过程分为三个部分:

Nginx提供流程管理和请求处理。 OpenResty提供了l

ua 脚本 ( 一个高性能的脚本 ) 的集成与 nginx 的扩展。kong 集成上述两部分并提供一些持久化配置。

Apache APISIX

基于云原生设计的 API 网关,使用 etcd ( 一个分布式的强一致性 K-V 数据库 )与 高性能的 lua 脚本 和 Nginx 为 Apache APISIX 提供了强大的容器化能力。

Spring Cloud Zuul

Spring Cloud Netflix 子项目的核心组件之一,基于Java语言开发、过滤器模式设计。并需要集成其他子项目实现 API 网关功能:

Hystix: 用于流量控制,实现流量限制。Ribbon:提供负载均衡能力,并可以提供网络性能和错误的信息。Turbine: 实时收集一些指标,用于监控服务与网络流量。Archaius:提供动态配置的能力。 总结

本编文章讲解了一下什么是 API 网关、API 网关 可以解决什么问题。并对一些常见的解决方案进行了简单分析。下面将对如何选型进行一些简单建议:

Nginx:如果公司业务小、所需要的功能较少可以使用 Nginx 来快速搭建。

Kong:社区活跃度较高,基于它的插件体系结构,如果对功能和扩展性要求较高可以选择。

Apache APISIX :云原声和多协议支持( MQTT、Dubbo等)对 IOT ( 物联网 )的服务比较友好。

Spring Cloud Zuul: 基于Spring cloud 的实现方案,对于 Java 微服务较为友好。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。