news 2026/10/22 11:40:42

JMeter 安装全指南:JDK 环境、版本选择与三大平台配置实操

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
JMeter 安装全指南:JDK 环境、版本选择与三大平台配置实操

JMeter 是后端性能测试绕不开的工具,可它偏偏不是装完双击就能用的那种软件——先得准备合适的 Java 环境,再想清楚装哪个版本,解压目录、环境变量、内存参数这些细节也会一个个跳出来。我见过不少同事卡在“安装”这一步,最后排查半天发现是 JDK 版本没对齐。这篇就把 Windows、macOS、Linux 三个平台的完整流程整理出来,从下载、解压、配环境变量到验证启动,顺带把安装后要马上调整的几项配置也讲清楚,给新手上手和旧机器重装都做一份可直接照做的参考。

1. 安装前必读:先确认三件事再动手

很多 JMeter 安装教程上来就让人下载,结果资料下载完还解压了,启动却报错。这类问题我排查过不少,根源大多不是 JMeter 本身,而是准备工作没做到位。动手前先把下面三件事确认好,后面基本不会出幺蛾子。

1.1 版本怎么选:二进制包、源码包和“Latest Release”的区别

打开 JMeter 官网的 Download 页面,通常会看到两类下载入口:一类是二进制版本(Binary),另一类是源码版本(Source)。普通用户和性能测试工程师要选的一定是二进制包,后缀一般是.zip或.tgz。源码包是给想二次开发、研究内部实现的人准备的,直接解压源码再手动编译,完全没有必要。

二进制包里又分“Latest Release”(最新稳定版)和“Older Releases”(历史版本)。我个人一直建议直接用稳定版,不要追求刚发布的大版本。JMeter 这种工具本身迭代节奏不算快,社区对稳定版的插件兼容性更好,很多第三方插件在你使用新版本时可能还没适配。官网标注的 Latest Release 通常是经过一段时间验证的版本,绝大多数情况下“下载这个”就是最优解。

还需要留意的是下载页给出的文件格式。Windows 用户一般下载.zip,macOS 和 Linux 用户下载.tgz更省事,后续解压命令也统一。文件大小通常在 100MB 上下,体积不大,但也要等一会儿,别因为下载快就忽略完整性校验,这一点下面单独说。

1.2 JDK 版本与 JMeter 的匹配关系:最容易被忽视的前置条件

JMeter 是一个基于 Java 开发的图形化工具,没有 JDK 或 JRE 它根本跑不起来。被问得最多的一个问题就是“我电脑装了 Java 怎么还是打不开?”每次追问版本号,答案基本都是“装的是 Java 8”,而拿到的 JMeter 可能是新版。这里需要搞清楚版本对应关系:

  • JMeter 5.x 系列要求 Java 8 及以上,但要流畅跑起来,Java 11 或 17 更稳妥。
  • 如果用的是较早的 4.x 版本,Java 8 没问题;新版本对 Java 8 的支持虽然没砍掉,但在高 JDK 下功能验证更充分。

截至 2025 年,我建议统一安装 JDK 17。它属于长期维护版本,稳定性和生态兼容性都经过了大规模验证。JMeter 5.6 系列在这个 JDK 上跑得很稳,实测下来没有遇到模块访问限制的异常,旧版本在 JDK 11+ 上偶尔出现的--add-opens问题在新版本里也基本销声匿迹。

检查本机 Java 环境,命令行窗口里输入java -version就行。输出里有版本号,比如java version "17.0.10",说明环境没问题。如果提示找不到命令,说明要么没装 JDK,要么装完没配环境变量,这些在下面的平台章节里会分别讲。要注意的是,JMeter 运行需要的是 JDK 或完整的 JRE,不是浏览器里的 Java 插件,别装错东西。

1.3 下载与校验:别让一个残缺文件毁掉一晚上

下载这件事看起来简单,实际上我见过不少因为下载源不稳定导致压缩包损坏的情况,表现就是解压到一半报 CRC 错误,或者解压成功但jmeter.bat双击后闪退。

一个稳妥的做法是:下载完成后,先看一眼文件大小是否和官网标注一致,再用校验工具比对 SHA512 或 SHA256 值。官网下载页面通常会给出校验值,把本地文件拖进校验工具里对比,一致就放心解压。Windows 下可以打开 PowerShell,运行Get-FileHash .\apache-jmeter-xxx.zip -Algorithm SHA512来查看;macOS 和 Linux 自带shasum -a 512命令,操作起来都很方便。

下载速度慢的情况,优先选择官方提供的镜像站。JMeter 官网的 Download 页面里会列出多个镜像入口,选地理位置相对近的那个即可。不建议去第三方博客找不明来源的安装包,安全性和完整性都得不到保证。装软件这种事,源头靠谱能省掉后面一大半问题。

2. Windows 安装实操:解压、配环境变量、启动验证

Windows 上装 JMeter 是最常见的场景,很多公司压测机的系统就是 Windows Server。整体流程不复杂,但细节不少,我按自己的安装习惯拆开讲。

2.1 解压到哪个目录:路径选择背后的原因

下载好.zip压缩包后,解压目录不是随便选的。我建议放在一个纯英文、无空格的路径下,例如D:\tools\apache-jmeter-5.6.3。这么做有几个实际原因:

  • JMeter 的命令行脚本在路径含有中文或空格时,偶尔会出现处理异常,尤其在后来的命令行压测中。
  • 环境变量配置需要指向固定的目录,路径简单不容易写错。
  • 后续升级版本时,直接解压到同级目录即可,方便切换和维护。

解压之后,目录结构大概长这样:bin目录里是启动脚本,lib目录是各种依赖和插件,logs目录存放运行日志,jmeter.properties这类配置文件也在根目录下。Windows 上主要用到的就是bin\jmeter.bat和bin\jmeterw.exe(后台启动方式)。

解压期间注意观察进度,如果中途报错,先检查是不是杀毒软件拦截了部分文件,或者压缩包没下载完整。解压完成后,可以顺手记一下完整路径,后面配环境变量要用。

2.2 配置 JMETER_HOME 和 PATH:让 jmeter 命令随处可用

解压完成后,理论上直接双击bin\jmeter.bat就能启动图形界面,但不配置环境变量的话,后面想在命令行里执行jmeter命令做压测就会很别扭。规范做法是配两个变量:

  1. 新建系统变量JMETER_HOME,值填解压后的根目录,例如D:\tools\apache-jmeter-5.6.3。
  2. 在Path变量中添加%JMETER_HOME%\bin。

配置路径:右键“此电脑” → 属性 → 高级系统设置 → 环境变量。在“系统变量”区域新建变量,再把bin路径追加到Path里。注意是追加,不要覆盖原有内容。

配置完还要让配置生效。Windows 下可以通过新开一个命令行窗口验证,运行jmeter -v,如果输出一堆版本信息,说明环境变量配置成功。如果提示“不是内部或外部命令”,检查两个地方:一是JMETER_HOME路径是否指向了解压根目录(不是 bin 目录),二是Path里是否确实添加了%JMETER_HOME%\bin。配置错的话,最容易犯的就是把路径写到D:\tools\apache-jmeter-5.6.3\bin而不是用变量引用,这样也行,但换版本以后还是要改,用变量引用就省事多了。

2.3 启动验证与一个隐藏技巧

环境变量配置好之后,在命令行输入jmeter,脚本会自动打开图形界面。首次启动等几秒钟就能看到页面,此时说明基本安装成功。

但 Windows 上有一个常见的坑:直接双击jmeter.bat时如果窗口一闪而过,什么提示都没有,十有八九是 Java 环境没找到。这时候不要双击,而是打开命令行,切到 JMeter 解压目录的bin下面,手动执行jmeter.bat。这样命令行窗口会停留在错误信息上,能看到具体原因——常见的就是 “java 不是内部或外部命令”,或者是 JDK 版本太低。

图形界面启动后,默认会有个“捐赠”提示之类的欢迎页,不用管。记得顺手把界面语言调到中文:Options → Choose Language → Chinese(Simplified)。启动成功仅仅是一个开始,后续做测试前还要调整堆内存和插件包,这部分我在第 5 节单独展开。

3. macOS 安装实操:手动安装与 Homebrew 两种路线

macOS 下装 JMeter 有两条常见路线:手动从官网下载解压,或者用 Homebrew 包管理器安装。两条路各有优劣,我分别说清楚,读者按自己的使用习惯选就好。

3.1 手动安装:官方 TGZ 包的完整流程

macOS 用户从官网下载.tgz格式的二进制包,然后打开终端,执行以下命令解压:

cd ~/Downloads tar -zxvf apache-jmeter-5.6.3.tgz

解压后会生成apache-jmeter-5.6.3目录。我个人习惯把它移动到/Applications或~/tools目录下统一管理,移动时终端里操作:

mv apache-jmeter-5.6.3 /Applications/apache-jmeter

然后进入/Applications/apache-jmeter/bin,运行sh jmeter就能启动。如果这里提示“无法打开,因为无法验证开发者”之类的安全拦截,说明文件被 macOS 的 Gatekeeper 标记了,处理方法在 3.3 节专门讲。

为方便后续随时启动,可以给执行脚本做一个符号链接:

sudo ln -s /Applications/apache-jmeter/bin/jmeter /usr/local/bin/jmeter

做完这一步,终端里直接敲jmeter就能调起界面。macOS 上不建议手动去改/etc/paths或者填.zshrc环境变量来配 JMeter,符号链接的方式更干净,升级版本时只需重新做一次链接即可。

3.2 Homebrew 安装:命令行党最省心

如果你机器上装了 Homebrew,那 JMeter 的安装就一句话的事:

brew install jmeter

Homebrew 会自动拉取依赖、完成安装,并把可执行文件链接到合适的位置。装完后在终端运行jmeter -v就能验证。

这里需要注意版本来源:Homebrew 仓库中的 JMeter 更新可能比官网稍有延迟,但隔得不会太久。用 Homebrew 的好处是卸载和升级都很方便,brew upgrade jmeter就能更新到最新版本。缺点则是默认安装路径相对固定,修改配置文件的位置和官网手动安装略有差异,如果之前用过官网包,可能不太习惯。

用 Homebrew 安装后,JMeter 实际存放在类似/opt/homebrew/Cellar/jmeter/版本号的目录下,其中lib/ext用来放插件。如果后续要装插件管理器,要把 jar 包放到这个实际路径的lib/ext中,而不是单纯依赖brew命令默认显示的路径。这个细节查资料时容易绕晕,先记住brew list jmeter能查看真实安装位置就好。

3.3 macOS 安全策略拦截:一个常见却好解决的小麻烦

macOS 对非 App Store 下载的应用有 Gatekeeper 保护机制,从官网直接下载的 JMeter 首次运行时,很容易遇到“无法打开,因为 Apple 无法检查其是否包含恶意软件”的弹窗。

处理方式有几种:

  • 系统设置 → 隐私与安全性,手动点击“仍要打开”。
  • 或者在终端执行:
sudo xattr -dr com.apple.quarantine /Applications/apache-jmeter

执行后重新运行脚本即可。这个方法也适用于整个目录下所有脚本,能一次性解除多个文件的隔离标记。

另一种思路:如果是用 Homebrew 安装的,一般不会触发这条拦截,因为 Homebrew 会用自己的方式处理签名和权限。所以 macOS 上如果不想和安全策略折腾,Homebrew 是更省心的路线。

4. Linux 安装实操:命令行全流程与环境配置

Linux 服务器是最常见的压测执行环境,因为性能测试通常要跑在稳定、可长时间运行不重启的机器上。生产环境没有图形界面也完全不影响使用 JMeter,命令行模式照样能跑得飞起。

4.1 下载、解压到指定目录

Linux 下安装流程以命令行操作为主。假设把安装包放在/opt目录下,用wget下载:

cd /opt wget https://example.com/path/to/apache-jmeter-5.6.3.tgz

下载下来后解压:

tar -zxvf apache-jmeter-5.6.3.tgz

解压后生成/opt/apache-jmeter-5.6.3目录。出于目录简洁的考虑,可以再移动一下重命名:

mv /opt/apache-jmeter-5.6.3 /opt/jmeter

把 JMeter 放在/opt/jmeter,路径短,后面配置里写起来也方便。然后进入bin目录,执行sh jmeter验证是否能在当前环境跑起来。如果服务器没有图形环境,这一条命令会报错,这不代表安装失败,只是无法启动 GUI,后面用无头模式即可。

生产环境安装时还有一个建议:用专门的运维账号而不是 root 运行 JMeter。压测会消耗较多 CPU 和内存资源,用独立账号便于做资源隔离和权限控制。目录归属用chown调整好,例如:

chown -R 压测用户:压测用户组 /opt/jmeter

这个细节在真实项目里很重要,也常被忽略。

4.2 环境变量与符号链接:让 jmeter 命令全局可用

Linux 上让jmeter在任何路径下都能执行,有两类做法。

最直接的是创建符号链接:

ln -s /opt/jmeter/bin/jmeter /usr/local/bin/jmeter

这种做法简单明了。升级 JMeter 版本时,把旧目录替换掉之后重新指向一下链接即可。

另一种做法是写入环境变量。在~/.bashrc或~/.zshrc末尾添加:

export JMETER_HOME=/opt/jmeter export PATH=$JMETER_HOME/bin:$PATH

保存后运行source ~/.bashrc让配置生效。两者选一个就好,我偏向符号链接方案,因为对环境变量配置的错误容忍度低一点,符号链接出错更容易发现。

配置完成后,执行jmeter -v确认版本信息正常输出。

4.3 无 GUI 环境下的 JMeter:压测真正的主场

没有图形界面的 Linux 服务器,启动 JMeter 需要用命令行参数。无头模式下执行测试脚本的命令结构是:

jmeter -n -t /path/to/test.jmx -l /path/to/result.jtl -e -o /path/to/report

参数含义逐一说清楚:

  • -n:以非图形模式运行。
  • -t:指定 JMX 测试脚本文件路径。
  • -l:保存原始结果数据文件,通常以.jtl结尾。
  • -e:在测试结束后生成 HTML 报告。
  • -o:指定 HTML 报告输出目录,目录必须为空或不存在。

如果服务器上存在图形界面但想在无界面状态下运行,加-n就够了。这也是为什么 JMeter 很适合部署在服务器上的原因,它本质上是一个 Java 程序,不依赖 Windows 或 macOS 的图形桌面。

安装阶段建议就先验证一下无头模式能否正常运行。随便创建一个最简单的测试计划,或者直接运行自带示例:

jmeter -n -t /opt/jmeter/bin/examples/CSVSample.jmx -l /tmp/test_result.jtl

如果这条命令能跑完不报错,说明安装已完全就绪。服务器上不跑 GUI 时,堆内存和 GC 参数配置对长压测的稳定性影响极大,这部分放到下一节讲。

5. 安装后第一时间要调整的配置

很多人装完 JMeter,双击起来看到界面就算完事,接下来直接开始录制脚本。但有几项配置如果不提前调整,测试跑到一半就会出现内存溢出、插件找不到、报告不生成之类的问题。我建议装完之后的第一时间,先把下面这些做掉。

5.1 调整 JVM 堆内存:减少测试中途崩溃的概率

JMeter 是 Java 程序,默认堆内存设置是为日常小规模使用准备的。压测时如果创建大量模拟用户,每个线程都会占用堆空间,默认配置很容易遇到OutOfMemoryError。

调整入口是两个启动脚本:

  • Windows 端修改bin\jmeter.bat。
  • Linux 和 macOS 修改bin\jmeter.sh。

脚本中找到HEAP相关的配置行,类似:

HEAP="-Xms1g -Xmx1g -XX:MaxMetaspaceSize=256m"

-Xms是初始堆大小,-Xmx是最大堆大小。压测机内存充裕的话,建议把两个值都设为物理内存的一半左右,例如机器有 8GB 内存,可以设置:

HEAP="-Xms2g -Xmx2g -XX:MaxMetaspaceSize=512m"

这里有一个原则:-Xms和-Xmx建议设置成相同值,避免 JVM 在运行中频繁调整堆大小,影响测试结果的稳定性。另外,不要盲目给 JMeter 分配过大堆内存,堆内存过大反而会增加 GC 停顿,一般给到 2GB 到 4GB 就足以应对大多数压测场景。修改后要重启 JMeter,配置才能生效。

5.2 安装插件管理器:扩展功能的基础操作

JMeter 默认功能已经不少,但一些常用功能需要安装扩展插件才能用,比如图表绘制增强、定时器增强、自定义监听器等。手工从各处下载插件 jar 包容易版本冲突,统一方式就是装一个插件管理器。

安装步骤很简单:把插件管理器的 jar 包下载到 JMeter 的lib/ext目录,重启 JMeter,菜单栏就会多出“Plugins Manager”相关选项。之后通过插件管理器一键安装其他插件,会自动处理依赖关系,也会提示不兼容的插件,比手动管理省心得多。

这里提醒一个容易踩坑的点:插件有各自对应的 JMeter 版本范围,新版 JMeter 出来后,插件不一定是立即适配的。过旧的插件强行安装到新版本 JMeter 上,轻则功能异常,重则拖慢整个工具的启动速度。所以插件的升级跟着 JMeter 版本走,别独立追新。

lib/ext目录不要随手塞太多东西。JMeter 启动时会加载这个目录下的全部 jar 包,插件装得太多,启动速度和执行性能都会受影响。保持精简,用装什么,不用的及时移出。

5.3 顺手检查的几个配置项:影响报告与中文显示

有几句配置我会在每次重装后都检查一遍,它们不在安装必需项里,但直接影响使用体验。

第一是采样结果编码。编辑bin目录下的jmeter.properties文件,确认或修改以下配置:

sampleresult.default.encoding=UTF-8

如果接口返回内容含中文,不设置 UTF-8 的话报告里很容易看到乱码,排查起来很烦。

第二是语言设置。新版 JMeter 默认语言跟随系统,不过有的环境识别有误,导致界面显示英文。可以在jmeter.properties中找到language配置项,取值zh_CN强制切换为中文。

第三是监听结果保存格式。如果测试结束想生成 HTML 报告,确认结果文件保存格式设置为 CSV 或 JTL,并勾选记录响应时间、响应消息等基础字段。报告里需要哪些指标,最好在测试计划里提前用“配置元素”勾选,而不要完全依赖后端默认格式。

6. 常见启动问题排查与避坑实录

有安装环境摆在那里,JMeter 装完起不来并不罕见。下面这几个问题是我在真实使用中见过最多、处理成本也不高的,整理成速查形式,方便遇到时报错直接对照。

6.1 缺少 Java 环境或版本过低:启动报错的头号原因

症状:双击脚本瞬间退出,或者命令行提示“java 不是内部或外部命令”“未找到命令”“需要 Java 8 或更高版本”。

排查思路分两步:

  1. 确认是否安装了 JDK:java -version有输出,说明装了。
  2. 确认版本是否满足当前 JMeter 要求:版本号低于 8,或者版本号为 1.6 / 1.7,都太低。

我自己在真实项目里遇到过一台服务器,系统里自带的 Java 是 8,跑 JMeter 4.x 没问题,后来升级到 5.6 系列就报版本错误。更换成 JDK 17 之后整个过程恢复了正常。所以遇到这类报错,第一反应不应该去改 JMeter 代码,而是老老实实升级 JDK。

6.2 脚本闪退:如何看到真正的错误日志

Windows 用户双击jmeter.bat闪退,是重装后最常问的问题。闪退本质就是脚本执行出错,但关闭窗口太快看不到输出。

处理方法前面已经提到过,就是在命令行里手动运行脚本:

cd D:\tools\apache-jmeter-5.6.3\bin jmeter.bat

这次窗口会停留在错误信息界面上,把报错贴到搜索引擎里,就能基本定位问题。常见错误有:

  • 找不到java.exe:JDK 装好了但 PATH 没配好。
  • UnsupportedClassVersionError:JMeter 版本和 JDK 版本不匹配。
  • 缺少某个类文件:lib目录文件不完整,重新解压或校验包。

macOS 和 Linux 终端里跑sh jmeter,看到的就是直接输出,排查思路一致。还有一个容易错过的细节:如果下载的是源码包而不是二进制包,解压后bin目录里可能没有可执行脚本,或者结构不对,当然也会闪退。

6.3 中文乱码与字体异常:界面或报告不显示汉字

JMeter 图形界面出现乱码,或者报告里汉字变成问号,多数和编码设置有关。先检查jmeter.properties里的编码配置,再检查测试脚本中的响应编码设置。压测请求返回内容本身的中文乱码问题,常见是请求头没带Content-Type中的charset=utf-8,这种要改脚本。

另一种情况是界面菜单乱码但请求结果正常,这和 Java 环境的字体渲染有关。可以调整jmeter.properties中的界面语言保持为zh_CN,或者把系统默认字符集改为 UTF-8,具体操作在各种操作系统里路径不同,但对 JMeter 而言,配置文件里明确指定 UTF-8 是最有效的。

6.4 端口占用、插件无法加载和其他小问题

端口占用一般不会发生在安装阶段,更多出现在分布式压测时用到了 Server 模式,默认端口被占用会导致 Slave 无法连接。解决方法是换一个端口,或者杀掉占用进程后重启。这个经验在搭建 JMeter 分布式压测环境时很典型,到时候可以搜端口查看命令来定位问题,不比太早纠结。

插件无法加载的表现是菜单里看不到对应选项。原因八成是 jar 放错了目录。插件 jar 必须放在 JMeter 根目录的lib/ext下,而不是lib,更不是随便一个放下载文件的目录。放好之后重启 JMeter 才会加载。

剩下的一个经典场景是:杀毒软件或系统安全组件把 JMeter 的部分文件当可疑对象隔离了。特别在 Windows 上这种概率不低,解压成功后体积对不上、或者脚本几分钟前还能跑,忽然报找不到核心类,就要检查一下隔离区。处理方法是把 JMeter 目录加入杀毒软件白名单,然后重新解压一次。

安装这事说到底就是“环境匹配 + 路径正确 + 权限到位”这三个核心。JDK 版本对得上,解压目录清爽,环境变量或符号链接指向正确,JMeter 就能跑起来。装完之后别急着开搞测试,顺手把堆内存、插件管理器、编码配置三样调一调,后面能省去不少报错排查的时间。我自己每次装新环境都是这个套路,先启动验证,再配置调优,最后用一条简单的测试计划跑通整个链路。照着这套流程走,应该不会到装完第三天才发现哪里没配好的地步。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/22 11:40:15

200SMART与ABB510变频器MODBUS RTU多机通讯控制程序全解析

看到“200SMART多台ABB510变频器通讯控制程序”这个标题,很多做设备改造和电控柜集成的同行应该会心一笑——这是一个出现频率极高的需求组合。一台小型PLC(200 SMART)通过自带的RS485口,用MODBUS RTU协议同时控制若干台ABB ACS51…

作者头像 李华
网站建设 2026/10/22 11:39:11

Anaconda Prompt与conda激活机制:环境变量与终端工作原理全解析

双击桌面上那个蓝绿色的“Anaconda Prompt”,或者“Anaconda PowerShell Prompt”,你大概率会看到终端里冒出一个(base),然后顺手敲conda list、python、jupyter notebook就能直接用。但大多数人就这么用了好几年,从来没想过一个问…

作者头像 李华
网站建设 2026/10/22 11:39:06

从CPU特权级到后渗透:系统权限与信息收集完整技术体系

系统权限与信息收集:从CPU架构到后渗透实战的完整技术体系搞安全这么多年,我一直觉得有个现象挺有意思:很多人一上来就盯着“怎么提权”“怎么拿shell”,但对底层那几个基础概念——比如CPU特权级、内核态和用户态的边界、权限模型…

作者头像 李华
网站建设 2026/10/22 11:39:06

从大脚本到技能单元:构建可复用、可编排的Skills系统

1. 从“skills”这个词说起:为什么它突然成了高频词最近不管是刷技术社区,还是跟同行吃饭聊天,“skills”这个词出现的频率明显变高了。一开始我以为大家只是在聊招聘JD里的技能要求,后来发现完全不是那么回事——有人在讨论怎么把…

作者头像 李华
网站建设 2026/10/22 11:38:26

捷联惯性导航系统(SINS)原理与嵌入式实现指南

简介:本资源是一份系统讲解捷联式惯性导航系统(SINS)原理、结构与应用的深度技术文档,面向航空航天、导航制导、自动化及惯性传感领域的高校师生、科研人员与工程技术人员。文档完整覆盖SINS发展脉络(如阿波罗-13任务中…

作者头像 李华
网站建设 2026/10/22 11:37:43

MGR多主模式下事务冲突:写入失败及死锁问题排查解析

mysql MGR多主模式下,业务的写入突然大面积失败,应用连接池被打满,监控面板上闪过一片死锁告警。第一次经历这种故障的DBA,第一反应大概率是“集群坏了,数据会不会丢”。但排查一圈下来你会发现,这很可能不…

作者头像 李华