Welcome 出于对 Java 锁的性能好奇,决定对锁使用的多种场景进行性能测试研究。 其中包括 synchronized、StampedLock 和 ReentrantLock 情况的研究。 1. 测试环境 环境 备注 JDK 版本 8 OS ...
Linux 查询技巧
收集整理出一些在运维时常用的查看技巧。后续会对内容再补充完善。 1. 查本机外网 IP # 可能需要等待 2秒钟左右 😜 curl ifconfig.co 2. 查 PID 文件启动位置 # 先查 PID。例:某个正在启动的 jar 包 PID ps aux | grep java # 获取到 PID 之后(假设:188),查看文件位置 ll /proc/188 ...
Linux 文件处理技巧
收集整理出一些在运维时常用的文件处理技巧。后续会对内容再补充完善。 1. 清理 nohup.out 生产中因为长时间不处理nohup.out文件,导致文件会特别的大,在查询日志等方面会非常的不方便。在 清理nohup.out文件时保持程序的正常运行就显得比较重要了。 ⚠️ 注意:如果应用本身有日志记录策略,则在启动时完全可以不输出 nohup.out 文件 😁 #...
修改 jar 包文件
jar 包内的文件修改一共分为三个步骤: 解包,提取文件 修改文件 打包,修改文件 1. 找到目标文件路径 # 命令模板。${filename} 指的是目标文件的文件名,因为用的是 grep,所以支持模糊匹配 jar tvf xxx.jar | grep ${filename} # 示例:查看 application-test.yml 文件...
MyBatis-Plus 多数据源
多数据源的配置方式有多种,既可以通过注解(@DS),也可以通过拦截器的方式处理。不同的方式解决的业务问题领域不一致而已。 本文介绍的方式是使用 混合配置 的方式实现,原理是:通过拦截器,依据类所属的包名动态切换数据源! 1. 引入必备依赖 <dependency> <groupId>com.baomidou</groupId> <...
Dockerfile
通过 SpringBoot 官网建议,以及项目经验,总结出的一版 Dockerfile 文档模版。 1. 构建 # 我们一般使用 alpine 的JDK,以此减小镜像的体积 FROM openjdk:8-jdk-alpine LABEL maintainer="Oriental Ming" # SpringBoot 官方推荐,最小权限原则,考虑到安全 ARG USERNAME=spri...
SpringBoot 集成 RabbitMQ
SpringBoot 通过 AMQP 实现与 RabbitMQ 的集成。 基础的服务搭建工作就不介绍了,主要说明 RabvbitMQ 本地服务的构建方法,方便调试即可。 1. 启动 RabbitMQ 服务 借助 Docker 容器的方便性,启动一个 RabbitMQ 容器 # RabbitMQ Docker 官方描述: https://hub.docker.com/_/rabb...