polarismesh / polaris

Service Discovery and Governance Platform for Microservice and Distributed Architecture
https://polarismesh.cn
Other
2.37k stars 392 forks source link

是否有计划对接apisix呢 #1136

Open karl-chanel opened 1 year ago

karl-chanel commented 1 year ago

现在polaris对envoy的支持还很不完善,即使现在支持了限流与熔断,那直接用envoy做网关功能仍然十分有限,如果对接了apisix,apisix有很丰富的插件生态,可以分阶段实现,先把最基本的服务发现能力对接上去,路由,限流,熔断等与apisix有些插件能力重合,当然apisix只能实现网关层的灰度限流和熔断,没法实现全链路,但只要把基本的服务发现对接上去,使用者就可以有选择的使用polaris的全链路治理与apisix插件能力,阿里的higress就是基于envoy,在上面可以使用社区的插件生态,但现在和apisix的插件生态完全不能比,所以问下有没有这方面的排期

Ive4 commented 1 year ago

apifox支持eureka,也支持限流熔断,其实你这边所谓的对接完全没必要,其实也就是在UI上对接下,再就是加上染色等功能。 如果不谈染色,基本上apifox网关该有的功能都有了,不需要对接polaris。然后使用polaris来做服务限流等功能就好了。

karl-chanel commented 1 year ago

IT IS APISIX !! ,我不知道你是否知道什么叫做全链路,单层网关限流,灰度超多解决方案,但是开源的在全链路上的流量治理目前就polaris比较好,spring cloud alibaba对应的mse比tse要成熟很多,但是开源版本并没有放出来,他们有在推opensergo了,但速度感人,sentinel2.0原生支持opensergo但还要等一万年!!!,由于polaris支持双注册,我们可以把服务注册到nacos,通过nacos可以实现对polaris的服务发现,这样就能解决基本的服务路由问题,但是无法享受polaris的全链路能力,我去看了下apisix如何实现服务发现,看能不能拓展下对polaris的对接,发现很复杂,如果单纯的只是服务发现,并不是很复杂,但是对比nacos,consul, 如果要对接polaris的全链路治理能力,我们就要在网关层fetch到polaris所有规则,然后在apisix的acess阶段后,在和upstream打交道时根据fetch到的规则来做实例过滤,这只是路由的场景,限流与熔断也要在apisix层做实现,整体复杂度比直接写一个普通的nacos,consul,eureka的服务发现要复杂很多,要对polaris和apisix的底层细节很熟悉,我看了一下apisix那边的社区,腾讯的内部应该是有对接apisix的实现的,因为他们在一个issue里有对自己实现的discovery插件的问题反馈,但这个实现现在并没有放出来,polaris很优秀,但现在在网关层除了spring cloud gateway 在,并没有很好的集成,而scg对比apisix,higress等网关性能差太多,看到这条issue的lua和polaris大佬,如果有兴趣,可以帮忙对接一下开源的apisix,我们现在并没有用polaris这一套,所以真的没有太大精力动力去花太多时间啃一下底层自己实现