问题背景 问题是,咱们常常说:发生OOM,程序就会挂。 很多情况是:发生OOM了,JVM没有挂。 回顾一下OOM与异常 来看一下 OutOfMemoryError,说到底,OutOfMemoryError 也只是一个java中的异常而已, OutOfMemoryError 属于Error一系非检查异常, 其继承关系如下 […]
问题背景 问题是,咱们常常说:发生OOM,程序就会挂。 很多情况是:发生OOM了,JVM没有挂。 回顾一下OOM与异常 来看一下 OutOfMemoryError,说到底,OutOfMemoryError 也只是一个java中的异常而已, OutOfMemoryError 属于Error一系非检查异常, 其继承关系如下 […]
OHCache介绍 缓存框架OHC基于Java语言实现,并以类库的形式供其他Java程序调用,是一种以单机模式运行的堆外缓存。 OHC简介 缓存的分类与实现机制多种多样,包括单机缓存与分布式缓存等等。具体到JVM应用,又可以分为堆内缓存和堆外缓存。 OHC 全称为 off-heap-cache,即堆外缓存,是一款基于J […]
1、安装 vsftpd sudo yum install -y vsftpd 2、设置 vsftpd 开机自启动 sudo systemctl enable vsftpd 3、启动 FTP 服务 sudo systemctl start vsftpd 4、确认服务是否启动 sudo netstat -antup | g […]
背景 我们使用RocketMQ时,一般Consumer启动都是使用的@PostConstruct注解。(@PostConstruct:用于在执行任何初始化时执行依赖注入后需要执行的方法。),或者使用bean的方式配置。 配置如下: 生产者配置 在配置类中配置所有生产者,在业务中注入使用,将生产者的启动和销毁绑定到 Be […]
原因 最近写了一个python脚本,由于使用了分库分表,所以需要根据分表字段动态计算数据库以及表名,一开始直接在SQL中使用了%s占位符,后来发现报错,提示SQL语句语法错误,仔细一看才发现原来是直接把库名和表名外都加了单引号,导致语法错误,但是又不想直接去拼接SQL,毕竟有些费劲儿,所以就网上寻觅着换了种方法。 解决 […]
什么是NanoId nanoid库和uuid库一样都可以生成唯一识别码,但是nanoid相比uuid要更轻量级。 用法 可以引用下方的jar包,或者项目中直接自己创建工具类。 引用jar包的POM依赖如下: <dependency> <groupId>com.aventrix.jnanoid&l […]
依赖 GraphQL相关依赖如下(SpringBoot2.X): <dependency> <groupId>com.graphql-java</groupId> <artifactId>graphql-spring-boot-starter</artifactId […]
背景 目前常用的实现动态配置日志级别的应该非SpringBoot的spring-boot-starter-actuator莫属了。 不过通过spring-boot-starter-actuator配置的日志级别,服务一旦重启就会恢复原状。且只能通过访问指定的接口来修改单个实例的日志级别(SpringBootAdmin也 […]
背景 本文仅是为了帮助入门新人了解什么是内存屏障、内存屏障都做了什么等基础问题,并无深入说明。 内存屏障的实现涉及大量硬件架构层面的知识,又需要操作系统或JVM的配合才能发挥威力,单纯从任何一个层面都无法理解。 如有疏漏,还望指正! 什么是内存屏障 内存屏障(Memory Barrier)是一个CPU指令。是硬件之上、 […]
Spring Boot 2.5.0 发布:支持Java16、Gradle 7、Datasource初始化机制调整。 这次就简单说下重新设计的spring.sql.init 配置有啥用。 先来看看这次被弃用部分的内容(位于org.springframework.boot.autoconfigure.jdbc.DataSo […]
我们都知道top命令可以查看linux的系统状况,是常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况。 top对CPU时间片的分类如下: us:用户进程空间中未改变过优先级的进程占用CPU百分比 sy:内核空间占用CPU百分比 ni:用户进程空间内改变过优先级的进程占用CPU百分比 id:空闲时间百分比 w […]
SQL规范性检查 select检查 UDF用户自定义函数 SQL语句的select后面使用了自定义函数UDF,SQL返回多少行,那么UDF函数就会被调用多少次,这是非常影响性能的。 #getOrderNo是用户自定义一个函数用户来根据order_sn来获取订单编号 select id, payment_id, orde […]
前提 Python3 代码实现 #!/usr/bin/env python3 # -*- coding: UTF-8 -*- import pymysql db = pymysql.connect(**db_conf) cursor = db.cursor() cursor.execute(sql) # 最后插入行的主 […]
游标查询(scroll)简介 scroll 查询 可以用来对 Elasticsearch 有效地执行大批量的文档查询,而又不用付出深度分页那种代价。 游标查询会取某个时间点的快照数据。 查询初始化之后索引上的任何变化会被它忽略。 它通过保存旧的数据文件来实现这个特性,结果就像保留初始化时的索引 视图 一样。 启用游标查 […]
命令格式 jmap [ options ] pid jmap [ options ] executable core jmap [ options ] [ pid ] server-id@ ] remote-hostname-or-IP 参数说明 pid:目标进程的PID,进程编号,可以采用ps -ef | grep […]
春未老,风细柳斜斜。试上超然台上看,半壕春水一城花。烟雨暗千家。 寒食后,酒醒却咨嗟。休对故人思故国,且将新火试新茶。诗酒趁年华。