摘要: 1. 【背景】AB实验SDK耗时过高 同事在使用我写的实验平台sdk之后,吐槽耗时太高,获取实验数据分流耗时达到700ms,严重影响了主业务流程的执行 2. 【分析】缓存为何不管用 我记得之前在sdk端加了本地缓存(使用了LoadingCache),不应该这样慢 通过分析,只有在缓存失效之后的那一次 阅读全文
posted @ 2022-11-10 16:51 songtianer 阅读(4422) 评论(0) 推荐(0) 编辑
摘要: 1. 背景 新上线了一个服务,在压测的时候大量返回错误,查看报错是io.lettuce.core.RedisCommandTimeoutException: Command timed out after 1 minute(s) 在系统长时间无请求之后会必现 出现之后在十几分钟内不会自动重连 对于刚 阅读全文
posted @ 2022-10-20 14:10 songtianer 阅读(7757) 评论(0) 推荐(2) 编辑
摘要: 1. 背景 偶尔会在公司的项目里看到这样的代码 List<Info> infoList = new ArrayList<Info>(); if (infoidList.size() > 100) { int size = infoidList.size(); int batchSize = PER_ 阅读全文
posted @ 2022-10-05 19:30 songtianer 阅读(665) 评论(0) 推荐(0) 编辑
摘要: 1. Class.isAssignableFrom 偶然看见同事写的一段代码是这样的 if( AfterRender.class.isAssignableFrom( assembly.getClass() ) ){ afterRenders.add( ( AfterRender )assembly 阅读全文
posted @ 2022-09-15 20:07 songtianer 阅读(92) 评论(0) 推荐(0) 编辑
摘要: 此文主要讲解: 如何实现操作记录 如何将TransmittableThreadLocal和@Async搭配使用 TransmittableThreadLocal阿里的一个开源组件,为了在使用线程池等会池化复用线程的执行组件情况下,提供ThreadLocal值的传递功能,解决异步执行时上下文传递的问题 阅读全文
posted @ 2022-09-07 20:37 songtianer 阅读(1352) 评论(0) 推荐(0) 编辑
摘要: 背景 有一个需求大概是这样的,为了提高推荐系统的性能,需要本来从A服务获取的帖子信息,改为从Redis里面重新读取 Redis里面没有存帖子的所有信息,只存储了推荐系统必要的字段 大概是这样的: 至于Redis如何批量和实时维护数据我们不用管,只要还能从Redis读到之前的帖子信息即可 实现 这个实 阅读全文
posted @ 2022-08-23 10:12 songtianer 阅读(71) 评论(0) 推荐(0) 编辑
摘要: 《自私的基因》是理查德·道金斯讲解基因的一本书,写于上个世纪70年代 前言中提到的内克尔立方体,寓意是告诉我们要以多角度看世界,七个习惯中的少女与老妇图也是相同的意思,正如本书中的视角非常独特 前提和概述 看到这个书名你可能会误解,自私是一个贬义词,用于描述基因有点贬低基因和人的意思,但这的自私是一 阅读全文
posted @ 2022-08-10 10:03 songtianer 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 背景 在项目使用了Spring Security之后,很多接口无法访问了,从浏览器的网络调试窗看到的是CORS的报错和403的报错 分析 我们先来看一下CORS是什么,和它很相似的CSRF是什么,在SpringSecurity中如何配置以及起的什么作用 CORS(Cross Origin Resou 阅读全文
posted @ 2022-04-07 19:19 songtianer 阅读(964) 评论(0) 推荐(0) 编辑
摘要: 背景 在配置中心增加权限功能 目前配置中心已经包含了单点登录功能,可以通过统一页面进行登录,登录完会将用户写入用户表 RBAC的用户、角色、权限表CRUD、授权等都已经完成 希望不用用户再次登录,就可以使用SpringSecurity的权限控制 Spring Security Spring Secu 阅读全文
posted @ 2022-04-02 19:05 songtianer 阅读(659) 评论(0) 推荐(0) 编辑
摘要: MySQL中的select for update大家应该都有所接触,但什么时候该去使用,以及有哪些需要注意的地方会有很多不清楚的地方,我把我如何使用和查询到的文档在此记录。 作用 select本身是一个查询语句,查询语句是不会产生冲突的一种行为,一般情况下是没有锁的,用select for upda 阅读全文
posted @ 2022-03-29 16:14 songtianer 阅读(12781) 评论(0) 推荐(2) 编辑