minibear2021 / wechatpayv3

微信支付 API v3 Python SDK
MIT License
829 stars 130 forks source link

请教在分布式场景下的考量 #37

Closed dingdayu closed 10 months ago

dingdayu commented 11 months ago

HI,@minibear2021

首先感谢对项目的开源,我们都是开源项目的受益者。

这个 Issue 想请教下作者,在分布式场景下对这款 SDK 使用的思路。

多节点,多 Work 时,作者如何考虑 多个 WeChatPay 事例,将需要多个证书维护线程,理论上看,微信支付官方对证书下载接口的频次为:1000 次/s,但考虑到多节点时,叠加多 Work 时,如果不能共享,终归不是太好(当然也注意到获取到证书后将证书写入文件)。

当然理论上这个问题不会很要紧,因为如果分布节点到达那么多时,往往已经服务化改造了,但是否代表着这里存在者上限。

另外,根据通读下来的理解,_update_certificates 在更新或者获取证书时,如果出现在被动更新时,被并非的触发更新时,是否有可能存在并行的触发更新。

minibear2021 commented 11 months ago

确有需要的话,可以考虑hook一下update_certificates,转接到一个外部service,在这个service里做证书请求和缓存控制。

minibear2021 commented 10 months ago

没有新的更新就关闭了。