本文最后更新于 2024-04-07,文章内容可能已经过时。

FarewellLight

github地址:https://github.com/bearslyricattack/FarewellLight

一个接口管理器,使用内存数据库记录接口的状态,并使用断路器模式实现接口的自动熔断,请求合并(用于解决缓存击穿等问题),A/B测试,文档维护管理等功能。

如果你的项目没有很好的自研网关实现这些功能,而有需要的话,可以考虑使用它。

1.熔断:

采用断路器设计模式开发,使用内存数据库维护接口的状态。

每次发送请求的时候,把请求的返回值存入cbk对象。

cbk对象中维护了一个map,用来保存方法对应的key和返回值,在错误达到一定次数后出发熔断。

访问方法之前,根据方法的key判断是否需要熔断,如果需要就自动返回,不需要就结束。

2.合并:

主要基于go/sync/singleflight开发,使用中介者模式解决它在特殊状态下的熔断策略等问题。

后续可以基于当前方案增添更多的功能。

名字中文翻译为“流光诀”,流光,可指流动、闪烁的光彩,也可指如流水般逝去的时光。(《上林赋》:“应駍声,击流光,野尽山穷,囊括其雌雄。”),最初是一个只关于熔断的项目,采用“诀”既代表与接口的告别,同时也代表与过去的自己的告别与和解。希望每个人都嫩不沉溺于过去美好的时光中,而是转过头,慢慢向前看。