技术选型架构
1. elk
- 使用 ilogtail 替代 logstash,因为当产生日志的速度高于发送日志的速度的时候,会丢失日志
- 而 ilogtail 的日志会先存储在本地,这样子就不存在丢失日志的情况,采用异步来将日志定时定量发送给 es
- 如果是非本地的日志部署在服务器上,k8s 维护的 pod 容器本身是不存储日志的,日志可以在当前部署的服务器上目录可以找到,如下图所示:
2. 接口冥等
- 网上采用 token 实现冥等,会存在网络延迟,第一次发送 token 请求后,中间重试了几次,服务端在 redis 更新了 token,而客户端最后接收到了第一次发送生成的 token,客户端从而拿到了过期的 token
- 采用分布式锁保持冥等的话,要注意锁住的粒度,大概情况为:一个人重复支付了好几次…对于第三方调用,服务端回滚了,第三方会不一定回滚