摘要: Java最大的地基(护城河)是其极其强大的软件生态以及极其庞大的使用者人群。 在云原生的时代下,Java的统治地位不仅没有到什么坚不可摧,无后顾之忧的程度,说Java目前处于危机四伏的地位都不为过。最根本的原因是,目前随着云原生时代的到来,有一些以前植入Java语言的基因之中的,很多的假设前提,其实 阅读全文
posted @ 2023-05-28 11:58 road2master 阅读(93) 评论(0) 推荐(0) 编辑
摘要: 操作系统级别的上下文切换 操作系统级别的上下文切换是指当一个线程在执行过程中发生某种事件(如时间片用完、发生中断等),操作系统需要暂停当前线程的执行,保存其上下文(如寄存器状态、程序计数器、堆栈指针等),并切换到另一个线程继续执行的过程。这种上下文切换是由操作系统内核完成的,它涉及到对进程控制块(P 阅读全文
posted @ 2023-05-20 23:02 road2master 阅读(178) 评论(0) 推荐(0) 编辑
摘要: RPC(Remote Procedure Call,远程过程调用)和HTTP(Hypertext Transfer Protocol,超文本传输协议)是两种不同的通信协议,用于在计算机网络中实现不同系统之间的通信和数据交换。 RPC(远程过程调用): RPC是一种通信机制,允许一个程序调用另一个运行 阅读全文
posted @ 2023-05-20 21:34 road2master 阅读(55) 评论(0) 推荐(0) 编辑
摘要: 现象与恢复 Prometheus监控报警数据库服务器CPU一直维持在100%以上,没有丝毫下降。 重启消费MQ消息的服务,以及MySQL实例后,CPU使用率断崖式下降,系统访问正常了。 原因分析 第一时间,判断是慢查询所致。查看阿里云SQL分析工具,总扫描行数这个指标有异常,达到了亿级。并发现大量的 阅读全文
posted @ 2023-05-18 01:06 road2master 阅读(48) 评论(0) 推荐(0) 编辑
摘要: 线程安全是什么? ​ 维基百科:线程安全是程序设计中的术语,指某个函数、函数库在多线程环境中被调用时,能够正确地处理多个线程之间的公用变量,使程序功能正确完成。 ​ 《Java并发编程实战(Java Concurrency In Practice)》的作者Brian Goetz:当多个线程同时访问一 阅读全文
posted @ 2023-05-02 21:26 road2master 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 敏捷开发、系统重构、设计模式是软件开发中不同的概念,它们之间有一些联系和相互影响。 敏捷开发方法强调快速响应客户需求,通过迭代和增量的方式来开发软件。在敏捷开发中,设计模式可以被用来提高软件质量和可维护性,因为设计模式是已经被证明有效的软件设计方案。在开发过程中,团队可以使用设计模式来提高代码的复用 阅读全文
posted @ 2023-04-16 20:42 road2master 阅读(66) 评论(0) 推荐(0) 编辑
摘要: TCP keepalive(保活机制) TCP keepalive是TCP协议的保活机制。 为什么说保活呢,因为TCP连接建立后是一直存在的,虽然理想情况下,这个TCP连接的通讯链路肯定是能通的,但是现实情况是会受一些其他因素影响导致通讯链路不同,但是TCP连接还是在客户端和服务端之间保持着,也就是 阅读全文
posted @ 2022-11-25 15:02 road2master 阅读(123) 评论(2) 推荐(0) 编辑
摘要: 以下转载,原文链接:https://dayarch.top/p/spring-boot-starter-custom.html 写在前面 我们每次构建一个 Spring 应用程序时,我们都不希望从头开始实现具有「横切关注点」的内容;相反,我们希望一次性实现这些功能,并根据需要将它们包含到任何我们要构 阅读全文
posted @ 2022-11-24 15:29 road2master 阅读(1030) 评论(0) 推荐(0) 编辑
摘要: 一开始synchronized锁的实现是基于操作系统的提供的信号量(PV操作)实现的,这个就叫重量级锁这个实现默认一定存在数据竞争,不管有没有数据竞争都枷锁,所以是一种悲观的线程安全实现方法。所有最大的问题就是性能问题,会有用户态到核心态转换等一系列比较消耗资源的操作。 所以JDK6是专门做了优化, 阅读全文
posted @ 2022-11-10 17:19 road2master 阅读(104) 评论(0) 推荐(0) 编辑
摘要: MySQL为什么有时候会选错索引? MySQL判断选择哪个索引时,这个是优化器的工作。优化器会根据扫描的行数、是否回表、是否使用临时表、排序等来判断使用索引还是全表扫描。 优化器计算扫描行数的逻辑是预估的方式 ,是通过对索引的采样统计计算出来的,所以判断的行数不准确时就会选错索引。 什么情况索引会失 阅读全文
posted @ 2022-11-10 11:50 road2master 阅读(90) 评论(0) 推荐(0) 编辑