苏三说技术

其他

高并发下如何保证接口的幂等性?

通常情况下,在保存数据的接口中,我们为了防止产生重复数据,一般会在insert前,先根据name或code字段select一下数据。如果该数据已存在,则执行update操作,如果不存在,才执行
2021年3月28日
其他

我用kafka两年踩过的一些非比寻常的坑

根据以往积累的经验,我直接看了kafka的topic的数据,果然上面消息有积压,但这次每个partition都积压了十几万的消息没有消费,比以往加压的消息数量增加了几百倍。这次消息积压得极不寻常。
2021年2月21日
其他

spring中那些让你爱不释手的代码技巧(续集)

{}这种方式是最灵活的,能在registerBeanDefinitions方法中获取到BeanDefinitionRegistry容器注册对象,可以手动控制BeanDefinition的创建和注册。
2021年1月24日
其他

spring中这些能升华代码的技巧,可能会让你爱不释手

我们使用RestTemplate调用远程接口时,有时需要在header中传递信息,比如:traceId,source等,便于在查询日志时能够串联一次完整的请求链路,快速定位问题。
2021年1月11日
其他

spring:我是如何解决循环依赖的?

'testService1'这个例子中本来如果TestService1和TestService2都没有加@DependsOn注解是没问题的,反而加了这个注解会出现循环依赖问题。
2020年12月29日
其他

explain | 索引优化的这把绝世好剑,你真的会用吗?

test2表是UNION关键字之后的查询,所以被标记为UNION,test1是最主要的表,被标记为PRIMARY。而表示id=1和id=2的表union,其结果被标记为UNION
2020年12月7日
其他

求你别再用swagger了,给你推荐几个在线文档生成神器

示例地址:https://www.servicemesher.com/envoy/intro/arch_overview/dynamic_configuration.html
2020年12月3日
其他

让人头痛的大事务问题到底要如何解决?

}可以将queryData1和queryData2两个查询方法放在事务外执行,将真正需要事务执行的代码才放到事务中,比如:addData1和updateData2方法,这样就能有效的减少事务的粒度。
2020年11月30日
其他

mybatis日志功能是如何设计的?

这里非常有迷惑性,因为它没创建Thread类,并不会多线程执行。我个人认为,这里是mybatis的开发者的一种偷懒,不然需要定义一个新类代替这种执行任务的含义,还不如就用已有的。
2020年11月26日
其他

zuul如果两个filter的order一样,是如何排序的?

需要注意的是,要想使zuul的功能生效,切记要在springboot启动类上定义@EnableZuulServer或@EnableZuulProxy注解,表示开启zuul的功能。
2020年11月23日
其他

mysql的这几个坑你踩过没?真是防不胜防

对于从事互联网开发的同学来说,mysql可谓是再熟悉不过的了。无论是DBA、开发或测试,基本上天天要跟它打交道,很多同学可能已经身经百战了。但是,笔者遇到过的这些坑不知道你们都经历过没?
2020年11月1日
其他

线程池最佳线程数量到底要如何配置?

它是JDK1.8增加的新线程池,跟其他的实现方式都不一样,它底层是通过ForkJoinPool类来实现的。会创建一个含有足够多线程的线程池,来维持相应的并行级别,它会通过工作窃取的方式,使得多核的
2020年10月28日
其他

这8种保证线程安全的技术你都知道吗?

并发情况下如何保证数据安全,一直都是开发人员每天都要面对的问题,稍不注意就会出现数据异常,造成不可挽回的结果。笔者根据自己的实际开发经验,总结了下面几种保证数据安全的技术手段:
2020年10月7日
自由知乎 自由微博
其他

springboot面试杀手锏-自动配置原理

属性的自动配置是通过ConfigurationPropertiesBindingPostProcessor类的postProcessBeforeInitialization方法完成,
2020年9月29日
其他

硬核 | 使用spring cache让我的接口性能瞬间提升了100倍

笔者之前做商城项目时,做过商城首页的商品分类功能。当时考虑分类是放在商城首页,以后流量大,而且不经常变动,为了提升首页访问速度,我考虑使用缓存。对于java开发而言,首先的缓存当然是redis。
2020年9月13日
其他

面试前看了这篇spring事务的文章,让我多要了2k的工资

}}我们可以看到它会解析@Transactional注解上的属性,并且封装到RuleBasedTransactionAttribute对象中。TransactionInterceptor类有什么用?
2020年8月27日
其他

java8 stream的这些开发技巧,你值得好好收藏

转换操作符,可以做数据转换,比如:把字符串转换成int、long、double,或者把一个实体转换成另外一个实体。包含:map,mapToInt、mapToLong、mapToDouble
2020年7月7日
其他

什么是缓存击穿、雪崩、穿透

有大量的请求访问时,只有少部分的key在缓存中存在,而有大量的key不存在,这样请求也会直接访问到数据库,也会导致数据库扛不住压力而挂掉。这种情况往往是黑客伪造请求,发起的恶意攻击。
2020年6月14日