自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Tomcat那些事儿

剖析源码,分析原理与应用

  • 博客(381)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 我一个INSERT 还能被你 UPDATE 给卡住?

许多语言和工具都通过锁,来保证并发场景下数据和逻辑的正确性,MySQL 也不例外。除了行锁、表锁这种范围粒度外,还有这种针对读和写的 S锁共享锁 和 X锁独占锁。随着锁定范围的不同,锁与锁之间的互相影响也差异很大,这一点很好理解。比如一个操作加了表锁之后,另一个想加行锁就得等待;而一个行锁一般并不会影响锁另一行的行锁。除了书本上和八股文,你有没有遇到过这些锁相关的问题呢?...

2022-05-30 07:57:44 465 1

原创 怎样查看运行中的 Spring 应用配置?

某天,开发的代码在 CI 阶段遇上了这样一个看似比较「怪异」的问题:代码在 CI 时,有一个步骤会跑去单元测试。因为依赖了远程的配置中心,所以有两份配置存在,一个在配置中心,一个是本地的 yml 文件。这两份配置里使用的是两个不同的数据库。一般情况下,本地开发可以方便在 yml 里设置需要的属性做测试,再把不同环境下的配置加到配置中心,相当于不同的 profile。而这个...

2022-05-16 07:30:00 712

原创 怎样实现一个分布式的公平锁?

在并发的场景下,很多时候,我们的业务开发中会有加锁的操作,以此来保证执行的互斥,保障业务逻辑。比如在 Java 里就有多种基于 AQS 的组件,方便使用。创建锁的时候,还可以特别的指定一下,当前这个锁,是否需要公平。/** * Creates an instance of {@code ReentrantLock} with the * given f...

2022-04-14 07:54:00 1238

原创 你喜欢跑步吗?

在很早以前,学校里经常能看到这样的一句口号:「德智体美劳,全面发展」,对于其中的「体」,当时我一直以为是强调,要让学生有健康的体魄。后来的学校里,每周会有一节「体育」课,也和我理解基本一样...

2022-03-15 08:40:02 238

原创 深入 Java 虚拟机HotSpot 源码的书籍,这本不错

我估计不少 Java 技术栈的同学有阅读源代码的习惯,特别是 JDK 自带的那些源码。在 IDE 里点击跳转就能看明白,在 JDK 内部各种数据结构是怎样实现的,各种线程安全在 Java ...

2021-11-22 08:42:15 2406

原创 不伤眼编程启蒙,一套送给孩子有趣又有意义的礼物

在计算机出现的早期,科研人员要在机器上编写程序,都需要长长的带子,在上面打孔,完成代码的编写,计算机再读入并解析带子上的孔,完成代码的输入,相当复杂,极易出错。我们今天就方便太多了,甚至手...

2021-10-25 07:59:22 356

转载 Thinking in Java 8、Java 11、Java 17 | Bruce Eckel 重讲 Java 的编程思想

Java 从 1995 年第一个版本诞生到现在,一度想要用 Java 打造网络操作系统的 Sun 公司,却在企业级应用的跑道上遍地开花。一门编程语言的兴起,往往伴随着一本文笔流畅,包含大量...

2021-10-13 07:34:06 431

转载 Redis源码阅读全景

我个人比较喜欢去读开源框架、软件的一些源码,从源码里去发现其架构设计思路,功能的实现方式,以及优秀的代码等。像 Redis 还只在文档和书籍里看过零星的源码。像这样的项目,别人是怎样上手阅...

2021-08-17 08:15:20 268

原创 在线阅读源码的新方法

平时的日常工作中,你是在什么环境阅读源码的呢?是 git clone 到本地,然后导入常用的IDE 再开始阅读呢,还是直接在浏览器里点击各个源码文件的链接不断跳转?也有可能你说,早就安装了...

2021-08-16 07:42:13 379

转载 端午送书

挺久没更新了,一是忙,二是懒,:-) ,就快端午节了,感谢各位朋友的关注和支持,联合华章图书送一波高质量Java经典图书。▊《深入理解计算机系统》理解计算机系统首首选书目, 10余万程...

2021-06-11 08:34:56 144

原创 把责任归咎于驴

「把责任归咎于驴」,这是最近读过的『Java 性能优化实践』书里,提到的一个 性能优化的反模式。也就是我们在不了解事情真相的时候,固执的认为一定是另一个原因导致的,驴莫名其妙就成了背锅的...

2021-03-09 09:07:34 96

原创 gRPC,云原生应用开发的水煤电

微服务和云原生架构越来越火热的今天,服务之间通信的能力越来越显得重要。这其中最常见 HTTP(RESTFul) 和 RPC 这两种通信风格。比如 Spring Cloud 技术栈常见的服务...

2021-02-24 13:30:00 369

原创 Spring 创建Bean 时是怎样判断条件的?

我们在 Spring/ Spring Boot Starter 或者一些框架的源码里经常能看到类似如下的注解声明,可能作用在类上,也可能在某个方法上:@ConditionalOnPrope...

2021-02-03 08:00:00 436

转载 MySQL高效学习路线

毫无疑问,MySQL 是当下最流行的开源数据库。凭借强大的性能和易于使用性,它已被Google、Facebook、YouTube、百度、网易和新浪等大型互联网公司所应用。但我发现,很...

2021-01-26 08:43:16 269 1

转载 SQL 优化极简法则

SQL 本身并不难学,编写查询语句也很容易,但是想要编写出能够高效运行的查询语句却有一定的难度。查询优化是一个复杂的工程,涉及从硬件到参数配置、不同数据库的解析器、优化器实现、SQL 语...

2021-01-26 08:43:16 101 1

原创 为什么Java程序会执行一段时间后跑的更快?

对于Java 应用,程序员之间一个认识口口相传:要看一个Java程序跑的快不快,需要多跑几次;另外,Java程序跑一段时间之后会快起来。速度甚至能赶上 C/C++程序的速度。如果你问为...

2021-01-18 08:00:00 267

原创 五分钟爆改,把你的JSON/CSV文件打造成MySQL数据库

生活中,你我一定都看到过这种「xx元爆改出租屋」,「爆改小汽车」之类的文章,做为IT人,折腾的劲头一点也不差。软件开发过程中,你是否有时候,会拿着业务提供的一个个CSV或者JSON的数据...

2021-01-03 09:00:00 287

原创 写代码效率不高?放过 Ctrl C 和 V,让 AI 来能帮你写代码吧

本文首发自微信公众号 - Tomcat那些事儿(tomcat0000)做为程序员,不知道你有没有想像过,如果某天,不再需要面向Google、Stackoverflow编程,不再需要Ctrl + C 和 Ctrl + V,你在IDE里敲出某个编程语言的关键词时,像导航一样,下一步的代码就已经展现出来;做为程序员,不知道你有没有想像过,如果某天,简单说几句话,或者简短写几句,就能够实现你的需求,完成代码开发。谈笑间,bug 灰飞烟灭。一切尽在弹指一挥间;做为程序员,不知道你有没有想像过,如果某天,写

2020-12-30 19:49:06 253

原创 JVM:有些内部信息我悄悄告诉你

对于 Java 的反射使用, 一般用户都有所了解。特别是在开源框架里更是大量的使用。通过反射,我们能拿到一个Java Class 的信息。那对于 JVM 的内部信息,像堆的使用情况、线程...

2020-12-30 09:16:38 160

转载 深入Spring Cloud组件的底层原理

目录一、业务场景介绍二、Spring Cloud核心组件:Eureka三、Spring Cloud核心组件:Feign四、Spring Cloud核心组件:Ribbon五、Spring ...

2020-12-29 08:51:26 184

原创 快放开那些捣乱的猴子!

粗看标题你可能感觉莫名其妙,什么「捣乱的猴子」,还要放开。不急,且听我说说为什么不光要放开这些捣乱的猴子,还要欢迎他们。0.背景信息在构建高可用性软件架构领域,有个词叫「混沌工程」,对应...

2020-12-11 08:20:00 109

原创 写代码效率不高?放过Ctrl C 和 V,让AI来能帮你写代码吧

做为程序员,不知道你有没有想像过,如果某天,不再需要面向Google、Stackoverflow编程,不再需要Ctrl + C 和 Ctrl + V,你在IDE里敲出某个编程语言的关键词...

2020-12-04 07:30:36 147

原创 满船空载月明归

标题来自一首富有禅理的诗,最近在一本书里读到的时候,惊叹不已。月光如水,空船而去,空船而归,但满载一船月辉归来,心里满是欢喜。有时候一年即将过完,回过头来看时会发现,每年开始的时候,自己...

2020-11-25 13:34:11 160 1

原创 查看运行中Java Class 源码的三板斧

线上跑了个应用,总感觉运行结果和你预期的有出入,而且代码似乎和你本地的也不一致。这可咋办,一咬牙,一跺脚停机重新上线吗?那是够折腾的,我们来了解几种不停机来查看 Java 应用Class...

2020-11-18 08:10:44 233

转载 百度商业系统大规模微服务分布式监控实践

导语作为凤睛早期的接入方、后期的核心成员,笔者经历了整个项目前后四年的变迁,看过项目的艰难开端、中期的默默积累以及后期的蓬勃发展。每一次架构的变迁都带着技术浪潮的烙印,也看到项目成员利用...

2020-11-11 08:00:00 147

原创 不用Jar 包的Agent? 几行代码实现运行时增强?

提起 JavaAgent,很多人都说几句,就像古龙武侠小说里的「孔雀翎」,威力很大,江湖上都是它的传说。但真的见识过的人并没几个。JavaAgent 虽说没这么神秘,但也一直给人曲高和寡...

2020-11-10 08:00:00 182

原创 Sentinel 是怎样拦截异常流量的?

各位在家里用电的过程中,一定也经历过「跳闸」。这个「闸」就是在电量超过负荷的时候用来保护我们用电安全的,也被称为「断路器」,还有个响亮的英文名 -- CircuitBreaker。和用电...

2020-09-15 08:07:23 493

转载 OLAP数据库ClickHouse,补充你的弹药库

ClickHouse是由俄罗斯搜索引擎公司Yandex公司开源的OLAP数据库,性能表现优异,官方的基准测试中,平响速度是Hive的126倍,MySQL的429倍。从2016年开源以来,...

2020-09-09 13:05:11 149

原创 免安装,还原生产环境,运行中切换版本,这不是我认识的MySQL

MySQL,用了好多年了吧,在你印象里是不是一直都是四平八稳,做为一个基础组件,也不期待啥了。如果说想线下调度,集成测试,想用一个内存数据库,你可能会说那H2, Derby吧,不都可以嘛...

2020-09-02 13:54:53 60

转载 饿了么4年 + 阿里2年:研发路上的总结与思考

作者 | 石佳宁“最重要的是选择,最困难的是坚持。”我是在 2014 年入职饿了么,从前端和 PHP 一直做到后端架构和团队,从 2014 年到 2017 年陆续负责过公司客服、销售、代...

2020-08-29 09:12:59 124

转载 让bug无处藏身,Java 线上问题排查思路、常用工具

本文总结了一些常见的线上应急现象和对应排查步骤和工具。分享的主要目的是想让对线上问题接触少的同学有个预先认知,免得在遇到实际问题时手忙脚乱。只不过这里先提示一下。在线上应急过程中要记住,...

2020-08-28 14:40:42 109

原创 多表查询用什么联接?别信感觉,用数据说话

英文链接:http://coding-geek.com/how-databases-work我们在做SQL查询的时候,经常会用到各各种关联查询,对于不同的联接,效率还是有差别的,具体该用...

2020-08-27 13:50:14 109

原创 一个数据库SQL查询的数次轮回

本文译自:http://coding-geek.com/how-databases-work我们使用数据库,直观感受上是客户端发送一个 SQL,数据库把这个SQL执行一下,查出来数据返回...

2020-08-26 13:29:13 169

转载 某公司用了7年的分布式锁方案...

提到数据一致性、操作原子性,诸如此类的一些与并发有关的词汇时不知道你第一时间会联想到什么呢?我相信大多数人可能会想到“锁”,为什么是锁呢,这个我不多说,大家心里应该都明白。在单体应用时代...

2020-08-25 08:05:06 51

原创 数据库是咋工作的?(一)

数据库做为我们日常开发的一个组件或者说基础服务,也许有人认为把它当个黑盒直接用就好,费那事儿干嘛。确实数据库的设计也做到了让我们不了解也能干活。但实际开发中往往会遇到性能退化、遇到bug...

2020-08-24 21:30:20 102

转载 160买400的书,快来薅当当,别放过它

又到囤书季!当当开学季,百万自营图书>>每满100减50 <<满200减100满300减150满400减200不止如此!秉持绝不让大家多花一分钱的精神华章IT...

2020-08-24 21:30:20 80

原创 凭什么让日志先写?

在生活中,你一定有过类似这样的经历:比如部门发礼品、或者说学校发课本。如果在发放的时候,大家一窝蜂的涌了过来,毕竟双拳双敌四手,渐渐你就招架不过来。为了工作更好做,你会有几个选择,提前打...

2020-08-20 13:46:10 220

转载 SpringBoot 三招组合拳,打造出优雅的后端接口

作者:RudeCrab链接:suo.im/5YMt2A一、前言一个后端接口大致分为四个部分组成:接口地址(url)、接口请求方式(get、post等)、请求数据(request)、响应数...

2020-08-19 07:53:15 74

原创 揭开 Raft 的神秘面纱,和ApacheRatis 了解Raft 组件的使用

之前写过一些关于 Raft 原理的文章。图解分布式一致性算法Raft协议详解相比 Paxos, Raft 一直以来就是以易于理解著称。今天我们以一年 Raft 使用者的角度,来看一下,别...

2020-08-14 08:39:58 1173

转载 大量的 TCP 连接是 TIME_WAIT 状态,有什么影响?怎么处理?

ningg.top/computer-basic-theory-tcp-time-wait/你有没有遇到过进程里开了许多连接,但一看状态都是 TIME_WAIT,如果 TIME_WAIT...

2020-08-04 08:16:26 628

spring security chm帮助文档 不可多得的

学习spring security 不可多得的好帮手。2.0

2010-02-02

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除