程序设计

微服务架构中分布式事务实现方案如何取舍

提起微服务架构,不可避免的两个话题就是服务治理和分布式事务。数据库和业务模块的垂直拆分为我们带来了系统性能、稳定性和开发效率的提升的同时也引入了一些更复杂的问题,例如在数据一致性问题上,我们不再能...

为什么 MySQL 索引要使用 B+树而不是其它树形结构?比如 B 树?

一个问题? InnoDB一棵B+树可以存放多少行数据?这个问题的简单回答是:约2千万为什么是这么多呢?因为这是可以算出来的,要搞清楚这个问题,我们先从InnoDB索引数据结构、数据组织方式说起。我们都知道计算机...

如何写出让同事无法维护的代码

对,你没看错,本文就是教你怎么写出让同事无法维护的代码,保证不会被打死。如果建筑师盖房子就像程序员写程序一样,那么,第一只到来的啄木鸟就能毁掉我们的文明。——Gerald Weinberg 01 程序命名 容易输...

git pull报错

在git pull时,偶尔会遇到一个报错: Unlink of file '.git/objects/pack/old-07de1ebcd020b809a421fceb567977352258b859.idx' failed. Should I try again? (y/n) 不管是y还是n都会不断地出现这种提示信息。...

Spring Websocket实现向指定的用户发送消息

概述 本文我们介绍通过Spring websocket实现向特定的用户发送消息。 本文的内容如下: 1. 首先实现简单的登录功能,这里向特定用户发送消息的必要条件 2. 用户登录系统后,才可以登录websocket,并重写MyPr...

Java性能优化的50个细节

作者丨Java后端开发 https://www.toutiao.com/i6595499804082569742/ 在JAVA程序中,性能问题的大部分原因并不在于JAVA语言,而是程序本身。养成良好的编码习惯非常重要,能够显著地提升程序性能。 1. 尽...

WEB应用安全

开发 WEB 应用的同学应该不少,不知道大家平时开发中,有没有关注过应用开发的「安全问题」。 所谓安全问题,就是开发中不要留下漏洞,给入侵者破坏者机会。 比如,我们常挂在嘴边的安全问题有 「SQL 注入...

InnoDB调试死锁的方法

近期写了不少InnoDB锁相关的文章,不少小伙伴问,如何在MySQL终端模拟并发事务,如何复现之前文章中的案例。今天,咱们一起动起手来,模拟并发事务的互斥与死锁。   【事前准备】 安装MySQL服务...