前言

前几天开源发布了 Kong.Net 项目,收到了大量园友的反馈,开源当天就突破了 100 个star ,可喜可贺,但是从侧面也说明,我们 .NetCore 阵营真的非常需要拥抱开源,应该敞开心扉,集众家之长,为我所用,针对有些朋友还不太了解 Kong 的使用方法,本文作一些简单的介绍。

项目地址:https://github.com/lianggx/Kong.Net 请为我们点击 star 加⭐⭐

声明

本文准备介绍市面上的一些常见的网关,不吹不黑,实事求是,理性讨论,从我做起。

微服务网关

下图直观的为我们展示了Kong网关在微服务中的作用

还可以和 kubernetes 进行无缝集成

(来源:https://konghq.com/solutions/kubernetes-ingress/)

上图是Kong和K8s相结合的结构图,通过Kong网关,可以使业务系统的集成工作变得更加高效且易于管理。

升级位服务网格等部署方案

除了上面的应用场景,Kong 还带来了下面的服务网格等各种部署方案,任君选择,童叟无欺!

(来源:https://konghq.com/solutions/kubernetes-ingress/)

为什么选择了 Kong

1. Spring系列

其实在选择 Kong 之前,我也曾尝试了其它的网关,运维级别的比如Nginx咱就不提了,单就 Spring-cloud Gateway 几乎可以一招吃遍天下,况且还有阿里这个大厂做护法,Nacos/Dubbo 这种实验室+超高流量的实践后开源,那也是极其可怕的,唯一的不好就是除了Java外其它语言没什么机会与之结合,非用不可也不是不行,但是就是非常麻烦,中小企业可以通过上云的方案使用云原生,但是对于自建机房、自建网关和服务集群的,或者是不方便上云的企业来说,只能选择Java。

2. 自带网关

.NetCore 在网关方面也不是没有建树,Ocelot 的star也不少了,但是对于成功的商业应用案例来说,缺少一个有力的推广人,特别是对于http请求的转发,其基于HttpClient的特性,使得在大并发的情况下,反应非常迟钝,一句话:底层太重。不能轻装上阵,就好像转换到Linux后,总是在某些方面有点水土不服。

3. 最终选择

博客园也有大量关于Ocelot对于其它网关的性能对比,这里我就不再一一列出了,大家有兴趣可以在站内搜索一下关键字Ocelot。我在Ocelot的github项目上仔细的查看了每一条issue,并且拿这些issue的回答时间和Kong的issue回答作对比,发现Kong的issue问题响应时间大大快于Ocelot,这可能是因为Kong的贡献值高达200多人的原因

Kong的高效得益于lua和高水平的贡献者,该语言是nginx的开发语言,nginx的高效众所周知,Kong通过Kong Igress Controller和K8s完美结合

为什么需要Kong.Net客户端

还有朋友反馈,既然Kong网关如此完善,RESTFul API 如此高效,为什么还需要Kong.Net客户端呢?这个问题提的非常好!

1. 营销故事

沃尔玛曾经有一个经典的营销案例,说的是啤酒和尿片的故事,说营销人员通过调查,,发现许多男人在下班后都会到超市买给孩子买尿片,他们就想到,如果在尿片旁边摆上啤酒,这些男人会不会同时将啤酒丢人购物车中呢,通过一段时间的观察,超市里的啤酒销量大幅提升。从这个故事中我们发现,便利性和易用性是多么的重要,如果尿片和啤酒在分别堆放在两个不同的货架上,那么如果一个买尿片的男人很大概率不会想起来买啤酒,或者说绕很远的距离去购买啤酒。

从这个场景中我们看到,便利性是多么的重要!

2. 为了快速接入

通过Kong.Net,一个从未接触过Kong网关的人就是可以通过几行代码完成接入,他不需要去理解RESTFul API的接口文档,不用担心传错参数,不用关心是否在配置过程中是否由于某个配置错误引起不明BUG,这些都是极大的提升开发效率的行为,特别是进一步,通过社区的力量,我们可以一起完善这个SDK,使之越来越高效,BUG越来越少,接入越来越快,这就是开源的力量!

Kong 的安装部署

Kong网关的安装部署非常简单,有两种部署方式,rpm 和 docker ,建议 docker方式部署,因为实在是太方便了,只需要复制官网的几个命令,相信我,你不用一分钟就可以部署起来,这里我就不再搬运官方的 docker 安装部署教程了,大家可以参考下面的链接,主要怕官网有更新的话,我这搬运有可能就过时了

https://docs.konghq.com/install/docker/?_ga=2.264012361.438943297.1562658881-406131744.1553753787

Kong Dashboard 控制台

Kong 网关的 Dashboard 目前有两个毕竟大的开源的Dashboard,分别是

// pgbi/kong
https://github.com/PGBI/kong-dashboard/commits/3.0  // pantsel/konga
https://github.com/pantsel/konga

从维护更新的频率来看,pgbi/kong 在走下坡路,而konga维护良好,建议大家使用konga,他们俩的操作界面大同小异,比如我目前使用的是Konga

安装方式推荐:docker

Kong 插件

Kong的插件基于lua编写,内置插件非常丰富,支持验证、安全、流量控制、监控和统计、日志等等,甚至支持自定义插件,你也可以编写自己的插件加入到Kong网关中

就拿流量控制来说,其控制粒度可以具体某个Target,也可以应用到Global,非常灵活。

Kong 响应

在使用Kong进行转发后,Kong会向客户端写入一个默认的头信息

除了默认的头信息,你也可以在Kong服务配置中向客户端写入自定义的响应头信息,非常方便。

健康检查

Kong的健康检查机制非常有意思,分为主动式检查和被动式检查两种,而且两种健康检查方式的配置基本相同,主动检查会修改客户端的状态,将不健康的客户端移除,将恢复健康后的客户端主动加入服务集群,而被动式检查则正好相反;特别有意思的是,其健康检查的路径为根目录“/”,当然也支持定义路径,最重要的是可以自定义httpstatus代码,比如你可以定义4.3、404为健康状态,也可以定义 200、302等一切httpstatus代码。

结束语

优秀的开源产品值得我们深入了解,并结合.NetCore实际使用,这会让.NetCore的生态越来越完善,让社区更强大。项目地址:https://github.com/lianggx/Kong.Net 请为我们点击 star 加⭐⭐

花5分钟时间来了解一下高性能网关Kong会有意外收获相关推荐

  1. oracle密码锁屏时间,OPPO用户怎么让手机变流畅?花1分钟关闭这4个设置,瞬间变流畅...

    手机卡顿是个一直伴随安卓机用户的问题,很多人都知道手机卡顿是无法避免的,那么身为一名OPPO用户,手机用久了变卡顿怎么办? 那就花一分钟关闭这4个设置,让OPPO手机瞬间流畅起来! 1. 关闭锁屏壁纸 ...

  2. 只花5-10分钟评审,还不提供拒稿理由,IJCAI就“枪毙”42%论文,网友:一脸懵逼...

    点击上方"AI遇见机器学习",选择"星标"公众号 重磅干货,第一时间送达 十三 发自 凹非寺 量子位 报道 | 公众号 QbitAI 今年的IJCAI,真可谓是 ...

  3. 计算机考试不用输入扩展名吗,本周末的 计算机等级考试,如果不想考0分,一定要花2分钟看完...

    原标题:本周末的 计算机等级考试,如果不想考0分,一定要花2分钟看完 嗨喽~下午好!我是超甜的小虎 泰戈尔的爱情诗<世上最远的距离>里有一段"世上最远的距离不是生与死的距离,而是 ...

  4. 花40分钟写一个-CBIR引擎-代码公开

          浏览网页的时候发现一篇不错的文章"用Python和OpenCV创建一个图片搜索引擎的完整指南"http://python.jobbole.com/80860/.作者在浏 ...

  5. 花5分钟过一遍jar包和war包的区别,以后都不会再迷茫

    做Java开发,jar包和war包接触的都比较多. 今天,小编把两者的联系好好梳理下,花5分钟过一遍以后不再迷茫,你值得拥有: 一.概念 1. jar包:jar包是类的归档文件,与平台无关的文件格式, ...

  6. 苹果手机怎么在照片上添加文字_手机照片如何添加文字?原来方法这么简单,花1分钟手把手教...

    手机照片如何添加文字?原来方法这么简单,花1分钟手把手教 最近很多人私信笔者,手机拍摄的照片怎样添加好看的文字,今天笔者准备了4种方法,一起来看看吧! 1.自带水印功能(安卓手机) 一般人都是直接拍照 ...

  7. 2016如果你想改变命运,请花几分钟读一下:(网上创业赚钱项目)

    ★★★不需要懂技术,不用发货,不用铺货,需要你做的只是去推广-- 关键一点事正规!!淘宝,东京合作,交易过程全部在东京,淘宝上完成,安全可靠,不用担心被骗,所以说网上购物,更省钱,更省心,赚钱更放心. ...

  8. 花5分钟用Redis撸一个东京奥运会金牌排行榜

    不知道各位最近有没有看东京奥运会啊,昨晚看完是被小日子过得不错的日本人气得不行.好家伙,这届奥运会奥林匹克精神我是没看到,抗日精神硬是给我唤醒了,刚打开了金牌排行榜看了一下,还好暂时还是第一. 虽然说 ...

  9. 花10分钟看一看少走30年弯路

    花10分钟看一看少走30年弯路 HP大中华区总裁孙振耀退休感言 : 如果这篇文章没有分享给你,那是我的错. 如果这篇文章分享给你了,你却没有读,继续走弯路的你不要怪我. 如果你看了这篇文章,只读了一半 ...

最新文章

  1. 如何全面认识联邦学习
  2. JSON serializing and deserializing using JSON.NET
  3. mysql本周数据没有填充_MySql查询本周、本月、本年数据(没有数据则补全0)
  4. 新建站点的mysql数据库_lAMP下新建维护站点全过程
  5. HTML写一个简单网页
  6. 计算机启动命令提示符,7种方式在Windows 10中打开或启动命令提示符 | MOS86
  7. Win10使用以前的图片查看器
  8. nexus+4+android+6,Android 4.1.1+Nexus S安装BT5
  9. 学习笔记——计组—流水线
  10. 【物联网】22.物联网开发之先进传感 - 立体相机
  11. 索引的基本概念及作用
  12. 初识Mongdb之数据查询篇(二)
  13. strrchr和strchr用法
  14. 从后台获取的图片渲染到前端页面
  15. 面向对象----自有属性和共有属性
  16. flutter开发web项目
  17. JAVA程序员工作常用英语(细心整理)计算机常用英语汇总
  18. 单片机 RTC获取时间转时间戳
  19. TCP FACK 与 RACK
  20. pdf,ppt及各文件预览

热门文章

  1. 盗窃60秒java_EOS节点投票60秒刷新一次 EOS Asia 金马(下) 欧链·宁话区块链 EOS超级节点访谈...
  2. Kinect开发笔记之七Visual Studio结合C#调控Kinect俯仰角度
  3. alexa语音实现_如何通过语音删除Alexa录音
  4. 初学者万年历c语言源代码,C语言万年历的源程序
  5. POJ - 2187 Beauty Contest(最远点对)
  6. 【神经网络】神经网络结构在命名实体识别(NER)中的应用
  7. 大数据服务社会的一个有益实践
  8. unity3d Json解析工具类
  9. linux学习-简单命令介绍及安装VMware Tools
  10. [iOS]应用内支付(内购)的个人开发过程及坑!