连击 天
fork: star:
参数校验是日常工作里写的比较多的且十分无聊的工作,虽然spring/springboot整合了hibernate validator,可是具体到以下常见的场景,用着还是很不爽,本文尝试提出一个较为合适的套路,来适配...
分布式锁用redis和zk来实现,是常见的做法,下面简单列一下两方的优缺点: redis版本应该是4.0以上,redisson版本3.14.0 public class RedissonLock { private static int count = 0; public...
redisson的限流原理(后面还有新版本方案) RRateLimiter limiter = redisson.getRateLimiter("myLimiter"); // one permit per 2 seconds limiter.trySetRate(RateType.OVERALL, 1, 2, Rate...
先说结论再分析原因: 如果Controller存在AOP切面等动态代理行为,并且Controller注入了service bean,那么如果方法是private修饰,该方法在调用service时会报空指针异常,改为public/protec...
大家有没有想过一个问题,RPC的实现分两部分,序列化与反序列化协议和传输协议,其中传输协议可以用TCP/UDP/HTTP等,序列化与反序列化协议可以用JSON/XML/ProtoBuf/hessian等等,那么能不能消...
Java线程池使用不当会导致很多线上问题,常见的有: 线程池默认使用无界队列,任务过多时,JVM OOM 不设置最大线程数,线程数目暴涨 定时执行,执行一次任务耗时太长甚至一直阻塞,达不到定时...
一个小bug,不过可以调一下mybatis的逻辑,首先加日志打印一下mybatis的日志 log4j2.xml,日志输出有点儿多 <?xml version="1.0" encoding="UTF-8"?> <configuration status="OFF"> <appende...
搭建一个多节点的zookeeper源码调试环境,来一步一步跟调源码,下面是步骤 apache官网下载源码包,同时下载二进制包,用来连接启动的集群测试 https://zookeeper.apache.org/releases.html 解...
不知道有没有人跟我一样,无法忍受mtputty的tab+alt无效的情况,反正我是受够了,哈哈,改用mobaxterm,会好一些。 注意点: 1、保持连接:setting -> configuration -> ssh 2、session set...
如果有全文索引的需求,大部分人会想到使用Elasticsearch,的确,它是一个很好的方案,当数据量并不多时,比如量级十万左右,需要检索的字段并不多,需求并没那么多,是否可以用mysql实现呢?...
网上有很多说出了解决办法的文章,却没有分析原因,解决方法是idea的settings VM Options中加入-Dfile.encoding=GBK或者GB2312,这样乱码就会是正确的汉字,BUT!!!,为什么呢? 原因分析 - ...
基于版本号 创建表 CREATE TABLE test_optimistic_lock_version ( id bigint(20) NOT NULL AUTO_INCREMENT, name varchar(100) NOT NULL, version int(11) NOT NULL, PRIMARY KEY (id) ) EN...
一个神奇的bug,2017年的一个工程A依赖fastjson1.2.7编译出了一个jar包,fastjson中有一个类SerializeConfig,这个类继承了一个put(Object k,Object v)的方法,所以编译出的jar包字节码里写的...
一个上传文件的请求,在请求之前,浏览器先发了一个OPTIONS请求,结果一直返回403forbidden,搞得都怀疑人生了,看tomcat的access日志,确实是tomcat处理的,但是把断点打到处理请求最前端的...
假如现在有一个表,表里记录的是一些延迟消息,也就是在未来某时刻需要发送出去的消息,表的记录数不定,如果很多,那么需要多台机器来执行,如果很少,那么一两台就够了,这时候需要一个领导...
把那些隐隐约约的东西说清楚写下来,还是挺不容易的。 idea安装插件 安装完毕之后重启idea 新建maven工程,名字随便起,pom如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="h...
String split方法很常用,比如"1,2,3,4,5".split(",")返回["1","2","3","4","5"],如果想保留分隔符呢?答案是利用正则表达式的环视功能。 (?=X) X, via zero-width positive lookahead (?!...
没有更多内容
加载失败,请刷新页面
文章删除后无法恢复,确定删除此文章吗?
动弹删除后,数据将无法恢复
评论删除后,数据将无法恢复