Q : Flomesh和Kong有什么关系?

A : Flomesh团队在尝试为客户交付istio服务网格的过程中,发现istio无法满足一些需求;导致Flomesh团队寻找替代解决方案,因此构建了Kong作为网关的服务网格方案,后续演化成产品。具体而言,Kong和Flomesh有如下的关系:

  • Kong是一个网关软件。Kong社区有其他软件,但是最广为使用的是网关
  • Flomesh是一个服务网格软件,Flomesh使用Kong作为HTTP网关。Flomesh的网关组件是可插拔的,目前支持Kong和Piped;其中Piped支持http/socks/tcp三种模式

Flomesh在使用Kong的时候,对网关(包括Kong和Piped)做了一些我们认为必要的改造和增强,主要技术手段是插件。改造点主要是:

  • Flomesh采用旁路的方式做流量统计;Kong采用串路方式。主要原因是串路方式会带来一些性能影响,有时候甚至影响很大。并且作为结果,Flomesh的流量统计和监控是秒级别、实时
  • Flomesh支持流量镜像,Traffic Mirror
  • Flomesh支持配置导入导出
  • Flomesh支持MySQL DAO
  • Flomesh支持WAF功能(OWASP Top 10)
  • Flomesh支持GEOIP
  • Flomesh支持Skywalking
  • Flomesh支持协议转换,HTTP/Dubbo/TCP三者中任意两者之间转换
  • Flomesh支持格式转换,包括XML和JSON (*注:不支持XML attribute)