NJet event 框架性能百倍提升,Why and How
背景 NJet在做动态化能力设计时,曾利用了基于mqtt消息的event框架,整体实现为利用CoPilot框架实现了一个消息的broker,同时CoPilot ctrl进程作为api server,接收http请求,转化为消息后,发送给沙箱进程做配置验证,验证后,广播给作为消费者的所有的worker进程应用配置变更。 当时的设计初衷是event框架仅仅做简单的api配置变更,假设了这类配置动态变更数量比较少,所以仅仅是功能上的考虑,性能没有做太多要求,所以上图所显示的client发送http请求后,这一套标序号的流程走下来,完成过程是10ms这个级别,平均约50ms。 随着NJet在不同场景的应用,有两个关键性的需求对这套event框架的性能需求提出了严重挑战,第一是实际生产环境的超大规模配置数据;第二是某些业务场景需要快速的worker间数据交换。 先说下大规模配置数据的挑战。由于NJet支持server及location级别的动态化,以及可以动态配置上游成员,实际生产中频繁碰到了过百个,甚至1000+上游成员, 而server也有近100级别,因此通过动态api下发配置,常常耗时超...

