甩锅是一个公司的日常活动,为了防止锅扣过来,最基础的就是增加自己服务的健壮性和可追溯性.
健壮性其实是贯穿整个编程过程的,但是我们先增加一个最简单的健康检查接口.
追溯性就是我们知道什么时间,谁干了什么.
rurality/apis.py
rurality/urls.py
base/api.py
rurality/apis.py、 rurality/urls.py:
这里只是增加一个最简单的接口,如果接口是可访问的,就算是正常.
class HealthApi(BaseApi):
NEED_LOGIN = False
need_params = {
}
def get(self, request, params):
# TODO: 检查所需组件的可访问状态
# mysql、redis等
return 'ok'
但是其实里面我们可以增加一些对于其它组件可用性的判断,以后再增加.
base/api.py:
在基础api中增加访问日志,这个访问日志不仅仅记录请求路径,还包括请求参数、请求用户和返回结果.
log_data = {
'url': request.get_full_path(),
'params': request.body,
'user_id': getattr(request, 'user_id', None),
'result': result,
}
access_logger.info(log_data)
增加了这些日志,就可以尽可能的减少日后背锅风险,尤其是涉及多个服务间调用的时间,更要增加全量的调用日志.