技术笔记
文章平均质量分 68
常用技术栈深入研究探讨
TomCosin
做人要有梦想
展开
-
Apollo配置改动动态加载
Apollo配置加载以及改动动态加载实现使用@ApolloConfigChangeListener+RefreshScope实现动态加载。@ApolloConfigChangeListener注解,基于事件监听。使用该注解将会自动注册ConfigChangeListener,监听到Apollo的配置修改。RefreshScope实现spring刷新配置。代码@Componentpublic class ApolloRefreshListener { @Resource pri原创 2022-03-29 14:40:25 · 1692 阅读 · 0 评论 -
Springboot核心注解笔记
springboot启动类://spring快速启动@SpringBootApplicationpublic class MySpringBootApplication { public static void main(String[] args) { SpringApplication.run(MySpringBootApplication.class);...原创 2018-10-18 11:37:07 · 520 阅读 · 0 评论 -
java异步延迟任务执行
今天遇到一个奇怪的需求:需要在某个操作后,延迟10min执行另一个操作。一 新建线程首先想到的方法便是新建一个线程完成此操作:输出看起来这个操作没有问题 ,但是现在项目中就有问题了。 这是阿里代码检查工具的提示。试想一下,每次进行这种操作便新建线程是不可取的,如果这个操作执行多次,便会创建大量线程,对虚拟机运行造成巨大的压力。二 使用线程池输出结果...原创 2018-09-17 20:39:59 · 18853 阅读 · 1 评论 -
HashMap数据结构--java基础面试大Boss
前言:几年前刚刚冲学校出来出来,参加的第一家面试,面试java基础,第一个问题就是hashmap数据结构。当时我的反应是这样的:啥?啥结构,什么数?什么构?不就是get、put?后来经过百度,看各种帖子,也算是了解了一些,面试时也算是能跟面试官说说hashmap数据结构了,毕竟天天问。问道最后也能“谈笑风声”了。。。。后来在工作之余慢慢看了数据结构这本数,看了下数据结构的视...原创 2018-09-19 15:18:42 · 1496 阅读 · 0 评论 -
浅看java线程池
上文:https://blog.csdn.net/TomCosin/article/details/82748312 在项目中一般使用线程池来进行异步、多线程操作,但是在创建线程池时也会又各种情况,比如说使用jdk自带的Executors,在某些情况下会出现一些问题。如上面提示所说,使用Executors在实际项目中运行的确会有各种风险。那么我们就需要手动的创建线程池。先...原创 2018-09-18 14:09:07 · 201 阅读 · 0 评论 -
【java】如何排查服务器程序异常
web服务运行时,如果发生各种卡顿和假死,该如何去排查检查服务器磁盘情况使用df或者free命令查询磁盘情况服务器磁盘空间不足时,会导致某些要写入磁盘的方法阻塞,可能会导致服务不可用。解决方法:清理磁盘不需要的文件,或者扩容。查询服务器内存和cpu使用情况使用top命令查看运行内存和cpu消耗如果有非java程序占用了较高的cpu和内存,则排查该程序是否正常。是否是其他外部因素占用了服务器大量资源。系统内存MEM内存不足,排查各个服务占用内存情况。在没有其他服务干扰情况下,使用j.原创 2021-03-29 11:31:56 · 738 阅读 · 0 评论 -
线上mysql的update语句获取锁超时情况分析以及复盘
线上mysql的update语句获取锁超时情况分析以及复盘现象多租户项目生产环境下,需要进行数据修复,执行一条update语句。在执行过程中一直报获取锁超时,无法执行初步分析有其他事务,将需要修改的数据上锁,导致update获取锁超时。那么开始分析该租户是否有需要执行时间很长的事务。发现另一个租户,正在异步的执行大方法,该方法有一个很大的事务。初步分析结果:一个大的事务,将需要改的数据上了锁,一直没有释放,导致无法执行。深入分析为什么我update一个租户的数据时,会去获取另一个租户的事务原创 2021-07-12 14:13:59 · 1684 阅读 · 2 评论 -
Spring Event事件驱动
Spring Event事件驱动简介在一些应用场景中,我们希望程序是被“事件”触发运行的,并且程序在感知到不同的“事件”后能够产生不同的响应动作,此时就需要应用程序能够实时“感知”其所关心的事件,并在事件发生后执行相应的操作。总结:由事件驱动业务进行。常用的设计模式:观察者模式、发布订阅模式。使用场景将不相干的业务解耦,比如完成业务操作后的短信通知之类的可以解耦的逻辑。异步处理,在发布事件后,处理可以是异步完成,在有些耗时较长业务处理时,可以拆分逻辑,有些可以异步事件处理。对比类似技术原创 2021-07-28 13:14:42 · 507 阅读 · 0 评论 -
分布式AKF拆分原则
前言当我们需要分布式系统提供更强的性能时,该怎样扩展系统呢?什么时候该加机器?什么时候该重构代码?扩容时,究竟该选择哈希算法还是最小连接数算法,才能有效提升性能?在面对 Scalability 可伸缩性问题时,我们必须有一个系统的方法论,才能应对日益复杂的分布式系统。这一讲我将介绍 AKF 立方体理论,它定义了扩展系统的 3 个维度,我们可以综合使用它们来优化性能。什么是AKFAKF 立方体也叫做scala cube,它在《The Art of Scalability》一书中被首次提出,旨在提供.转载 2021-08-02 19:39:35 · 1021 阅读 · 0 评论 -
hibernate使用防雷指南(持续更新)
hibernate使用防雷指南hibernate使用过程中遇见的问题线上莫名其妙有些持久态对象需要update的数据没有update了。有些代码仅仅修改了属性,并没有显示的调用update,却更新了。持续更新inghibernate存储机制hibernate持久化对象首先先了解hibernate管理对象的两种状态游离态,实例化的对象,并未在hibernate的管控之中比如:Person person = new Person();托管态/持久态:在hibernate管理中的实例化对象原创 2021-07-19 10:49:46 · 245 阅读 · 0 评论