自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(119)
  • 收藏
  • 关注

原创 解析mysqlbinlog

ps -ef | grep mysql 查看mysql进程对应的安装目录。需设置mysql binlog日志模式为 ROW。

2024-12-23 15:18:52 253

原创 性能优化学习

前端网页或者APP能够在1秒内很平滑的打开,尤其是首页的加载 超过3秒则用户可能直接退出不在使用,这里强调后端优化的同事,也需要对前端进行优化。向某个网站发送n次请求,n次请求相应时间除以n得到的时间。TP50、TP90、TP95、TP99、TP99.9 等多个段,对高百分位的值要求越高,对系统响应能力的稳定性要求越高。指的是系统能够同时处理的请求数量,反映的是系统的负载能力。6、优化的目标是用户体验、降低硬件成本(降低集群规模、不依赖单机高性能)4、不盲从,测试、找到系统的性能瓶颈,再确定优化手段。

2024-05-07 10:58:34 749 1

原创 springboot应用在linux环境获取resource目录下文件报错

templates/%e3%80%90%e5%b2%97%e4%bd%8d%e6%96%87%e4%bb%b6%e3%80%91%e5%ae%89%e5%85%a8%e6%89%bf%e8%af%ba%e4%b9%a6%e6%a8%a1%e6%9d%bf.docx","code":200} 显然这不是一个正确的路径。使用的是hutool提供的获取绝对路径的类,springboot应用在window环境中获取resource目录下文件路径正常,linux环境中获取resource目录下文件路径异常。

2024-04-23 16:53:43 954 1

原创 记一次普通的单表查询sql优化,去掉文件排序

对查询列assessment_periodic_id、assessment_user_id、create_time添加了组合索引并指定了倒叙。加入create_time 使查询结果不需要在倒叙排序。有空观察了线上某个sql语句执行计划,发现在500多毫秒左右,打算进行下优化。优化后降到了400多毫秒。

2024-04-19 18:07:15 224

原创 记一次对接第三方数据,存入数据库后清洗数据,数据重复

解决一是:queryWrapper.eq("device_model", zhttVhc.getEquipmentmodel().trim());查询这一行也加入去空格。对接第三方数据,先全量存入数据库,然后进行跑批清洗,在清洗过程中发现每次都有不同条数的数据重复。之前是有发现数据存在空格,当时只是把插入时候去掉了空格,通过查询并插入时,查询没有去空格判断。就是数据库中有的重复的字段条数存在空格,有的没有。解决二是(根本办法):在存入数据时,就去掉所有空格。

2024-04-17 09:48:51 257

原创 nginx配置多个服务

最近需要在一台机器部署多个服务,使用nginx做web服务器,和反向代理,在使用一个端口代理多个location时并不好用,最后使用多个端口方式解决。分别监听 www.xxx.com的8086和 www.xxx.com的8098接口 部署对应web服务和后台服务。启动nginx: /usr/sbin/nginx -c /etc/nginx/nginx.conf。nginx重新加载config文件: nginx -s reload。

2024-04-07 11:07:15 1054 1

原创 linux排查磁盘空间不足

这里有大量的binlog 日志,binlog 日志记录了数据的增删改操作,可完成保留最新的数据库数据后,删除很久之前的binlog日志。1、通过du -sh /* | sort -hr 递归地计算当前目录下所有文件和文件夹的大小,并按大小进行排序。2、 通过/du -h --max-depth=1 /usr 查看目录中每个文件夹的大小。3、通过不断步骤2获取是mysql binlog日志过多。告警群持续提示磁盘使用率过高。查看磁盘空间使用情况。

2024-02-22 16:02:52 485

原创 Elasticsearch查询报错 Result window is too large

方法二:使用 Scroll API:Scroll API 是 Elasticsearch 提供的一种更高效地请求大数据集的方式。通过 Scroll API,您可以持续获取大量数据而无需一次性返回所有数据。参数的组合不能超过 10,000 条记录,用于防止查询大数据集时对系统资源的过度消耗。es数据分页查询前端提示系统异常,后端报错日志。方法三:使用search_after API。默认情况下,Elasticsearch 限制了。方法一:修改索引级别的。数据量比较小,能容忍深度分页问题。

2024-02-19 15:41:57 889

原创 记一次日志被吞,只有异常类型,没有堆栈信息

方法二:启动命令加入 -XX:-OmitStackTraceInFastThrow 关闭jdk1.5对多次重复出现的异常进行预编译,这些预编译的异常无堆栈信息,故无法打印完整堆栈。需注意是关闭FastThrow在大量抛出异常时可能会有意想不到的性能问题,比如一些JDK或者依赖库依赖异常来保证逻辑正确。Exception in thread "main" java.lang.NullPointerException 只打印了异常信息,无详细堆栈信息,导致无法判断具体是那行代码出现了空对象。

2024-01-31 11:26:29 577

原创 mapstruct常用属性填充示例

mapstruct常用属性填充示例

2022-09-25 16:48:24 749

转载 git清除本地账号密码

git的使用分为两种ssh和http,清除本地账号密码首先需要确定使用的是哪种模式。查看模式命令如下:1.git config --list查看2.git remote -v查看如果是http模式可以运行一下两个命令实现1.查看本地安全策略(git config --list也可以查看,实际上这个命令可以查看所有了设置了)git config credential.helper2.取消本地缓存用户名和密码的安全策略git config --global credential.help

2022-03-09 17:21:17 23186 1

转载 Java 中的 ==, equals 与 hashCode 的区别与联系

一、概述1、概念== : 该操作符生成的是一个boolean结果,它计算的是操作数的值之间的关系equals : Object 的 实例方法,比较两个对象的content是否相同hashCode : Object 的 native方法 , 获取对象的哈希值,用于确定该对象在哈希表中的索引位置,它实际上是一个int型整数二、关系操作符 ==1、操作数的值基本数据类型变量在Java中有八种基本数据类型:  浮点型:float(4 byte), double(8 byte)  整型:

2021-11-16 14:17:53 373

转载 hashCode和equals的区别

有面试官会问:你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?equals和hashCode都是Object对象中的非final方法,它们设计的目的就是被用来覆盖(override)的,所以在程序设计中还是经常需要处理这两个方法。下面我们一起来看一下,它们到底有什么区别,总结一波!01、hashCode介绍hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返回一个int整数。这个哈希码的作用是确定该对象在哈希表中的索引位.

2021-11-16 14:15:14 620

转载 mysql相关转载

mysql 死锁查询mysql : show processlist 详解 - _小豪豪 - 博客园

2021-09-26 06:31:00 113

原创 centos 7 安装mysql-server报错No package mysql-server available

在linux centos 7下安装mysql-server, yum install mysql-server 遇到报错提示No package mysql-server available,具体如下截图:解决方案如下:在centos7中要安装mysql-server,必须先添加mysql社区repo通过输入命令:sudo rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm,如下截图:.

2021-09-10 03:30:47 622

转载 linux Destination Host Unreachable

ping任何地址出现 Destination Host Unreachable基本的排错步骤(从上往下)ping 127.0.0.1ping的通说明tcp协议栈没有问题ping 主机地址 ping的通说明网卡没有问题ping 路由器默认网关 ping的通说明包可以到达路由器最后 ping DNS服务器地址卡在那一步,就补哪里我的问题是网关与win不一致 win:192.168.2.104 linux:192.168.1.1修改后即可ping通...

2021-06-10 02:12:54 676

原创 mysql 按日期分组统计数据

SELECT DATE_FORMAT(create_time,'%Y-%m-%d'),COUNT(message_num) AS messageNum FROM shop_message WHERE STATUS = 1 AND object_type = 0 AND shop_id = 2510 AND DATE_FORMAT(create_time,'%Y-%m-%d')>= DATE_FORMAT('2021-05-04','%Y-%m-%d') AN...

2021-05-26 18:33:38 257

转载 线程池大小 + 线程数量

可能很多人都看到过一个线程数设置的理论: CPU 密集型的程序 - 核心数 + 1 I/O 密集型的程序 - 核心数 * 2 不会吧,不会吧,真的有人按照这个理论规划线程数?线程数和CPU利用率的小测试抛开一些操作系统,计算机原理不谈,说一个基本的理论(不用纠结是否严谨,只为好理解):一个CPU核心,单位时间内只能执行一个线程的指令** 那么理论上,我一个线程只需要不停的执行指令,就可以跑满一个核心的利用率。来写个死循环空跑的例子验证一下:测试环境:AMD Ryzen .

2021-05-21 10:57:20 221

转载 Linux load average负载量分析与解决思路

一、load averagetop命令中load average显示的是最近1分钟、5分钟和15分钟的系统平均负载。系统平均负载表示  系统平均负载被定义为在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程数。如果一个进程满足以下条件则其就会位于运行队列中:  - 它没有在等待I/O操作的结果  - 它没有主动进入等待状态(也就是没有调用’wait’)  - 没有被停止(例如:等待终止)  Update:在Linux中,进程分为三种状态,一种是阻塞的进程blocked

2021-05-21 10:54:41 1055

转载 使用spring validation + jsr303 对复杂对象入参进行校验

https://blog.csdn.net/ahao_henrry/article/details/92403008

2021-05-18 13:53:59 372

转载 Linux vmstat命令实战详解

1.说明vmstat命令是最常见的Linux/Unix监控工具,属于sysstat包。可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相比top,我可以看到整个机器的CPU,内存,IO的使用情况,而不是单单看到各个进程的CPU使用率和内存使用率(使用场景不一样)。2.安装yum install -y sysstat一般vmstat工具的使用是通过

2021-05-05 14:45:56 161

转载 【JVM性能调优】jstack和线程dump分析

一、几个概念:1、jstack命令的语法格式:jstack <pid>,可用于查看java进程id。2、Dump文件:Dump文件是进程的内存镜像。可以把程序的执行状态通过调试器保存到dump文件中。Dump文件是用来给驱动程序编写人员调试驱动程序用的,这种文件必须用专门的工具软件打开,比如使用Windbg。在Windbg中可以通过.dump命令保存进程的dump文件。比如下面的命令把当前进程的镜像保存为c:\testdump.dmp文件:.dump /ma c:\testdump.d

2021-05-05 14:25:57 791

转载 Java中Unsafe类详解

Java中Unsafe类详解java不能直接访问操作系统底层,而是通过本地方法来访问。Unsafe类提供了硬件级别的原子操作,主要提供了以下功能:1、通过Unsafe类可以分配内存,可以释放内存;类中提供的3个本地方法allocateMemory、reallocateMemory、freeMemory分别用于分配内存,扩充内存和释放内存,与C语言中的3个方法对应。2、可以定位对象某字段的内存位置,也可以修改对象的字段值,即使它是私有的;public native long alloca

2021-04-21 19:51:30 471

转载 java 基本类型与包装类的==和equels问题

Integer i = 42;Long l = 42l;Double d = 42.0;下面为true的是(i == l)=》false(i == d)=》false(l == d)=》falsei.equals(d)=》falsed.equals(l)=》falsei.equals(l)=》falsel.equals(42L)=》true0,基本型比较,低精度向高精度自动补齐在进行比较。1、基本型和基本型封装型进行“==”...

2021-04-12 10:21:54 156

转载 Java后端线上问题排查常用命令收藏

内存瓶颈freefree是查看内存使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。free -h -s 3表示每隔三秒输出一次内存情况,命令如下[1014154@cc69dd4c5-4tdb5~]$freetotalusedfreesharedbuff/cacheavailableMem:1196236564305222045611364431376...

2021-04-08 15:35:41 174

转载 postman中 form-data、x-www-form-urlencoded、raw、binary的区别

1、form-data: 就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件。...

2021-03-10 21:22:14 144

转载 UML的几种箭头

2021-02-19 10:06:26 1769

转载 SpringBoot - 如何实现自定义注解 @Target、@Retention、@Documented 注解的简介

@Target注解功能:指明了修饰的这个注解的使用范围,即被描述的注解可以用在哪里。ElementType的取值包含以下几种:TYPE:类,接口或者枚举FIELD:域,包含枚举常量METHOD:方法PARAMETER:参数CONSTRUCTOR:构造方法LOCAL_VARIABLE:局部变量ANNOTATION_TYPE:注解类型PACKAGE:包@Retention注解功能:指明修饰的注解的生存周期,即会保留到哪个阶段。RetentionPolicy的取值包含以下三种

2021-01-24 13:45:07 526

转载 JVM主要包含三大核心部分:运行时数据区,类加载器和执行引擎

三大核心执行顺序类加载器解析 .class文件 转为虚拟机可以识别的二进制机器码执行引擎解析 字节码文件 使用执行引擎 驱动去加载机器码运行时数据区解析 它包含 五大模块 (方法区 虚拟机栈 本地方法栈 堆 程序计数器) 基本的加载流程如下:  1)寻找jre目录,寻找jvm.dll,并初始化JVM;  2)产生一个Bootstrap Loader(启动类加载器);  3)Bootstrap Loader自动加载Extended Load...

2021-01-24 11:04:25 421

转载 Nginx中rewrite实现二级域名、三级域名、泛域名、路径的重写

最常见的: 静态地址重定向到带参数的动态地址rewrite "^(.*)/service/(.*)\.html$" $1/service.php?sid=$2 permanent; 反过来: 带参数的动态地址重定向到静态地址if($query_string~*id=(.*)){ set$id$1; rewrite"^(.*)/article.asp$"$1/article/$id.htmlast; }泛域名解析server_na...

2021-01-22 16:01:52 1427

转载 redis key命名规范

1.建议全部大写2.key不能太长也不能太短,键名越长越占资源,太短可读性太差3.key 单词与单词之间以 : 分开user id userName age 1 zhangsan 18 2 lisi 16 4.redis使用的时候注意命名空间,一个项目一个命名空间,项目内业务不同命名空间也不同。一般情况下: 1) 第一段放置项目名或缩写 如 project 1) 第二段把表名转换为...

2020-12-27 17:37:05 234

原创 mysql将一个表数据导入另一个表

INSERT INTO primus_pms.brand (id, `name`,pic) SELECT brand_id ,`name`,icon FROM primus_merchant.shop_brand GROUP BY brand_id,icon,`name`

2020-12-23 21:07:49 167

转载 《性能测试二三谈》系列

《性能测试二三谈》系列从16年4月份开始学习性能测试到现在全职做性能测试工作,差不多两年半时间。期间断断续续写了一些性能测试方法和负载工具以及监控工具相关的博客。最近抽时间重新翻看了之前写的博客,发现有些内容缺乏思考和精准度。也为了方便自己随时查阅相关的知识,将性能测试相关的知识、工具、框架相关的内容整理出来,也算是一个Index吧。主要会从基础篇、方法篇、分析篇、监控篇、工具篇这几部分来统计,具体见下文吧,会不断更新的。。。基础篇我第一次真正意义上接触性能测试,应该是从段念老师的.

2020-12-09 14:59:25 124

转载 Mysql中的FOREIGN_KEY_CHECKS方法

一、描述:  Mysql中的FOREIGN_KEY_CHECKS是用来启动和关闭外键约束的方法。二、错误:  在MySQL中删除一张表或一条数据的时候,提示以下错误:[Err] 1451 -Cannot delete or update a parent row: a foreign key constraint fails (...)三、原因:  这是因为MySQL中设置了foreign key关联,造成无法更新或删除数据。四、解决方法:  可以通过设置FOREIGN_K

2020-12-09 10:44:43 19012

转载 Redission之GeoHash

由于最近项目中需要用到距离计算, 附近位置等功能, 就想到redis了的GeoHash, 关于GeoHash的概念就不过多介绍, 用法也比较简单, 但由于项目中使用的是Redission, 网上有关Redission 使用GeoHash的工具类也非常之少, 无奈只能自己动手写了。话不多说,直接上工具类, 做了两层封装。一.RedissonTemplate/** * 操作对象 */public class RedissonTemplate { @Resource priva

2020-12-01 10:01:00 957 1

转载 mysql 中查看表、字段的编码格式

1、查看所有字段的编码格式:mysql>show full columns from tableName;2、查看表的编码格式:mysql>show create table tableName;3、修改数据库的编码格式:mysql>alter database databasename character set utf84、修改表的编码格式mysql>alter table tablename character set utf85、修改字段的编码

2020-11-29 16:26:31 5648

转载 SpringBoot配置mysql5和mysql8的数据源

mysql 8必须加时区serverTimezone,不然启动回报错注意yml文件的分层书写<span style="color:#000000"><code class="language-yaml"> <span style="color:#c678dd">datasource</span><span style="color:#999999">:</span> <span style="color:#

2020-11-15 17:00:58 1036

转载 springboot+redis项目实战

1.在springboot项目的pom.xml文件里加入redis的jar依赖<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0..

2020-11-15 16:21:49 160

转载 Spring Boot中混合使用StringRedisTemplate和RedisTemplate的坑

存储到Redis数据取不到值。两种Template的源码分析这是为什么呢?是因为他同时使用了StringRedisTemplate和RedisTemplate在Redis中存储和读取数据。它们最重要的一个区别就是默认采用的序列化方式不同(在课程中已经讲到)。这里我们再来回顾一下相关源码,StringRedisTemplate的部分源码如下:public class StringRedisTemplate extends RedisTemplate<String, String> {

2020-11-15 16:20:17 703

转载 Thread 的join方法解释

 一、作用  Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行执行。具体看代码:public class JoinTest { public static void main(String [] args) throws InterruptedException { ThreadJoinTest t1 = new ThreadJoinTest("小明"); ThreadJoinTest t2 = new ThreadJo

2020-11-11 14:17:10 242

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除