
Spring使用
文章平均质量分 61
Spring日常使用中遇到问题总结
hunger_wang
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
SpringAOP切面编程实践建议
背景AOP,面向切面编程,理念深入人心,使用范围也很广。在日常开发中,我们经常用Spring AOP实现一些横向功能复用,比如下列场景方法或外部接口调用增加入参出参及耗时日志拦截方法调用增加本地或远端分发接口增加鉴权或限流逻辑大部分情况下,我们实现AOP功能时,切点通常采用@Pointcut注解描述,采用execution表达式形式如@Pointcut("execution(* cn.biz.abc.xyzClass.methodA(..))")。这种实现方式有没有什么缺点呢?原创 2021-10-25 19:35:35 · 232 阅读 · 0 评论 -
RedisTemplate写入Redis数据出现乱码补充
上篇RedisTemplate写入Redis数据出现无意义乱码前缀\xac\xed\x00\x05,我在排查问题及给同事分享过程中,获得了一些收获,这里补充记录下。关于中文Java里中文采用UTF8编码,占3个字节。如粤,UTF8编码为\xE7\xB2\xA4。所以按上篇文章计算数据长度时,1个汉字占3个字节。关于乱码显示乱码显示并不影响用实际数据去直接查询。如上一篇样例\xac\xed\x00\x05t\x00-abcd:abc:xxxxxx:passport:associated:key:29原创 2021-10-21 19:07:41 · 456 阅读 · 0 评论 -
RedisTemplate写入Redis数据出现无意义乱码前缀\xac\xed\x00\x05
背景项目使用Spring的RedisTemplate进行Redis数据存取操作,实际应用中发现Redis中key和value会出现“无意义”乱码前缀\xac\xed\x00\x05t\x00-(样例\xac\xed\x00\x05t\x00-abcd:abc:xxxxxx:passport:associated:key:29708)。这个乱码前缀是怎么产生的呢?有什么含义?是不是固定的?带着这三个问题,我们一探究竟。疑问探究怎么产生的org.springframework.data.redis.c原创 2021-07-13 23:27:43 · 8485 阅读 · 5 评论 -
RestTemplate实例化问题
RestTemplate实例化方式方式1,直接newRestTemplate restTemplate = new RestTemplate() 这种方式使用SimpleClientHttpRequestFactory创建JDK的HttpURLConnection进行http请求。http连接超时时间connectTimeout和读取超时时间readTimeout都是0。方式2,使用RestTemplateBuilderRestTemplate restTemplate = new RestT原创 2020-08-28 13:05:25 · 2325 阅读 · 0 评论 -
SpringCloud多线程链路追踪
SpringCloud项目,如果采用sleuth实现链路追踪,使用线程池时用建议Configuration配置方式实例化线程池Bean,这样可以用到sleuth链路追踪,输出日志有traceId和spanId,方便我们查看整个执行日志。定义有2种Executor可以定义Spring的ThreadPoolTaskExecutorJDK的ThreadPoolExecutorimport org.springframework.context.annotation.Bean;import org原创 2020-08-21 18:41:04 · 3183 阅读 · 4 评论 -
Spring Cloud Stream消费Kafka消息出错时消费3次问题探究
背景系统采用Spring Cloud Stream框架集成Kafka来实现异步消息。问题客户端消费某个topic消息出错时,会连续输出这个消息内容3次,同时没有提交offset。当有大量消息出错时,topic出现消息积压。分析首先,我们知道实现异步消息的系统架构一般包含3个部分:生产者Producer、消息中间件Broker、消费者Consumer。其中,消息中间件Broker,是...原创 2020-01-17 12:04:33 · 2620 阅读 · 0 评论 -
微服务利用redission实现Redis分布式锁的一次问题定位
微服务利用redission实现Redis分布式锁的一次问题定位背景系统是微服务架构,一个服务部署多个节点。某个业务由消息触发,可能出现多个消息触发多个节点同时处理同一个业务情况,最终导致这个业务表现不正常。多个节点同时处理同一个业务,本质上是并发问题,一般处理方法是对临界资源加锁(这里同一个业务即是临界资源)。因为是分布式系统,所以采用Redis实现分布式锁。利用redission库...原创 2019-09-16 21:16:15 · 1200 阅读 · 4 评论 -
Docker环境undertow线程数不足问题探究
Docker环境undertow线程数不足问题探究背景上篇Docker环境Spring Boot应用大量http请求超时,我们找到大量http请求超时原因:undertow的工作线程不足。留下一些疑问:undertow默认配置是怎样的?为什么其他微服务也使用默认参数,却有256个工作线程?结论k8s调度启动容器默认分配的cpu资源很小和OpenJDK 1.8.0_181会感知容器资源限制...原创 2019-06-14 18:55:36 · 6106 阅读 · 1 评论 -
Docker环境Spring Boot应用undertow大量http请求超时
Docker环境Spring Boot应用大量http请求超时背景项目采用Spring Cloud微服务架构,每个微服务都是一个Spring Boot应用。undertow做嵌入式Web容器,http接口相互通讯。使用阿里云容器服务部署在Docker环境。Spring Boot版本——1.5.9.RELEASEundertow版本——1.4.21.Final问题一个关键微服务接...原创 2019-05-13 20:00:29 · 9875 阅读 · 0 评论 -
Spring Boot 1.0 Web服务优雅下线
Spring Boot 1.0 Web服务优雅下线Web服务优雅下线定义停止接收新的服务已经接收的请求正常处理并返回停止应用环境约束Spring Boot 1.5.9.RELEASEundertow 1.4.21.Final实现方案方案一,使用SpringApplication.exit(applicationContext)方法方案二,调用spring-boot-ac...原创 2019-02-20 09:42:16 · 1589 阅读 · 0 评论 -
初探Spring Scheduler
@Scheduled(cron=**)注解来实现定时任务会全部阻塞吗???原创 2017-02-15 22:57:01 · 3046 阅读 · 0 评论 -
奇怪的Spring找不到类异常FatalBeanException
Spring初始化上下文时就报: java.lang.NoClassDefFoundError:org.springframework.beans.FatalBeanException原创 2016-10-01 00:01:22 · 12034 阅读 · 4 评论