RUI个人博客 首页>>spring

spring boot动态调整线上日志级别

spring boot动态调整线上日志级别

前言碎语 日志模块是每个项目中必须的,用来记录程序运行中的相关信息。一般在开发环境下使用DEBUG级别的日志输出,为了方便查看问题,而在线上一般都使用INFO级别的日志,主要记录业务操作的日志。那么问题来了,当线上环境出现问题希望输出DEBUG日志信息辅助排查的时候怎么办呢?修改配置文件,重新打包然后上传重启线上环境,之前确实是这么做的。下面会介绍使用动态调...

阅读全文 »

记spring boot快速改造老项目

记spring boot快速改造老项目

前言碎语 博主公司一个项目在开发中使用某些功能的时候,受限于spring低版本的限制,故索性将整个模块升级为spring boot,在这里做个记录,希望能帮助到有相同场景的朋友。整个改造过程非常简单,耗时大概在2个小时左右,主要解决项目中的各种版本冲突,不过下面我会介绍一个神器。 老项目情况 1.项目使用spring-context作为容器,使用RabbitMQ提供Rpc服务 2.spring.springframework 版本比较...

阅读全文 »

spring-boot-klock-starter分布式锁项目开源

前言碎语 spring-boot-klock-starter是一个基于redis的分布式锁spring boot starter组件,使得项目拥有分布式锁能力变得异常简单,支持spring boot,和spirng mvc等spring相关项目, 使用和接入都非常简单方便,现开源出来,给所有需要分布式锁能力的项目提供一个方案 项目地址: https://gitee.com/kekingcn/spring-boot-klock-starter 快速开始 spring boot项目接入 1.添加lock starter组件依赖,目前还没上传到公共仓库...

阅读全文 »

谈谈我职业生涯中第一个真正意义上的开源项目

谈谈我职业生涯中第一个真正意义上的开源项目

走进开源的世界大概有两三年时间了,开源带给我的太多太多,如(dubbo,motan,disconf,jfinal,druid,apollo)等等,太多了,我接触并使用的大概不下二三十个项目,跑过实例未来可能用到的项目不下百个项目。这些优秀的项目不仅能在公司项目中使用,读这些项目的代码和架构也能快速增长自己的技术技能。所以一直以来也想通过自己的方式来反馈开源。 1.分享自己实践的技术: http://...

阅读全文 »

记阿里Druid数据连接池引发的线上血案

记阿里Druid数据连接池引发的线上血案

前言碎语 事件起因:项目使用了activiti工作流,系统是由老的spring mvc项目改造成的spring boot项目,数据库链接池从dbcp切换到druid,新系统上线后,同事多次系统隔一段时间后数据查询就很慢,基本出不来。由此开始了线上bug排查之路。这个问题从一开始就模糊定位到数据库层面的问题,因为只有和数据相关的操作会很慢,其他服务不受影响,并且在中午休息时没有问题,在下午刚上班...

阅读全文 »

spring boot集成WebSocket实时输出日志到web页面

spring boot集成WebSocket实时输出日志到web页面

前言碎语 今天来做个有趣的东西,就是实时将系统日志输出的前端web页面,因为是实时输出,所有第一时间就想到了使用webSocket,而且在spring boot中,使用websocket超级方便,阅读本文,你会接触到以下关键词相关技术,WebSocket(stopmp服务端),stomp协议,sockjs.min.js,stomp.min.js(stomp客户端),本文使用到的其实就是使用spring boot自带的webSocket模块提供stomp的服务端,前端使用stomp.min.js做sto...

阅读全文 »

springMvc DeferredResult的long polling应用

1.了解servlet以及spring mvc中的异步? Spring MVC 3.2开始引入了基于Servlet 3的异步请求处理。相比以前,控制器方法已经不一定需要返回一个值,而是可以返回一个java.util.concurrent.Callable的对象,并通过Spring MVC所管理的线程来产生返回值。与此同时,Servlet容器的主线程则可以退出并释放其资源了,同时也允许容器去处理其他的请求。通过一个TaskExecutor,Spring MVC可以在另外的线程中调用Callabl...

阅读全文 »