工作中在一个网关服务中,对于一个接口的响应体ApiResponse,由之前返回给上游的“一定成功的响应”,改成了 返回 有可能包含“失败的响应”。当服务端业务逻辑处理失败时,封装了失败的响应体给上游后,上游校验到响应状态码ERROR后报警。
我们再来讨论响应体这个事情如何更优雅:
首先看服务端接口本身在提供什么能力,如果可降级,就返回降级结果,打印warn日志,对于降级结果如果真失败,这时候就要和上游去沟通好一个协议,告诉他们:“如果我们真的真的失败了,我们会给你一个ERROR状态呢,再或者返回一个空结果列表,状态为SUCCESS”。意味着可降级的失败对别人屏蔽掉,不可降级的要建立好 服务SLA。
我们再回过头来看“协议”的概念,我们知道从网络设备到上层应用都在遵循着各种各样的协议,上面讨论的问题理应获得和底层协议等价的重视态度,再当我们遇到类似事情的时候,脑中才可以敏锐的察觉到这是一个关于“协议”的事情,而不是具体的xxx,才会从协议打破的视角去思考产生的影响,而不是“明学思维”: 我感觉 我认为~
生活中的“协议”。 我们说“三十而立”后再谈原则,原则是不是可以理解为 自我协议和 与他人协议 的达成和坚定维护。自我协议打破 人易被侵蚀底线。组织小到工作组,大到社会,组织协议打破,信任体系崩塌。年轻时很少有原则,大概是没去理解协议的价值。类比 分布式数据一致性协议,所有节点长期以来都认为我和大家数据都一样的,后来有一天master同步从节点数据开始是不是偷懒了,系统可用性危在旦夕,从新选举master,建立好信任体系。
其实一想,一个运转良好的系统,一定程度上是协议非常清楚可靠的。
本文发布于:2024-01-28 14:57:23,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064250488226.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |