以 Jackson 为例,展示几个 Java 对象序列化时容易忽略的问题。
前些日子对接数仓服务,在某天写入元信息时突然报了一波失败,失败信息为主键重复。
Duplicate entry '67' for key 'PRIMARY' (MySQL error.)
由于数仓服务是为我们业务部门独立搭建的服务,定位为”联合运维”,迫不得已共同排查问题。过程中了解到数仓的设计,也让我大跌眼镜。
项目中需要使用 DAG 结构表示离线任务、数据源血缘关系及数据流向,采用 MySQL 来存储 DAG 数据结构并完成增删改查等常规功能。这里对 MySQL 存储、操作、遍历 DAG 图的方法进行记录。
记录一个由于 Protostuff 序列化缺陷导致 RPC 调用失败的问题。
在调试调用公共网关服务时出现了很奇怪的现象,用 Postman 请求接口会提示跨域。
Invalid CORS request
而将请求 cURL code 原样复制出来使用 curl 命令请求则会正常返回。
项目需要引入 Thrift Client 进行第三方调用,引入的过程本身是很简单的,但写的时候还是尽量抽象一些公共逻辑,避免过多的重复代码,这里记录一种比较优雅的方式。