专栏首页Kubernetes手记微服务网关Kong系列文章之一:简介
原创

微服务网关Kong系列文章之一:简介

为什么需要 API 网关?

当使用单体应用程序架构时,客户端(Web 或移动端)通过向后端应用程序发起一次 REST 调用来获取数据。负载均衡器将请求路由给 N 个相同的应用程序实例中的一个。然后应用程序会查询各种数据库表,并将响应返回给客户端。微服务架构下,单体应用被切割成多个微服务,如果将所有的微服务直接对外暴露,势必会出现安全方面的各种问题。

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

  • 客户端需求和每个微服务暴露的细粒度API不匹配。
  • 部分服务使用的协议不是Web友好协议。可能使用Thrift二进制RPC,也可能使用AMQP消息传递协议。
  • 微服务难以重构。如果合并两个服务,或者将一个服务拆分成两个或更多服务,这类重构就非常困难了。

服务端的各个服务直接暴露给客户端调用势必会引起各种问题。同时,服务端的各个服务可扩展和伸缩性很差。API 网关是微服务架构中的基础组件,位于接入层之下和业务服务层之上,如前所述的这些功能适合在 API 网关实现。

什么是kong?

当我们决定对应用进行微服务改造时,应用客户端如何与微服务交互的问题也随之而来,毕竟服务数量的增加会直接导致部署授权、负载均衡、通信管理、分析和改变的难度增加。

面对以上问题,API GATEWAY是一个不错的解决方案,其所提供的访问限制、安全、流量控制、分析监控、日志、请求转发、合成和协议转换功能,可以解放开发者去把精力集中在具体逻辑的代码,而不是把时间花费在考虑如何解决应用和其他微服务链接的问题上。

为什么使用kong?

提供类似的API网关不止一家,Kong侧重于解决如下传统方式的四大痛点:

痛点

说明

重复多

在多个微服务中,共通的功能重复,比如认证或者日志相关共通模块

巨石化

单个服务仍然后变成尾大不掉的巨石应用的趋势

影响大

影响较大,很难做到扩展功能而能不影响其他服务

效率低

由于系统限制,导致生产性低下

kong的基本架构

Kong 是 Mashape 开源的高性能高可用 API 网关和 API 服务管理层,一款基于 Nginx_Lua 模块写的高可用服务网关,由于 Kong 是基于 Nginx 的,所以可以水平扩展多个 Kong 服务器。通过前置的负载均衡配置把请求均匀地分发到各个 Server,来应对大批量的网络请求。

Kong 主要有三个组件:

  • Kong Server :基于nginx的服务器,用来接收 API 请求。
  • Apache Cassandra/PostgreSQL:用来存储操作数据。
  • Kong dashboard:官方推荐 UI 管理工具,当然,也可以使用restfull方式管理 admin api。

Kong dashboard 支持的版本

Kong 采用插件机制进行功能定制,插件集(可以是 0 或 N 个)在 API 请求响应循环的生命周期中被执行。插件使用 Lua 编写,基础功能包括:HTTP 基本认证、密钥认证、CORS(Cross-Origin Resource Sharing,跨域资源共享)、TCP、UDP、文件日志、API 请求限流、请求转发以及 Nginx 监控等。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 微服务网关Kong系列文章之四:Kong代理

    8000:此端口是Kong用来监听来自客户端的HTTP请求的,并将此请求转发到您的上游服务。这也是本教程中最主要用到的端口。

    Honest1y
  • 微服务网关Kong系列文章之二:Kong安装

    如我们在术语部分的介绍,服务是上游服务的抽象,可以是一个应用,或者具体某个接口。Kong 提供了管理接口,我们可以通过请求 8001 管理接口直接创建,也可以通...

    Honest1y
  • 微服务网关Kong系列文章之六:安全

    Honest1y
  • 微服务网关Kong系列文章之三:Konga安装

    Honest1y
  • 微服务网关Kong系列文章之七:流量控制

    Honest1y
  • 微服务网关Kong系列文章之五:身份验证

    API网关身份验证是控制允许使用您的API传输的数据的重要方法。基本上,它使用一组预定义的凭据来检查特定使用者是否有权访问API。

    Honest1y
  • 微服务网关方案:Kong & Nacos

    文章连接:https://mp.weixin.qq.com/s/Kk6Cl7n0sFGgCyyZtExa6A

    程序员架构进阶
  • 微服务网关方案:Kong & Nacos

    前面我们介绍了 Spring Cloud 体系下的网关 Gateway(Zuul)。事实上,还有很多开源且广泛应用的网关方案,例如 Kong 和 Nacos。本...

    程序员架构进阶
  • 选择Kong作为你的API网关

    在微服务架构之下,服务被拆的非常零散,降低了耦合度的同时也给服务的统一管理增加了难度。如上图左所示,在旧的服务治理体系之下,鉴权,限流,日志,监控等通用功能需要...

    kirito-moe
  • 云原生架构下的 API 网关实践: Kong (二)

    Kong 是 Mashape 开源的一款云原生架构下的分布式 API 网关,其性能和可扩展性在同类组件中,表现都很优异。Kong 官方提供了很多直接可用的插件,...

    aoho求索
  • 云原生架构下的 API 网关实践:Kong (一)

    ,有点懒怠。最近抽空捣鼓了 Kong 网关的使用实践,微服务网关之前的文章也写过,读者可以翻看之前的文章推送。插件是 Kong 扩展的重要特性,这次除了会介绍 ...

    aoho求索
  • 微服务架构之「 API网关 」

    在微服务架构的系列文章中,前面已经通过文章《架构设计之「服务注册 」》介绍过了服务注册的原理和应用,今天这篇文章我们来聊一聊「 API网关 」。

    奎哥
  • 微服务架构之「 API网关 」

    在微服务架构的系列文章中,前面已经通过文章《架构设计之「服务注册 」》介绍过了服务注册的原理和应用,今天这篇文章我们来聊一聊「 API网关 」。

    Bug开发工程师
  • 花5分钟时间来了解一下高性能网关Kong会有意外收获

    前几天开源发布了 Kong.Net 项目,收到了大量园友的反馈,开源当天就突破了 100 个star ,可喜可贺,但是从侧面也说明,我们 .NetCore 阵营...

    心莱科技雪雁
  • 云原生架构下的 API 网关实践:Kong (三)

    在前面的文章介绍了 Kong 的相关实践,本文将会介绍 Kong 的利器:插件以及自定义插件。

    aoho求索
  • 来自骷髅岛的 Ingress Controller:Kong

    Kong,是一个在 Nginx 反向代理基础上发展而来的 API 网关产品。我之前一直在推动的 Service Mesh,主要关注的是集群(Mesh)内微服务之...

    崔秀龙
  • 微服务网关除了zuul、spring cloud gateway还有更出色的

    在微服务架构中,由于系统和服务的细分,导致系统结构变得非常复杂, 为了跨平台,为了统一集中管理api,同时为了不暴露后置服务。甚至有时候需要对请求进行一些安全、...

    码农小胖哥
  • .Net微服务实战之负载均衡(下)

    相关源码:https://github.com/SkyChenSky/Sikiro

    陈珙
  • Kong入口控制器和服务网格:Kubernetes设置入口到Istio

    Kubernetes已经成为在服务中编排容器和服务的实际方法。但是我们如何让集群外部的服务访问集群内部的内容呢?Kubernetes附带了Ingress API...

    CNCF

扫码关注云+社区

领取腾讯云代金券