解压安装包的软件 解压安装包并安装步骤( 五 )


以上这些插件主要分五大类 , Authentication认证 , Security安全 , Traffic Control流量控制 , Analytics & Monitoring分析&监控 , Logging日志 , 其他还有请求报文处理类 。插件类似AOP开发中的横切功能 , 可以灵活的配置进行拦截控制 , 下面选择一些关键性的插件进行简单的说明 。
黑白名单控制能力-ip-restriction
Kong提供的IP黑白名单控制能力还算相当强 , 从配置项里面可以看到主要可以针对两个维度进行配置 , 一个是针对所有的API接口还是针对特定的API接口 , 一个是针对所有的消费方还是特定的某个消费方 。
对于IP配置可以是一个区段 , 也可以是特定的IP地址 。但是黑白名单不能同时配置 , 其次当前没有一个功能是针对某一个系统提供的所有服务都启用黑名单或白名单功能 。
日志记录能力-syslog, file-log , http-log
这里主要日志的插件比较多 , 一个是sysLog在配置后可以直接将Kong产生的日志写入到应用服务器的系统日志文件中 。如果配置了file-log则是单独写入到你指定的file文件中 。对于http-log则是对于http服务请求 , 可以详细的记录请求的输入和输出报文信息 , 但是具体是记录到哪里 , 需要通过config.http_endpoint配置 。
如果需要将API接口调用消息报文日志写入到分布式存储或数据库中 , 则需要自己定义相应的日志插件来接入写入问题 。
熔断插件-request-termination
该插件用来定义指定请求或服务不进行上层服务 , 而直接返回指定的内容 , 用来为指定的请求或指定的服务进行熔断 。注意Kong的熔断插件感觉是临时对服务的禁用 , 而不是说当达到某一种监控阈值的时候自动触发熔断 。从官方文档的应用场景也可以看到这点 。
如果仅仅是这种方式的熔断话 , 实际上意义并不是很大 。但是可用的地方就在于当某个业务系统进行发版部署的时候我们可以对该业务系统或该业务系统所提供的所有服务进行熔断 。
限流插件-rate-limiting
Kong当前提供的限流相对来说还是比较弱 , 即主要是控制某一个API接口服务在单位时间内最多只能够调用多少次 , 如果超过这个次数那么网关就直接拒绝访问并返回错误提示信息 。而在前面我讲限流和流量控制的时候经常会说到 , 就是限流实际上一个是根据服务调用次数 , 一个是根据服务调用数据量 , 需要在这两个方面进行限流 。而里面更加重要的反而是数据量的限流 , 因为大数据量报文往往更加容易造成内存溢出异常 。
安全认证类插件
当前Kong网关提供basic-auth , key-auth、ldap-auth , hmac-auth多种认证插件 。
Basic-auth基本认证插件 , 即我们根据用户名和密码来生成一个base64编码 , 同时将该编码和目标服务绑定 , 这样在消费目标服务的时候就需要在报文头填写这个Base64编码信息 。
Key-auth认证插件则是利用提前预设好的关键字名称 , 如下面设置的keynote = apices , 然后为consumer设置一个key-auth 密钥 , 假如key-auth=test@keyauth 。在请求api的时候 , 将apikey=test@keyauth , 作为一个参数附加到请求url后 , 或者放置到headers中 。
Hmac-auth插件是设置绑定的service和rout , 以启动hmac验证 。然后在Consumers页面中Hmac credentials of Consumer设置中添加一个username和secret 。

推荐阅读