探究架构之 - 45张图玩转Kong Gateway,建议收藏系列 (二)

简介: 探究架构之 - 45张图玩转Kong Gateway,建议收藏系列 (二)

Kong中的名称概念解释#


Service:对应着后端的一个服务,或者是一个App。

Route:路由,不同的route对应着service中的不同接口。

Upstream:和nginx中的upstream擦不多,都对应着一组服务节点。

Target:对应着一个api服务节点。


# upstream 对应kong中的Upstream
upstream default_backend {
    # server 对应着Kong中的一个target
    server 10.4.4.21:81    max_fails=3 fail_timeout=10s;
    server 10.4.4.22:81    max_fails=3 fail_timeout=10s;
}
server {
    server_name *.bairimeng.com;
    # location / 对应着Kong中的一个route
    location / {
        proxy_pass http://default_backend;
        proxy_set_header Host       $http_host;
        proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for;
    }
}


使用Konga添加一个服务#


添加upstream



往service中添加服务实例



添加service



给service添加后端真实的路由



验收访问:http://10.4.7.103:8000/serverAddr



10.4.7.103是kong所在机器的地址

8000是kong对外暴露的接受http请求的端口

如果service的path为/的话,访问路径则是:http://10.4.7.103:8000/serverAddr/serverAddr


Kong身份认证插件#


Basic Auth#


Kong支持针对RouteService两种粒度添加Basic Auth认证的方式



比如你添加的Basic Auth插件后,可以去访问该路由去验收结果



需要输入用户名和密码之后才能访问。

这里的用户名密码其实就是Kong中的Consumer的Basic Auth的用户名密码。

Step1:创建Consumer



Step2:为第一步中创建的Consumer创建Basic Auth的用户名密码。



然后使用这个用户名和密码就能验证成功,成功访问该接口。


Jwt#


jwt的验证可以在service、route、consumer三个维度上添加。

例如下:

Step1:给单个route添加jwt验证



Step2:给想访问Step1中的route的Consumer添加Jwt凭证



注意记录上面的 key:bairimeng、secret:bairimeng-secret


Step3:使用key和secret签发密钥:https://jwt.io/



验证

1、如果没有执行上面的Step2的话,请求该接口返回值如下:



2、如果jwt非法的话,请求该接口返回值如下:



3、全部正常返回值如下:



Key Auth#


key auth 也是Kong提供的一种身份证的身份。

它会对url中的参数key为apikey的值进行校验,如果合法的话则方行。



apikey的具体值需要在consumer中添加



如果没有合法的key,将得到如下的返回值



相关文章
|
3月前
|
存储 设计模式 数据库
构建高效的安卓应用:探究Android Jetpack架构组件
【4月更文挑战第20天】 在移动开发的世界中,构建一个既高效又可维护的安卓应用是每个开发者追求的目标。随着Android Jetpack的推出,Google为开发者提供了一套高质量的库、工具和指南,以简化应用程序开发流程。本文将深入探讨Jetpack的核心组件之一——架构组件,并展示如何将其应用于实际项目中,以提升应用的响应性和稳定性。我们将通过分析这些组件的设计原则,以及它们如何协同工作,来揭示它们对于构建现代化安卓应用的重要性。
|
3月前
|
数据库 Android开发 开发者
构建高性能微服务架构:从理论到实践构建高效Android应用:探究Kotlin协程的优势
【2月更文挑战第16天】 在当今快速迭代和竞争激烈的软件市场中,微服务架构以其灵活性、可扩展性和独立部署能力而受到企业的青睐。本文将深入探讨如何构建一个高性能的微服务系统,涵盖从理论基础到具体实现的各个方面。我们将重点讨论服务拆分策略、通信机制、数据一致性以及性能优化等关键主题,为读者提供一个清晰、实用的指南,以便在复杂多变的业务环境中构建和维护健壮的微服务体系结构。 【2月更文挑战第16天】 在移动开发领域,性能优化和流畅的用户体验是至关重要的。随着技术的不断进步,Kotlin作为一种现代编程语言,在Android开发中被广泛采用,尤其是其协程特性为异步编程带来了革命性的改进。本文旨在深入
|
3月前
|
程序员 编译器 C++
【深入探究Qt内部架构】QObject、事件循环与Q_OBJECT宏的协同作用(一)
【深入探究Qt内部架构】QObject、事件循环与Q_OBJECT宏的协同作用
96 0
|
3月前
|
存储 关系型数据库 分布式数据库
【PolarDB开源】深入PolarDB内核:探究存储计算分离架构的设计哲学
【5月更文挑战第20天】PolarDB是阿里巴巴的云原生分布式数据库,以其存储计算分离架构为核心,解决了传统数据库的扩展性和资源灵活性问题。该架构将数据存储和计算处理分开,实现高性能(通过RDMA加速数据传输)、高可用性(多副本冗余保证数据可靠性)和灵活扩展(计算资源独立扩展)。通过动态添加计算节点以应对业务流量变化,PolarDB展示了其在云时代应对复杂业务场景的能力。随着开源项目的进展,PolarDB将持续推动数据库技术发展。
143 6
|
3月前
|
SpringCloudAlibaba Java 网络架构
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
【Springcloud Alibaba微服务分布式架构 | Spring Cloud】之学习笔记(七)Spring Cloud Gateway服务网关
221 0
|
2月前
|
机器学习/深度学习 数据采集 人工智能
【机器学习】CLIP模型在有限计算资源下的性能探究:从数据、架构到训练策略
【机器学习】CLIP模型在有限计算资源下的性能探究:从数据、架构到训练策略
219 0
|
3月前
|
监控 负载均衡 Java
深入探究Java微服务架构:Spring Cloud概论
**摘要:** 本文深入探讨了Java微服务架构中的Spring Cloud,解释了微服务架构如何解决传统单体架构的局限性,如松耦合、独立部署、可伸缩性和容错性。Spring Cloud作为一个基于Spring Boot的开源框架,提供了服务注册与发现、负载均衡、断路器、配置中心、API网关等组件,简化了微服务的开发、部署和管理。文章详细介绍了Spring Cloud的核心模块,如Eureka、Ribbon、Hystrix、Config、Zuul和Sleuth,并通过一个电商微服务系统的实战案例展示了如何使用Spring Cloud构建微服务应用。
103562 9
|
3月前
|
算法 IDE 程序员
【深入探究Qt内部架构】QObject、事件循环与Q_OBJECT宏的协同作用(三)
【深入探究Qt内部架构】QObject、事件循环与Q_OBJECT宏的协同作用
77 5
|
3月前
|
设计模式 开发框架 编译器
【深入探究Qt内部架构】QObject、事件循环与Q_OBJECT宏的协同作用(二)
【深入探究Qt内部架构】QObject、事件循环与Q_OBJECT宏的协同作用
106 0
|
11月前
|
SQL Java Nacos
SpringCloud+SpringCloudAlibaba+SOA架构搭建,使用nacos注册中心,gateway网关配置
SpringCloud+SpringCloudAlibaba+SOA架构搭建,使用nacos注册中心,gateway网关配置
199 0