随笔分类 -  Java

摘要:背景 公司的中台产品,需要对外部API接口返回的JSON数据进行采集入湖,有时候外部API接口返回的JSON数据层级嵌套比较深,举个栗子: 上述的JSON数据中,最外层为请求返回对象,data里面包含返回的业务数据,业务数据按照学校 / 班级 / 学生进行嵌套 在数据入湖时,需要按照最内层的学生视角 阅读全文
posted @ 2023-03-31 11:26 codest 阅读(1281) 评论(0) 推荐(0) 编辑
摘要:书接上回 在 Java自定义ClassLoader实现插件类隔离加载文章中,我们通过 自定义ClassLoader + 插件独立打包引入的方式,实现了同依赖不同版本的隔离加载 这次咱们来分析下具体实现原理 打破双亲委派机制 首先,双亲委派机制不会自己去尝试加载类,而是把请求委托给父加载器去完成,依次 阅读全文
posted @ 2022-02-15 15:46 codest 阅读(1278) 评论(0) 推荐(0) 编辑
摘要:为什么需要类隔离加载 项目开发过程中,需要依赖不同版本的中间件依赖包,以适配不同的中间件服务端 如果这些中间件依赖包版本之间不能向下兼容,高版本依赖无法连接低版本的服务端,相反低版本依赖也无法连接高版本服务端 项目中也不能同时引入两个版本的中间件依赖,势必会导致类加载冲突,程序无法正常执行 解决方案 阅读全文
posted @ 2022-01-26 13:40 codest 阅读(1983) 评论(0) 推荐(0) 编辑
摘要:业务场景 需要同时从多个副本数据库中查询数据,并对查询结果进行合并去重处理后返回前端。 实现过程涉及多数据源切换,这里不作过多讨论。 编码实现 实现过程: 1、定义异步查询数据方法; 2、通过CompletableFuture的allOf方法对多个异步执行结果进行处理; public class C 阅读全文
posted @ 2021-03-05 15:30 codest 阅读(13607) 评论(0) 推荐(0) 编辑
摘要:【产品需求】 对所有元数据进行分析,匹配出表字段相似度达到阈值的向相似结构表关系数据。 网上没有搜到相关算法实现,只能自己动手了。 【算法实现】 简单点实现的话,可以轮询所有表,每张表都和其它表进行匹配相似度,不过这是人干的事?如果有1W张表岂不要查询1W × 9999次? 1、先统计出相同字段、表 阅读全文
posted @ 2020-09-04 18:47 codest 阅读(381) 评论(0) 推荐(0) 编辑
摘要:import com.alibaba.druid.sql.SQLUtils; import com.alibaba.druid.sql.ast.SQLStatement; import com.alibaba.druid.sql.visitor.SchemaStatVisitor; import c 阅读全文
posted @ 2020-08-20 15:07 codest 阅读(4180) 评论(1) 推荐(0) 编辑
摘要:调用一个接口,发送POST请求,浏览器和Postman均返回正常,代码中用RestTemplate和HttpClient均返回乱码 开始一直以为是编码问题导致,网上查了解决方法,也看了源码,都不对症 最后发现在请求头header中有两个配置项,如下: "Accept-Encoding":"gzip, 阅读全文
posted @ 2020-08-09 22:37 codest 阅读(594) 评论(0) 推荐(0) 编辑
摘要:报错现象 线上项目使用HttpClient请求第三方的HTTP资源,并发量高的时候,日志框报Timeout waiting for connection from pool 客户端的现象是有时正常,有时报错 原因分析 网上查找资料,很多照搬某个博客的解决方法,大致是合理的使用EntityUtils. 阅读全文
posted @ 2020-06-12 23:02 codest 阅读(2870) 评论(0) 推荐(0) 编辑