- 博客(91)
- 资源 (1)
- 收藏
- 关注
原创 Java 面试题,机器CPU在某个时刻占用高,但是那一时刻没有去排查,隔天后怎么排查这个CPU占用高得问题
通过查看历史监控数据、分析日志文件、使用Java性能分析工具、获取线程堆栈信息、进行代码优化和资源管理等步骤,可以有效地排查和解决Java应用中CPU占用高的问题。同时,建立监控与预防机制也是预防类似问题再次发生的重要措施。
2024-11-28 11:43:01
415
原创 有什么比较好用的 APP 抓包工具 ?
使用这些抓包工具时,需要遵守相关法律法规,并尊重他人隐私权。同时,部分工具可能需要在安卓设备上获得root权限或进行其他特殊设置才能正常使用。在选择和使用工具时,请确保你有足够的权限和合法的理由来进行抓包操作。
2024-11-27 16:53:19
3609
原创 有什么好用的 tcp 性能测试工具 ?
在选择TCP性能测试工具时,需要根据具体需求、测试环境以及测试目标来综合考虑。不同的工具有不同的特点和适用场景,选择合适的工具可以更有效地完成测试任务。
2024-11-27 16:37:25
1805
原创 每个请求,对于 springboot 程序来说,都是独立的线程,是这样吗
在Spring Boot中,每个HTTP请求通常由服务器线程池中的一个独立线程来处理。线程池的配置可以根据服务器的性能和负载进行调整。异步处理允许在处理请求的过程中执行异步任务,但这并不改变请求处理的基本线程模型。因此,可以说在Spring Boot中,每个HTTP请求在处理时都对应一个线程池中的线程,但并非严格意义上的“独立线程”(因为线程是从线程池中复用的),而是由线程池管理的一个独立执行单元。
2024-11-27 16:32:14
674
原创 Java 项目,接收其它系统发过来的数据,数据量较大频率也比较快,这种场景如何处理 ?
处理大量且频率较快的数据需要综合考虑数据接收、存储、处理、一致性保证、监控与告警以及扩展性与伸缩性等多个方面。通过合理的架构设计和技术选型,可以构建一个高性能、可扩展和可靠的系统来处理这些数据。
2024-11-27 16:26:10
447
原创 生产环境中,nginx 最多可以代理多少台服务器,这个应该考虑哪些参数 ?怎么计算呢
在生产环境中,Nginx最多可以代理的服务器数量并没有一个固定的限制,它取决于多个因素,包括Nginx的配置、服务器的硬件资源、网络带宽以及后端服务器的负载能力等。综上所述,Nginx最多可以代理的服务器数量取决于多个因素,包括Nginx的配置、服务器的硬件资源、网络带宽以及后端服务器的负载能力等。通过合理的配置和评估步骤,可以确保Nginx能够高效地代理后端服务器,提供稳定可靠的服务。
2024-11-27 16:12:39
608
原创 Redis 中的 hcan 命令耗内存,有什么优化的方式吗 ?
综上所述,优化HSCAN命令的性能需要综合考虑多个因素,包括游标值、返回键数量、迭代时间、哈希表结构等。在实际应用中,可以根据具体需求和场景选择合适的优化策略。同时,也需要注意监控Redis服务器的性能指标,以便及时发现并解决性能问题。Redis中的HSCAN命令用于迭代哈希表中的键值对,但可能会消耗较多的资源。
2024-11-27 16:08:29
724
原创 Java 中,有什么工具可以进行代码反编译
a.专注于 Java 8、Java 11 和 Java 17 的反编译,支持许多现代 Java 特性。使用 IntelliJ IDEA 的开发者,查看 .class 文件时会自动反编译。a.支持现代 Java 版本(包括 Java 8 和 Java 11)的语法。b.可以直接打开 .jar 或 .class 文件,查看反编译后的代码。c.提供一个库,支持将反编译功能集成到自己的工具中。b.反编译结果质量高,能处理现代 Java 特性。c.命令行工具,适合集成到自动化工具链中。a.一个轻量级的图形化工具。
2024-11-25 15:00:21
4239
1
原创 InnoDB 引擎是如何实现索引的 ?
一、InnoDB 索引的实现1) 表数据自身就是按 B+Tree 组织的一个索引结构文件2) 聚集索引 - 叶节点包含了完整的数据记录3) 为什么建议 InnoDB 引擎的表一定要建主键,并且推荐使用整型的自增主键 ? 在建立一条的数据的时候,必须要用一颗 B+ Tree 来组织,如果我们的表的主键自带索引的话,那直接可以使用该索引来建立 B + Tree 的数据结构。 问题来了 ? 如果没有主键 id 呢 ? 它会选择一列没有相等的数据的列拿来组织 B+ Tree 数据
2024-11-25 13:25:14
864
原创 Java 类加载器与双亲委派机制
类加载器和双亲委派机制类加载器种类:1、引导类加载器: 负责加载支持JVM运行位于JRE lib目录下的核心库,比如 rt.jar、charsets.jar 等c++ 语言在启动 java 虚拟机的时候,用 c++语言实现的引导类加载器,用来加载 jdk 最重要的核心 jar 包2、 扩展类加载器: 负责加载支持JVM运行位于JRE 目录下ext扩展目录中的 jar 类包3、 应用程序类加载器:负责加载ClassPath路径下的类包,主要程序员自己编写的那些类)4、自定义加载器:负责用户自定
2024-11-25 11:31:15
1235
1
原创 分布式系统接口,如何避免重复提交
在接口请求前,服务器生成一个唯一的 Token(可以是 UUID 或其他唯一标识),并将其下发到客户端。客户端在请求接口时携带该 Token,服务器校验该 Token 是否已经使用。尤其是在处理涉及资金交易、订单创建等敏感业务时。避免表单重复提交是一项重要的任务,
2024-11-25 10:36:26
808
原创 Nacos 启动报错 java.lang.UnsatisfiedLinkError
java.lang.UnsatisfiedLinkError 通常是由于 Java 在运行时无法找到本地库(native library)或者无法加载本地代码(如 .so、.dll 或 .dylib 文件)引起的错误。Nacos 可能依赖一些本地库,例如用于连接数据库、Nacos 自身的组件或者其他与操作系统相关的依赖。Nacos 可能依赖某些环境变量来找到本地库文件,如果这些环境变量配置不正确或没有设置,Java 就无法加载本地库。Nacos 可能在启动时试图加载错误的配置或环境,导致无法找到依赖的库。
2024-11-19 14:39:01
1282
原创 Java 解决远程调用 ssl 证书认证问题
假如你的项目是 spring boot ,远程调用是 feign 组件的话,可以通过修改配置文件来跳过 ssl 证书校验。假如你的项目是 spring boot ,可以加入 跳过证书的 java 文件,其实就是创建一个 bean 对象。Java Compiler 及 Project Structure 下 jdk 的版本是否正确和你目录对应上。注意:需要把该文件放在 springboot 能扫描到的地方。打开 cmd , 按照自己的文件所在的目录进行导入命令执行。在 jdk 目录导入证书。
2023-12-23 13:31:29
842
原创 SpringCloud-Gateway 解决跨域问题
浏览器不能执行其他网站的脚本,是由浏览器同源策略限制的一类请求场景,从一个域名的网页去请求另一个域名的资源时,域名、端口、协议任一不同,都是跨域。指一个域下的文档或脚本试图去请求另一个域下的资源。
2023-10-30 23:15:39
2430
2
原创 SpringBoot 整合 Druild 数据源,详细步骤
文章目录一、Druid 数据源介绍二、整合步骤2.1、加入必须依赖2.2、配置文件三、整合中出现的问题一、Druid 数据源介绍Druid 是一个数据库连接池。Druid是目前最好的数据库连接池,在功能、性能、扩展性方面,都超过其他数据库连接池。具说 Druid 已经在阿里内部部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。另外 Druid 是阿里开发的号称为监控而生的数据库连接池!二、整合步骤2.1、加入必须依赖<dependency> <grou
2022-04-23 00:40:36
726
原创 Springboot 整合 jasypt 实现配置文件敏感信息加密,详细步骤
文章目录一、jasypt 加密介绍二、springboot 集成步骤2.1、使用 jasypt -spring-boot-starter2.2、启动类添加注解2.3、配置文件三、测试步骤3.1、添加加密后的属性配置3.2、添加测试解析类一、jasypt 加密介绍为什么要使用 jasypt 加密 ?在我们在配置中配置敏感信息的时候 , 要是被不友好的人看见了,就容易产生风险。这个时候就 需要把敏感信息加密。通过使用 Jasypt,我们可以为属性文件属性提供加密,我们的应用程序将完成解密并检索原始值
2022-04-20 12:16:27
4749
原创 SpringBoot 整合 liquibase 详细步骤
一、介绍LiquiBase 官方地址:http://www.liquibase.org/documentation/index.htmlLiquiBase 是一个数据库重构和迁移的开源框架,通过日志的方式来记录数据库的变更。通过执行日志文件中的修改,将数据库更新或回滚到达一致的状态。特点:支持几乎所有主流的数据库,如MySQL, PostgreSQL, Oracle, Sql Server, DB2等;支持多开发者的协作维护-协同日志文件支持多种格式,如XML, YAML, JSON, SQL
2022-04-19 15:50:00
3470
原创 Charles 安装及配置,详细步骤
一、安装激活1.1、下载https://www.charlesproxy.com/download/1.2、激活打开Charles ==> Help ==> Register Charles => 输入Registered Name : https://zhile.ioLicense Key:48891cf209c6d32bf4二、代理配置2.1、代理设置Proxy ==> Proxy Settings1.勾选 Enable tranaparent HTTP pr
2022-04-12 22:34:21
35413
9
原创 ElasticSearch 安装教程 , Centos7 系统
文章目录一、相关安装包下载一、创建普通用户二、上传相关压缩包、并解压三、修改配置文件3.1、使用 es 用户修改 elasticsearch.yml 配置文件3.1、使用 es 用户修改 jvm.option四、修改系统配置文件4.1 修改系统配置文件,解决启动时的问题4.1.1 普通用户打开文件的最大限制4.1.2 普通用户启动线程数限制4.1.3 普通用户调大虚拟内存五、启动 es 服务五、客户端 Kibana 安装一、相关安装包下载elasticsearch‐7.6.1‐linux‐x86_64.
2022-04-12 11:24:58
2536
原创 Java 通过序列号生成树形结构数据 [代码实现\可直接运行代码]
文章目录通过下面的序列号生成有层级关系的树形结构:代码实现通过下面的序列号生成有层级关系的树形结构: 代码实现import com.alibaba.fastjson.JSON;import lombok.Data;import org.apache.commons.collections4.CollectionUtils;import java.util.ArrayList;import java.util.Arrays;import java.util.List;import jav
2022-02-12 18:26:05
910
9
原创 Redis 的键过期删除策略你知道吗 ?
文章目录Redis 的键过期删除策略你知道吗 ?一、常见的删除策略1.1 定时删除策略1.2 惰性删除策略1.3 定期删除策略二、redis 使用的删除策略2.1 惰性删除策略的实现方式2.2 定期删除策略的实现Redis 的键过期删除策略你知道吗 ?对于 redis 服务器来说,内存肯定很重要的,但如果有一些 key 不常用又一直不被删除,就会造成资源的浪费。一、常见的删除策略常见的三种删除策略如下:其中定时删除和定期删除属于主动删除策略,而惰性删除就被动性删除策略。1.1 定时删除策略在设
2022-02-02 16:56:35
1336
原创 Redis 能用在哪些场景下 ?
1、短信验证码把短信验证码存到 redis,给 redis 设置一个过期时间。key 过期就查不到数据,验证码自然就过期了。2、缓存热点数据热点数据:数据频繁被查询或被使用,对一致性要求很高的数据,不建议放在 redis里面,有可能会出现数据不一致的问题。3、分布式锁并发的时候,可能会出现线程不安全的情况,为了保证分布式情况下的串行执行。这个时候需要使用分布式锁,而 redis 的 setIfAbsent 指令就适合做这个锁。这个指令的意思就是不存在该 key,就成功,相反而知。大致流程:或
2022-02-01 14:46:30
1933
原创 @Transactional 事务失效的场景还不清楚 ?
一、事务的类型1、声明式事务2、编程式事务二、@Transactional 声明式事务的用法三、@Transactional 会造成失效的场景
2022-01-18 15:11:03
388
原创 Java 按天自增生成自定义 ID
Java 按天自增生成自定义 ID一天从1 开始自增到 9999,第二天又要重新从 1 开始生成 ,id 字符串会拼上年月思路:既然 id 需要拼上年月,我们可以考虑用 redis 的自增指令来实现,年月当 key ,自然到了第二天 key 就变了,所以自增又重新开始了。 public String method(){ //时间位 DateTimeFormatter DF_FMT_PREFIX = DateTimeFormatter.ofPattern("ddMM
2021-11-06 17:57:46
2179
1
原创 Java 随机生成 “纯数字“、“纯字母“ 、“数字字母混合“ ID 并保持全局唯一
随机生成 “纯数字”、“纯字母” 、“数字字母混合” ID并保持全局唯一一、随机生成纯数字ID /** * 随机生成字符,只有数字 * @param length id长度 */ public static String getNumber(Integer length) { String uid = ""; for (Integer i = 0; i < length; i++) { Strin
2021-11-06 15:17:54
6054
原创 IDEA 2021.02.02 的版本,出现编译项目报内存溢出的问题
一、出现状况,在这个页面编译很久,过后直接报了个内存溢出的报错。二、解决方法分析情况,考虑到是项目大的情况,导致默认的内存不太够,需要加大一些。1、设置 idea 本身内存2、file > settings > compiler3、file > settings > Importing...
2021-09-26 10:24:54
3858
原创 Mysql 数据库执行计划 EXPLAIN SELECT * FROM
EXPLAIN SELECT * FROM 是干嘛用的 ?查询计划用的语句,主要用来检测 sql 的执行性能。例如:explaln select * from user 就是检测 select * from user 的查询性能。EXPLAIN SELECT * FROM 各个字段的含义id列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询。select_type 常见列值有:2.1:simple:表示不需要un
2021-05-30 01:55:30
786
原创 关于数据加密的思考,加密的算法类型,优雅解决数据加密
背景: 海外项目,考虑到数据合规的问题,项目中入库的数据进行加密,但正常的业务交集还是要用明文数据,所以查询出来的数据需求明文返给前端。传统的想法:在数据入库前进行数据加密,把数据查询出来前,再进行数据加密,这是一个简单的实现。常用加密算法的类型:非对称加密对称加密哈希加密数字签名加密...
2021-03-29 17:14:13
411
原创 都应该知道的类的加载机制 (加载、验证、准备、解析、初始化、使用、卸载)
类的加载机制java 程序要运行起来,首先要把class文件加载到 jvm 内存里面,加载过程分为 验证 > 准备 > 解析 > 初始化,最后会被加载到 jvm 里面。使用到类的时候才会被加载,例如调用类的main方法或者new对象等等。一,验证其实 Java 文件编译后的 class并不是所谓的 “乱码”,其实是规律含义的字母,验证这一步就是验证这些 class 文件里的字节码是否格式正确,格式不正确即会验证失败。二、准备准备这一步就是把我们的类静态变量(static)做初始值
2021-03-18 23:33:10
604
原创 SpringBoot 整合 Kafka、生产端、消费端代码实现
1 加入kafka maven依赖<dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId></dependency>2 kafka 参数配置及详细解释# 以逗号分隔的主机:端口对列表,用于建立与Kafka群集的初始连接spring.kafka.b
2021-03-17 00:44:27
2309
原创 Java 客户端访问 Kafka
Java 客户端访问 Kafka1,依赖引入<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.4.1</version></dependency>2,消息生产端代码package com.example.kafkademo.produce
2021-03-09 20:23:03
714
1
原创 Linux 安装kafka详细步骤
Linux 安装 kafka 详细步骤一,kafka 下载地址http://archive.apache.org/dist/kafka/二,安装步骤2.1 安装JDK (kafka 是Scala语言开发,运行在 jvm 上)# 解压文件tar -zxf jdk1.8.0_201.tar# 配置环境变量vim /etc/profile# 在 profile 文件最后加上export JAVA_HOME=/usr/local/java/jdk1.8.0_201export PATH=$
2021-02-23 23:48:50
21587
2
原创 Redis RDB、AOF及混合持久化,主从模式,哨兵模式
一、RDB、AOF 及混合持久化详解1.1 RDB 持久化RDB 持久化是把当前进程数据生成快照保存在硬盘的过程,触发RDB持久化有两种方式,分别是 手动触发,自动触发。1.1.1 手动生成RDB快照进入 redis 客户端 执行 save 或 bgsave 可以生成dump.rdb文件,每一次执行命令就生成新的rdb快照文件,并覆盖原有的 rdb 快照文件。save 命令 :执行 save 命令的时候会阻塞当前 redis 服务器,直到RDB快照成功生成,内存中的数据量过大的可能造成短时间的阻塞
2021-01-10 15:49:03
1202
原创 Linux 安装Redis、配置更改、进程启动、redis 卸载
1、安装Redis下载地址:https://www.redis.net.cn/download/把下载好的 redis-xxxx.tar.gz 放在/usr/local/redis文件夹下.解压:tar -zxvf redis-5.0.10.tar.gz进入解压好的redis目录中,进行编译与安装:make修改配置(redis-conf)://后台启动aemonize yes //关闭保护模式,开启的话,只有本机才可以访问rediprotected‐mode no //bind绑
2020-12-24 00:04:29
820
原创 RabbitMQ 常用工作模式
RabbitMQ 常用工作模式:官网地址:https://www.rabbitmq.com/getstarted.htmlPublish/Subscribe 发布与订阅模式订阅模式:生产者会将消息发送到(Exchange )交换机,Exchange 类型是 Fanout,不同的队列注册到交换机中,不同的消费注册到不同的队列上。P:生产者,也就是要发送消息的程序,但是不再发送到队列中,而是发送到 x 交换机中C:消费者,消息的接收者,会一直等待消息的到来Queue:消息队列、接收消息、缓存消
2020-12-15 00:26:07
556
原创 Rabbitmq 基本概念与安装及卸载
1,MQ 的基本概念1.1 MQ 概述 (全称 Message Queue ,在消息的传输过程中保存消息的容器,多用于分布式系统)1.1.1 MQ 的优势 应用解耦,异步提速,并发削峰 应用解耦:把有关联的内部系统采用异步消息通知的方式传递,提高系统的容错性和可维护性。异步提速:不必要的操作可使用异步的方式执行,减低业务反应的时间, 提升用户体验和系统吞吐量。并发削峰:提高系统的稳定性,避免高并发情况的服务瘫痪1.1.2 MQ 的问题/劣势系统可用性低,越多的服务依赖 MQ , 系统的稳定
2020-12-01 21:20:59
1185
springboot-crud-demo.zip
2020-04-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人