微服务 - Kong Http Api 实现负载均衡、jwt认证、限流、黑白名单

news2024/11/19 15:24:52

kong1.png

建立/激活链接

使用Kong的第一步是激活链接,登录Kong管理后台,找到 Connections,把Kong的Api链接上,因为我本地的端口进行了映射,所以需要找到Docker的network 上的ip,进行绑定, ip 地址 172.19.0.3

docker network inspect gateway_net
"dcb524ba2b30e16e6453b9159ceb4edb642c42ea84dd00ee4ce1cd158737a118": {
    "Name": "kong-ee",
    "EndpointID": "4bcabe9c26cb082ba55f95ff9257b5cc3ff57d6f80059ac76501c7bd7eeba09f",
    "MacAddress": "02:42:ac:13:00:03",
    "IPv4Address": "172.19.0.3/16",
    "IPv6Address": ""
},

配置负载均衡

kong-2.png

上图是Kong对服务负载均衡的流程图,Kong的使用非常简单,使用 Http Api的方式添加:

1.添加upstreams

POST http://127.0.0.1:9001/upstreams
{
    "name":"audio-upstream"
}

2.添加Target

POST http://127.0.0.1:9001/upstreams/audio-upstream/targets
{
    "target":"127.0.0.1:9502",
    "weight":100
}

192.168.251.2

3.配置Service

POST http://127.0.0.1:9001/services

{
    "name":"audio-service",
    "host":"audio-upstream"
}

4.配置Route

配置Route的时候,paths参数必须以/开头

POST http://127.0.0.1:9001/services/audio-service/routes
{
    "name":"audio-service-route",
    "paths[]":"/audio"
}

认证

1.Basic认证

用户名密码的认证方式,在Konga的Consumers添加就可以了

POST http://127.0.0.1:9001/routes/audio-service-route/plugins
{
    "name":"basic-auth",
    "config.hide_credentials":"true"
}

2.jwt认证

1.添加jwt认证操作组件操作

POST http://127.0.0.1:9001/services/audio-service/plugins
{
    "name":"jwt"
}

2.设置jwt加密方式,参数说明:

  • algorithm : 加密方式
  • key :Consumers里面设置的key
  • secret:自定义32位的加密串
POST http://127.0.0.1:9001/consumers/test/jwt
{
    "algorithm":"HS256",
    "key":"test",
    "secret":"UmVZkyvSPOiGgVW2B1g1uhkM0tSPl5o3"
}

限流

相较于权限验证,Kong的限流就比较简单了许多,Kong采用计数器的形式进行限流。

  • config.minute :没分5次
  • config.limit_by:根据ip限流
POST http://127.0.0.1:9001/services/audio-service/plugins
{
    "name":"rate-limiting",
    "config.minute":5, 
    "config.limit_by":"ip"
}

黑/白名单

Kong的黑/白名单功能是根据限制ip实现的。

POST http://127.0.0.1:9001/services/audio-service/plugins
{
    "name":"ip-restriction",
    "config.deny":"127.0.0.1"
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/495844.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java多线程基础-8:单例模式及其线程安全问题

单例模式是经典的设计模式之一。什么是设计模式?代码的设计模式类似于棋谱,棋谱就是一些下棋的固定套路,是前人总结出来的一些固定的打法。依照棋谱来下棋,不说能下得非常好,但至少是有迹可循,不会下得很糟…

JAVA9新特性

JAVA9新特性 概述 ​ 经过4次推迟,历经曲折的Java9最终在2017年9月21日发布。因为里面加入的模块化系统,在最初设想的时候并没有想过那么复杂,花费的时间超出预估时间。距离java8大约三年时间。 ​ Java 9提供了超过150项新功能特性&#x…

RSA加密的原理

一、RSA加密算法的原理 先上公式: 加密过程:其实就是明文的E次方对N取模公钥:(E,N)解密过程:密文的D次方对N取模私钥:(D,N)那么以上公式中的E、D、N分别代表什么&#x…

solidworks版本推荐

有不少人在入坑SolidWorks的时候,不知道下载哪一个版本,不清楚SolidWorks哪个版本更好用一些,其实选择适合自己的版本才是关键。那么该如何选择版本呢?不知道如何选择SOLIDWORKS版本的,可以参考以下3个方面。 一、SOL…

自动化测试工具的基本原理以及应用场景

自动化测试工具是现代软件开发流程中必不可少的组成部分,它可以通过编写脚本或使用图形用户界面工具自动化测试过程,提高测试的效率和准确性。本文将介绍自动化测试工具的基本原理以及应用场景。 自动化测试工具的基本原理 自动化测试工具通常采用的原理…

我与smardaten | 百天无码路,苦逼中带点小美好

大家好,我是云华(化名),一个不太懂技术的无代码开发者,游走在无码世界的自由闲散人。现今是我从事无码开发的第四个月,已经从小白蜕变成了熟手。前两天,睿睿老师找到我,说最近计划办…

【wpf】枚举的绑定最易用法 和 全局静态绑定的应用

背景 有时我们做配置界面的时候,有很多配置项是枚举。通过我们会用一个Combobox实现,如果能直接用Combobox绑定枚举,那将会非常方便。这里绑定将涉及到两个方面,一个是数据源的绑定,还有就是当前选择项的绑定。最后我们…

每天一道算法练习题--Day23 第一章 --算法专题 --- ----------并查集

背景 相信大家都玩过下面的迷宫游戏。你的目标是从地图的某一个角落移动到地图的出口。规则很简单,仅仅你不能穿过墙。 实际上,这道题并不能够使用并查集来解决。 不过如果我将规则变成,“是否存在一条从入口到出口的路径”,那么…

DDR5内存彻底白菜价,国外大厂却整出了比着火更离谱的骚操作

今年的 PC 硬件市场,似乎出现了明显两极分化现象。 一边是 N、A 两家新显卡价格高高在上,摆明了不坑穷人。 另一边固态硬盘、内存条又在疯狂互卷不断杀价。 四五百元的 2TB SSD,二百元的 16G 内存条早已见怪不怪。 要说面世多年的 PCIe 3.0…

对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,基于 CentOS 7 构建 LVS-DR 群集

1. 对比 LVS 负载均衡群集的 NAT 模式和 DR 模式,比较其各自的优势 。 LVS(Linux Virtual Server)是一个开源的负载均衡软件,它支持多种负载均衡算法,包括 NAT 模式和 DR (Direct Routing)模式…

【数据分析之道-Matplotlib(二)】Matplotlib 绘图标记

文章目录 专栏导读1、前言2、标记(Markers)2.1关键词参数marker2.2标记参考(Marker Reference) 3、Format Strings fmt3.1fmt参数3.2线参考(Line Reference) 4、标记颜色(Marker Color)4.1关键字参数mec4.2…

《程序员面试金典(第6版)》面试题 16.14. 最佳直线(向量,C++)

题目描述 给定一个二维平面及平面上的 N 个点列表Points,其中第i个点的坐标为Points[i][Xi,Yi]。请找出一条直线,其通过的点的数目最多。 设穿过最多点的直线所穿过的全部点编号从小到大排序的列表为S,你仅需返回[S[0],S[1]]作为答案&#xf…

简述对象检测与图像分类与关键点检测区别

计算机视觉是人工智能的一个多元化领域,旨在检测和识别图像或视频的内容。大多数开始计算机视觉领域之旅的人的常见问题之一是:目标检测、图像分类和关键点检测之间有什么区别? 让我们先看看 什么是对象检测 对象检测是一种计算机视觉和图像…

gateway sentinel 流控规则持久化到 nacos

Sentinel改造 sentinel版本是1.8.6 直接看更新内容, 右侧更新后 GatewayApiController /*** Gateway api Controller for manage gateway api definitions.** author cdfive* since 1.7.0*/ RestController RequestMapping(value "/gateway/api") public class…

【操作系统】内存空间

最小的操作系统Hello world 想要pmap这个进程,需要进程号 但是这个进程在启动的一瞬间就执行完了 用GDB把程序暂停下来,然后用pmap观察地址空间 用info inferiors得到gdb里的进程号 ro 可读 :只读数据 rx 可读可执行 :代码 rw 可…

Java学习:Scanner类及其应用

Java Scanner 一、next()二、nextLine()三、应用 一、next() 用于从标准输入读取下一个字符串。该方法会扫描输入流并返回下一个非空白字符序列,以空格、制表符或换行符作为分隔符 1、next()会以空格作为分隔符,一行输入1 2 3,只会打印出1 import java.util.Scan…

Java RSA密钥转换,从RSAPrivateKey得到RSAPublicKey

概述: 在Java编程中,我们经常用到如下一段代码来生成RSA公私钥,分别拿到公私钥然后加解密计算: KeyPairGenerator keyPairGen; keyPairGen KeyPairGenerator.getInstance("RSA"); keyPairGen.initialize(2048, new S…

Oracle Instant Client + PLSQL 部署终端PC远程连接数据库服务器简易操作

系统环境: 1、win7_64bit 2、instantclient_21_10 3、plsqldev1105_x64 4、远程Oracle数据库:Oracle11g R2 操作步骤: 1、下载好Oracle Instant Client 和PLSQL程序安装包: 1.1 Oracle Instant Client 官网:https://w…

MySQL基础(五)排序与分页

1. 排序数据 1.1 排序规则 使用 ORDER BY 子句排序 ASC(ascend): 升序DESC(descend):降序 ORDER BY 子句在SELECT语句的结尾。 1.2 单列排序 SELECT last_name, job_id, department_id, hire_date FROM employees ORDER…

Redis之三大特殊数据类型:Geospatial:地理位置 hyperloglog:实现的功能是计算统计 bitmaps:位存储

三大特殊数据类型结构,十分的少见但是开源项目中依然有它们的身影 Geospatial:地理位置 实现的功能:附近的人,城市与城市之前的距离计算 添加城市经纬度到key中,经纬度则是key的value值,在正常的开发过程中&#xf…