1. 止于数据订正, 始于数据订正

    数据订正,是指为保证软件正常运行而直接修改数据的运维方式。它像英雄,在千疮百孔的软件系统中救各方于水火,却又像恶魔,在系统恢复后不愿被所有人提及。数据订正如同与魔鬼签订契约,它越好用,我们对它的代价就越讳莫如深。

    2022/06/04 specification

  2. 接口路径设计指南

    接口路径设计 背景 因网关直接对外,所以后端很多内部接口会在无意中被网关透传到公网。 建立统一的路径规则,方便拦截器统一做登录校验 需求 暴露给网关的接口,可以认为直接暴露给公网 暴露给外网用户的接口,要有明确标识,作用如下: 提醒开发要做特殊权限处理 代码走查时可以重点注意是否有安全漏洞 暴露给外网B端的接口都是经过网关权限验证的,不能给C端用户使用 暴露给运管的接口不能给C端用户使用 定时任务接口无需登录,但是不能透传给外部系统 系统无需登录必须有统一路径,以便登录拦截器统一配置规则 设计 暴露给C端、B端、运管端网关的接口虽然都可以对公网,但权限要求不同,因此路径前缀要分开: C 端 /open B 端 /biz 运管端 /admin 定时任务无需登录,但是权限较高,因此前缀也要独立: /task 不需要登录的路径额外加上 /na [表示not authed] 为方便网关以及权限适配,接口版本号应该放在最后,比如: 某个方法更新版本,则:user/list/v1、user/update/v1 某个模块更新版本,则:user/v2/list、user/v2/update 图示

    2022/05/31 specification

  3. BeanPostProcessor 在单测中的应用

    BeanPostProcessor 在单测中的应用 背景 项目的核心功能依赖第三方服务,封装在接口 RemoteService 的实现类 RemoteServiceImpl 中,并注册为 spring 的一个 bean。 和所有第三方服务一样,该服务并不稳定,这就要求单测时,必须要对该服务进行 mock。 相关基础代码如下 ```java /** 封装远程调用服务接口*/ public interface RemoteService { String getRepFromRemote(Integer param); }

    2021/01/17 spring

  4. 记一次死锁的排查过程

    一次死锁的排查

    2020/12/27 database

  5. spring 项目 集成 camunda

    需求 最近要启动一个故障自动化处理的项目。即在系统收到故障告警后,按照一定的规则进行故障的筛查和处理。

    2020/02/26 camunda

  6. spring cloud feign 添加headers

    为 springcloud feign 添加自定义headers

    2019/05/29 spring, feign, headers

  7. spring boot 单测

    spring boot 项目常见单测场景

    2019/03/16 spring

  8. 重写 spring boot 配置属性

    重写 spring boot 中的配置属性

    2019/03/03 spring