- 博客(66)
- 收藏
- 关注
原创 linux搭建hadoop服务
编辑 mapred-site.xml。编辑 core-site.xml。编辑 hdfs-site.xml。编辑 yarn-site.xml。编辑 workers添加内容。
2025-12-20 16:40:48
93
原创 windows系统搭建kafka环境
1.修改zookeeper.properties文件。2.修改server.properties文件。kafka内置zk,因此没必要安装zk。6.windows端模拟集群服务的搭建。4.配置kafka.cmd。3.配置zk.cmd。
2025-12-20 16:37:53
147
原创 grafana里面怎么添加Prometheus数据源监控MySQL
环境搭建指南:https://gitee.com/arhi/docker-compose/tree/cpc-lib/Linux/grafana-prometheus-mysql。选择数据源为 Prometheus → Import。进入 Prometheus 配置页。立即看到 MySQL 所有监控图表。就说明数据源添加成功 🎉。
2025-12-20 16:36:08
206
原创 MySQL生产查询慢,该如何排查
(在你的 SQL 中已被转换为 waiting_trx_xxx / blocking_trx_xxx)就不正常,说明 MySQL 正在频繁从磁盘读数据。说明 ORDER BY / GROUP BY。(使用 engine_lock_id 关联)永久生效需要编辑my.cnf配置以下内容。, 无索引查询肯定会慢。→ 说明锁竞争导致慢。
2025-12-20 16:35:33
811
原创 单体项目与微服务项目对比分析
特点单体项目 (Monolithic)微服务项目 (Microservices)定义将所有业务逻辑、数据访问和用户界面等模块打包成一个单一的、紧密耦合的应用程序部署单元。将一个大型应用程序分解为一组小型的、独立部署的服务,每个服务围绕特定的业务能力构建。耦合性高耦合。一个模块的变动可能影响整个应用。低耦合。服务间通过轻量级通信机制(如 HTTP/REST, gRPC, 消息队列)交互。技术栈通常使用单一技术栈和共享的数据库。每个服务可以选用不同的技术栈、语言或数据库,技术选型灵活。部署整体部署。
2025-12-20 16:34:58
202
原创 Java后台定时器导致系统奔溃的原因分析
定时对账任务”每 10 分钟执行,执行一次需要 12 分钟,后来数据库基本 100% CPU,业务查询都 timeout。放在静态变量中,每次执行都 append,不清理。长期运行 → 堆积 → OOM → 服务崩溃。许多崩溃问题和这些机制有关。,任务执行需要 30 秒。
2025-12-20 16:34:14
372
原创 MySQL性能优化处理
下面的配置假设你的服务器 16GB RAM配置项: 作用: 控制数据和日志写入文件的方式。优化建议:配置项: 取值与含义:配置项: 作用: 用于处理需要排序的查询(如 或 )。每个需要排序的连接都会分配这个大小的内存。优化建议:配置项: 作用: 用于连接(JOIN)操作中无法使用索引时的缓冲区。优化建议:配置项: 作用: 设置表打开缓存的大小,减少打开表时的磁盘I/O优化建议:: 设置为4096以提高表打开速度。配置项: 作用: 决定了 MySQL 的文件 I/O 能力的边界优化建议: 通常建议将
2025-12-18 14:00:31
774
原创 MySQL使用explain需要关注的指标及其含义
总结来说,一个优化的查询应该努力达到:type。这是判断查询性能最重要且最直接的指标。,最好能实现 Using index。
2025-12-18 13:59:16
881
原创 @Async与@Transactional使用时的注意事项
场景正确做法想异步+事务把事务放到另一个 Service 方法里想在事务提交后异步干活用同类里调用异步方法分成两个类,或者注入自己代理对象。
2025-12-18 13:57:39
101
原创 MySQL事务隔离级别及S与X锁
项目说明数据库隔离级别REPEATABLE READ(默认)库存初始值10事务A操作(未提交)事务B操作查询结果10原因MVCC 保证读到的是已提交版本,避免脏读锁类型全称英文名称作用S锁共享锁允许多个事务同时读取同一行,但不允许修改X锁排他锁只允许一个事务对该行进行读写,其他事务不能再加任何锁项目S锁(共享锁)X锁(排他锁)允许读✅✅(自己可以)允许写❌✅(自己可以)可共存✅ 多个S锁可共存❌ 独占与MVCC关系显式加锁读显式写操作常见SQL。
2025-12-18 13:56:57
737
原创 sychronized与@Transactional一起使用需要注意的问题
场景推荐方式单机同步 + 事务使用或,但锁区域要小,避免嵌套数据库操作。分布式系统用Redis/Zookeeper 分布式锁控制同步,事务控制在数据库中进行。内部方法调用需要事务不要调用,用@Autowired注入自身代理(避免直接叠加用外层锁或分布式锁控制,事务放在内层逻辑中。
2025-12-18 13:56:14
232
原创 分布式事务解决方案
TM首先发起所有的分支事务的try操作,任何一个分支事务的try操作执行失败,TM将会发起所有分支事务的Cancel操作,若try操作全部成功,TM将会发起所有分支事务的Confirm操作,其中Confirm/Cancel操作若执行失败,TM会进行重试。最大努力通知,发起通知方尽最大的努力将业务处理结果通知为接收通知方,但是可能消息接收不到,此时需要接收通知方主动调用发起通知方的接口查询业务处理结果,通知的可靠性关键在接收通知方。最大努力通知关注的是交易后的通知事务,即将交易结果可靠的通知出去。
2025-12-18 13:55:20
817
原创 Zookeeper实现分布式锁的原理
封装了分布式锁、选主、Barrier 等高级特性。推荐直接用它来实现锁,而不是自己操作 ZNode。Curator 是 Apache 官方维护的。这样天然可以实现「排队」。
2025-12-18 13:54:37
396
原创 Redis实现分布式锁的原理
Redisson 是官方推荐的 Java Redis 客户端之一,封装了稳定的分布式锁逻辑。中,多个节点或服务实例可能同时修改同一份共享资源(例如数据库、库存、订单),客户端向所有 Redis 节点尝试获取锁**,每个节点的锁具有。但在多机(分布式)环境下,它们无法保证互斥性。的 KV 数据库,非常适合实现分布式锁。如果获取锁失败(未超过多数节点或超时),:只有锁的持有者才能删除锁(防止误删)使用 Redis 的原子命令。Redis 本身是一个。
2025-12-18 13:53:38
373
原创 什么是幂等,幂等如何实现
幂等(Idempotence)是计算机科学和数学中的一个重要概念,特别是在分布式系统和API设计中。幂等操作指的是无论执行多少次,其结果都与执行一次的结果相同。这种特性在处理重复请求、网络不稳定或系统故障恢复时非常有用,因为它可以确保操作的可靠性和一致性。
2025-12-18 13:53:02
898
原创 RocketMQ面试题
Nameserver 被设计成几乎是无状态的,通过部署多个结点来标识自己是一个伪集群,Producer 在发送消息前从 NameServer 中获取 Topic 的路由信息也就是发往哪个 Broker,Consumer 也会定时从 NameServer 获取 Topic 的路由信息,Broker 在启动时会向 NameServer 注册,并定时进行心跳连接,且定时同步维护的 Topic 到 NameServer。业务幂等:第一种是保证消费逻辑的幂等性,也就是多次调用和一次调用的效果是一样的。
2025-12-18 13:50:49
570
原创 RabbitMQ面试题
RabbitMQ是一个开源的消息队列系统,它使用AMQP(高级消息队列协议)标准。RabbitMQ的主要目标是提供可靠的消息传递,确保消息的可靠性和顺序性,同时提供灵活的路由和消息确认机制。RabbitMQ基于AMQP协议工作,它通过消息的发布/订阅模式实现消息的传递。主要包括三个角色:生产者(Producer)、交换机(Exchange)和队列(Queue)。生产者负责生成消息,交换机负责接收生产者的消息并根据指定的规则路由到队列,而队列则负责存储这些消息,等待消费者(Consumer)来消费。
2025-12-18 13:48:47
773
原创 Redis面试题
Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的(BSD许可)高性能非关系型(NoSQL)的键值对数据库。与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作,是已知性能最快的Key-Value DB。另外,Redis 也经常用来做分布式锁。除此之外,Redis 支持事务 、持久化、LUA脚本、LRU驱动事件、多种集群方案。
2025-12-18 13:47:42
753
原创 Spring面试题
Spring是一个Java开发框架,它提供了一种可扩展的模型来开发Java应用程序。Spring框架的目标是提供一个全面的解决方案,用于构建企业级应用程序。Spring框架的核心特点包括依赖注入(DI)、面向切面编程(AOP)、声明式事务管理、MVC框架等。Spring框架的核心是Spring容器,它是一个负责管理应用程序中的对象的容器。容器使用依赖注入技术来自动注入依赖项,使得开发者可以专注于编写应用程序的业务逻辑而不必关心对象创建和管理的细节。
2025-12-18 13:47:06
431
原创 Mybatis面试题
Mybatis是一种流行的Java对象关系映射(ORM)框架,它将Java对象映射到关系型数据库中的表格。它提供了一种简单的方式来编写SQL语句并将其映射到Java对象,同时避免了很多传统JDBC的冗长代码。在使用Mybatis时,开发人员可以编写简洁的SQL语句,并且可以使用动态SQL和参数映射来进行高效和灵活的数据操作。除了ORM之外,Mybatis还提供了许多高级功能,如缓存机制、批量操作、分页等等。
2025-12-18 13:45:55
514
原创 MySQL面试题
分布式事务用于保证跨多个数据库的操作要么全部成功,要么全部回滚,以保持数据的一致性。实现分布式事务通常使用两阶段提交协议(2PC)或更复杂的分布式事务管理器(如XA)来协调参与方的成功或失败。索引是数据库中用于加速查询的一种数据结构,它允许快速查找数据而不是对整个表进行扫描。索引通过创建指向数据行的指针来实现,当数据库执行查询时,可以使用索引来快速定位需要的数据,而无需全表检索。它大大提高了查询的效率,尤其是在处理大数据集时。
2025-12-18 13:45:15
901
原创 Java多线程面试题
V:要更新的变量(var)E:预期值(expected)N:新值(new)比较并交换的过程如下:判断 V 是否等于 E,如果等于,将 V 的值设置为 N;如果不等,说明已经有其它线程更新了 V,于是当前线程放弃更新,什么都不做。这里的预期值 E 本质上指的是“旧值”死锁是多进程/多线程系统中的一种僵持状态,当两个或多个进程在执行过程中,因争夺资源而陷入相互等待的阻塞状态。每个进程都持有部分资源,同时等待其他进程释放资源,若无外力干预,所有进程将无限期等待无法推进预防策略(破坏必要条件)目标。
2025-12-18 13:44:25
986
原创 Java基础面试题
因为Bootstrap ClassLoader在加载的时候,只会加载JAVA_HOME中的jar包里面的类,如java.lang.Integer,那么这个类是不会被随意替换的,除非有人跑到你的机器上, 破坏你的JDK。在基本类型和引用类型中的效果是不同的,在基本类型中比较的是值是否相同,而在引用类型中比较的是引用是否相同。),而非缓慢的取模运算。同时,当容量为2的幂次方时,扩容时只需将容量翻倍,并根据新容量计算元素的新位置,过程更简单高效,并能确保哈希值能更均匀地分布,从而减少哈希冲突。
2025-12-18 13:43:22
493
原创 Anacoda设置代理源
本文介绍如何修改conda和pip的软件源。对于conda,通过config命令添加清华大学的镜像源,包括main、free、r等常用仓库,并设置显示channel URLs。对于pip,需在用户目录创建pip.ini文件,指定清华镜像源index-url和安装路径。最后可通过conda config --show channels和pip config list命令验证配置是否生效。使用国内镜像源可显著提升Python包下载速度。
2025-08-24 16:51:36
193
原创 自建ruoyi的docker镜像进行部署服务
本文介绍了基于Docker部署RuoYi管理系统的完整流程。首先通过Dockerfile构建镜像,使用Liberica OpenJDK 17作为基础镜像,配置了工作目录、环境变量和启动命令。其次提供docker build和docker run命令用于构建和运行容器,映射了端口和配置文件路径。最后展示了完整的application.yml配置文件,包含服务器、数据库(MySQL主从+Redis)、日志、Swagger等详细配置,以及Druid连接池、文件上传、国际化等功能的参数设置。整套方案实现了一键式容器
2025-08-23 17:21:08
208
原创 docker国内被ban,拉取镜像文件的解决方法
6.修改code的images.txt文件(#注释不会拉去镜像到个人镜像仓库)2.安装docker-compose。3.首先在github中fork。5.登录设置个人仓库信息配置信息。1.安装docker。
2025-08-23 11:40:13
348
原创 SSH配置服务器之间免密登录
本文介绍了配置SSH免密登录的详细步骤:1)安装openssh-server;2)生成RSA密钥对;3)配置本机免密登录;4)实现服务器A到B的免密访问:复制公钥到目标服务器并追加到authorized_keys文件;5)最后验证SSH连接。整个过程通过命令行操作完成,适合Linux系统间的安全访问配置。
2025-08-23 11:37:50
149
原创 jenkins部署ruoyi后台记录(jenkins与ruoyi后台不在同一服务器)
4.post_step中选择执行shell,编辑内容如下。1.下载jenkins.war包,使用以下脚本进行管理。2.使用jenkins中的maven来进行构建。3.服务器之间(centos)设置ssh访问。
2025-08-23 11:37:02
139
原创 jenkins部署ruoyi后台记录(jenkins与ruoyi后台处于同一台服务器)
1.下载jenkins.war包,使用以下脚本进行管理。3.在post_step中进行配置,设置执行shell。2.jenkins构建一个maven项目。使用–httpPort进行指定启动端口。
2025-08-23 11:36:06
132
原创 centos如何使用高版本gcc
本文介绍了在CentOS虚拟机中配置静态IP地址的详细步骤,包括修改ifcfg-ens33文件设置静态IP、网关和DNS。同时提供了配置阿里云yum源、SCLo、SCL-rh和epel源的方法,以及安装devtoolset-9来升级gcc版本的步骤。此外还解决了GLIBCXX_3.4.20缺失问题。
2025-08-08 23:48:33
199
原创 Jrebel热部署插件服务端部署记录
本文记录了如何使用docker进行Jrebel热部署插件服务端,经过测试是可以是正常使用的。文中如有错误请批评指正。
2025-07-28 17:27:59
260
原创 Node版本控制工具的使用
在工作中,每个项目的需求不同,进而不同项目需要使用不同版本的NodeJS运行环境,这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,nvm就是为解决这个问题而产生的。
2025-07-26 10:30:59
158
原创 Minio文件服务器安装及数据同步配置处理
不要使用crontab去处理数据同步,原因是会有多个mc的进程在执行导致内存占用率过高,如果使用了crontab方式,可以采用以下命令进行处理。ps:清除java web api服务某个端口的pid。Minio Server的启动脚本。
2025-07-26 10:25:06
224
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅