摘要: 最近的一次上线突然发现系统的某些数据库查询偶尔会超过300ms, 正常的情况都只有100ms,我花了一段时间开始调查原因,这篇文章记录了整个过程。 项目背景 项目提供了一个支持水平扩展的功能,扩展是基于扩展多数据库来分散压力,我就是在这个大场景下要求新增一些数据库来环境线上的压力。 线上分为南方和北 阅读全文
posted @ 2019-12-01 18:04 洛神灬殇 阅读(1733) 评论(1) 推荐(0) 编辑
摘要: 工程中的配置文件如果把数据库的用户名密码写成明文的话是一件很危险的事情,之前也看见网上说可以对密码进行加密,用的时候再解密,因此今天我就尝试如何在spring boot 中的项目中实现关键信息的加密解密,并记录下来。 jasypt Jasypt is a java library which all 阅读全文
posted @ 2019-12-01 17:50 洛神灬殇 阅读(598) 评论(0) 推荐(0) 编辑
摘要: 背景 废话不多说,做这个监控的背景很简单,我们的项目都是以spring boot框架为基础开发的,代码里所有的异步线程都是通过@Async标签标注的,并且标注的时候都是指定对应线程池的,如果不知@Async标注的,可以参考@Async异步线程池用法总结, 如果你用的不是spring,就参考上文提到的 阅读全文
posted @ 2019-12-01 17:41 洛神灬殇 阅读(1339) 评论(0) 推荐(0) 编辑
摘要: 线程池介绍 什么是线程池、线程池核心类、线程池工作流程、线程池分类、拒绝策略、及如何提交与关闭线程池等。 但在实际开发过程中,在线程池使用过程中可能会遇到各方面的故障,如线程池阻塞,无法提交新任务等。 如果你想监控某一个线程池的执行状态,线程池执行类 ThreadPoolExecutor 也给出了相 阅读全文
posted @ 2019-12-01 17:17 洛神灬殇 阅读(1628) 评论(1) 推荐(0) 编辑
摘要: 线程池全面解析 什么是线程池? 很简单,简单看名字就知道是装有线程的池子,我们可以把要执行的多线程交给线程池来处理,和连接池的概念一样,通过维护一定数量的线程池来达到多个线程的复用。 线程池的好处 我们知道不用线程池的话,每个线程都要通过new Thread(xxRunnable).start()的 阅读全文
posted @ 2019-12-01 17:05 洛神灬殇 阅读(317) 评论(0) 推荐(0) 编辑
摘要: https://naver.github.io/pinpoint/ https://github.com/naver/pinpoint 背景 随着项目微服务的进行,微服务数量逐渐增加,服务间的调用也越来越复杂,我们急切需要一个APM工具帮我们监控各个服务的性能及对服务间的调用进行跟踪,而通过调研多个 阅读全文
posted @ 2019-12-01 00:13 洛神灬殇 阅读(1310) 评论(0) 推荐(0) 编辑