项目中错误类型的定义和思考

现在开发业务都是微服务,api调用rpc,rpc之间互相调用。除了常规的链接失败或超时以外,还有很多业务上的错误。为了使返回的错误码容易判断和查错,通常会靠一个统一定义的错误代码映射表。其实我们平时http的各种错误码也就是一个映射表。
有一种做法是代码里写死一个映射表文件,每次有新增去修改这个文件。

但是当系统渐渐变大。业务可能会按模块进行拆分并接耦合,业务之间可能只是一个对接,代码repo不会有一个公有的错误码包。这样返回的错误就比较难定位了。再加上每次要去修改文件,彼此之间合代码还可能会出现错误码冲突,然后还要fix merge,很麻烦。

想到一个相对简单的方式,提供一个错误码的微服务,每次代码中要增加新的错误类型就向该微服务请求一个错误码。而所有服务启动时都会调用错误码微服务拉到线上所有的错误码拉到内存,这样就可以实时的保证对各种错误码的映射,可以在捕捉下游调用出错时直接用内存里的错误码映射表打印出错误类型的详细信息,如果下游做的有心的话甚至可以把可能的错误原因都列出来,便于新同学接手。

猜你喜欢

转载自blog.csdn.net/weixin_41571449/article/details/80465400