
java技术分享
该专栏主要记录工作中的一些常用问题。
李振伟
java开发,记录常见一些问题
展开
-
xxljob后台集群部署如何避免重复执行任务
工作中有一场景,后台部署2个节点,同时注册到执行器内,如何避免任务重复执行呢?原创 2023-03-10 18:12:31 · 6890 阅读 · 1 评论 -
Java8 lambda HashMap排序
【代码】Java8 lambda HashMap排序。原创 2023-02-27 09:55:04 · 392 阅读 · 0 评论 -
kafka连接报错Connection to node 1 (localhost/127.0.0.1:9092) could not be established.
配置advertised.listeners为外网访问地址和端口。server.properties中。原创 2023-02-21 18:10:22 · 2765 阅读 · 0 评论 -
mybatis动态查询字段、动态更新字段
mybatis动态查询字段、动态更新字段原创 2023-01-11 12:41:08 · 4838 阅读 · 2 评论 -
远程文件转MultipartFile,并获取ContentType
工作中一场景,需要把fastdfs服务器上的远程文件转化成MultipartFile,用来上传到minio服务器上。遇到一个问题,需要动态的获取到文凭的ContentType,以确保文件或图片能正常在浏览器中预览或下载(图片预览,其他文件直接下载),因为如果ContentType类型设置不正确会导致文件不能正常预览或下载。原创 2023-01-06 19:23:31 · 6827 阅读 · 0 评论 -
minio分布式集群部署
分布式 Minio 可以让你将多块硬盘或者多台服务器组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式 Minio 避免了单点故障。MinioMinio分布式模式可以帮助你搭建一个高可用的对象存储服务,你可以使用这些存储设备,而不用考虑其真实物理位置。原创 2022-12-30 09:42:28 · 4855 阅读 · 7 评论 -
springboot集成minio实现文件存储
springboot集成minio实现文件存储。原创 2022-12-29 16:45:43 · 417 阅读 · 0 评论 -
nginx+keeplived 实现高可用 Web 负载均衡
在系统设计中,可以利用Nginx的反向代理和负载均衡实现后端应用的高可用性,同时我们还需要考虑Nginx的单点故障。如果Nginx所在服务器宕机,或者Nginx服务不可用就会造成整个系统的不可用。为了解决这个问题可以使用Keepalived解决单点故障的问题。keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来避免单点故障。原创 2022-12-21 14:52:32 · 2148 阅读 · 0 评论 -
org.csource.common.MyException: getStoreStorage fail, errno code: 28
2种解决方法,一个是修改此配置,然后重启track,但此方法不是长久之计,最好还是扩大磁盘容量,增加存储空间。预留存储空间为10%,如果不足这个设置,则会报这个错误。原创 2022-11-18 09:41:09 · 1325 阅读 · 0 评论 -
fastdfs选择固定storage节点上传文件(fastdfs同步延时问题解决)
通过上传图片的组件上传成功之后,由于需要回显图片,如果存在延时,会出现图片破裂的情况,所以在这里需要把文件同步的时候调小。另一台只做备份用,这样虽然同步有延时,但是图片回显的问题就可以解决了。修改我们要选择的strage 服务中的 storage.conf中的。按下面方法依然解决不了问题,所以又有了一个想法,可不可以。在fastdfs新加了一台storage服务之后,(此值越小优先级越高,可以为负数)原创 2022-10-31 10:48:36 · 1714 阅读 · 0 评论 -
fastdfs添加storage节点
fastdfs安装fastdfs 添加storage 节点fastdfs 选择固定stroate节点上传文件原创 2022-10-28 17:45:17 · 2243 阅读 · 0 评论 -
centos离线安装fastdfs
离线安装fastdfs安装nginxfastdfs的配置及使用原创 2022-10-28 10:25:28 · 1108 阅读 · 0 评论 -
fastdfs定时清理图片
【代码】fastdfs定时清理图片。原创 2022-10-25 17:45:42 · 2481 阅读 · 0 评论 -
mysql删除多处字段重复的数据
【代码】mysql删除多处字段重复的数据。原创 2022-10-24 19:18:23 · 1984 阅读 · 0 评论 -
Springboot - 注解 - 操作日志< bizlog-sdk>
Springboot - 注解 - 操作日志< bizlog-sdk>用户登录后,调用后台接口接口,把token对应的用户信息存入redis.后台通过header获取token,再根据token查询redis中对应用户信息。原创 2022-10-24 10:03:10 · 2355 阅读 · 3 评论 -
kkFileView-文件在线预览部署及使用
kkFileView为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等。原创 2022-10-19 15:14:32 · 2830 阅读 · 0 评论 -
下载文件 org.apache.catalina.connector.ClientAbortException: java.io.IOException: Connection reset by pe
com.ctfojt.recruit.service.impl.CommonUtilsServiceImpl:downloadZip(200)] - 压缩包下载出错:org.apache.catalina.connector.ClientAbortException: java.io.IOException: Connection reset by peer。原创 2022-10-17 19:50:23 · 960 阅读 · 0 评论 -
java ping包的2种方式以及遇到的坑
排查:本地调试时,如果没有用管理员打开idea时,发现返回结果都是false,当切换为管理员打开idea时,结果正常。所以部署的时候需要注意,如果是windows系统,需要用管理员启动服务 ,如果是liunx需要root用户启动服务。原创 2022-09-23 17:38:54 · 664 阅读 · 0 评论 -
Kafka一个节点挂掉,导致服务不可消费
kafka集群,一个节点挂掉,导致不可消费;kafka修改默认副本数;kafka为现有topic扩副本。原创 2022-09-14 15:18:05 · 4605 阅读 · 3 评论 -
java存储redis数据类型以及客户端查看中文乱码的问题解决
其实不是乱码,RedisTemplate默认序列化方式用的是JdkSerializationRedisSerializer,将key序列化方式改成StringRedisSerializer,将value序列化方式改为Jackson2JsonRedisSerializer。将下面代码放到springboot的启动类下就可以了。原创 2022-09-05 10:47:48 · 2140 阅读 · 0 评论 -
java8 lambda 获取list对象中重复数据
工作上的场景,简单记录一下:在这里直接借用业务上的list,不再new 了。List<AlarmStatisticsListOutput> alarmList = spareAlarmStatisticsMapper.selectAlarmStatistics(unitIdList);根据对象中的某个字段分组,得到重复数据,在这里用了对象中的一个字段spareIdMap<String, List<AlarmStatisticsListOutput>> grou原创 2022-04-22 19:44:30 · 7807 阅读 · 4 评论 -
什么是CPU密集型?什么是IO密集型?
1、CPU密集型CPU密集型也叫计算密集型,指的是系统的硬盘、内存性能相对CPU要好很多,此时,系统运作大部分的状况是CPU Loading 100%,CPU要读/写I/O(硬盘/内存),I/O在很短的时间就可以完成,而CPU还有许多运算要处理,CPU Loading很高。CPU密集的意思是该任务需要大量的运算,而没有阻塞,CPU一直全速运行。CPU密集任务只有在真正的多核CPU上才可能得到加速(通过多线程),而在单核CPU上,无论你开几个模拟的多线程该任务都不可能得到加速,因为CPU总的运算能力就那些原创 2022-04-15 17:56:15 · 14548 阅读 · 2 评论 -
nginx 部署h5一刷新就404
记录一下解决方法:try_files $uri $uri/ /index.html原创 2022-03-23 16:01:08 · 3409 阅读 · 0 评论 -
springboot no tests were found
springboot单元测试报错:no tests were found,如图所示:原因分析:1、进行单元测试的方法不能有返回值 2、方法不能私有化。以上两个问题都会报 no tests were found 错误。正确写法:原创 2022-01-06 13:48:52 · 7357 阅读 · 2 评论 -
centos设置jar包开机启动
1、新建启动、停止文件在 /usr/local 下 新建文件 app_start.sh 和 app_shutdown.shapp_start.sh#!/bin/sh# JAVA_HOME=/usr/local/jdk1.8.0_231/nohup /usr/local/jdk1.8.0_231/bin/java -jar -Djava.awt.headless=true /home/jtqf-jl/audit-query-jl.jar --logging.config=classpath:原创 2021-12-10 16:54:35 · 1531 阅读 · 0 评论 -
centos查看mysql是否开机启动
执行命令:chkconfig --list如果 mysql服务的 第3、4、5项都是开着的,则已经开启了开机启动,反之则没有。如图:原创 2021-12-10 15:34:25 · 2659 阅读 · 0 评论 -
阿里巴巴Java开发手册终极版v1.3.0
阿里巴巴Java开发手册终极版v1.3.0下载地址原创 2021-10-26 14:50:41 · 154 阅读 · 0 评论 -
HikariPool-1 - Connection is not available, request timed out after
最近工作中碰到一个问题,springboot 配置了mysql多数据源,以前一直单线程运行,没有任务问题。最近需要多线程运行,然后一直出现下面的问题:HikariPool-1 - Connection is not available, request timed out after 30033ms.springboot 2.0之后,默认数据库连接池为 HikariPool,其详细属性见下文 HikariPool连接池属性详解 HikariPool连接池默认属性网上查了很多资料,但是很多都没原创 2021-09-23 10:53:24 · 5561 阅读 · 0 评论 -
java 字典的util类,class中直接调用mapper
工作中有这样一个需求:系统有一个字典表,在一些业务中存的都是字典值,所以有些时候在前台需要展示汉字的时候,就需要关联字典表。如果我们直接这样写的话:select a.id,d.dictName from a left join dict d on a.id = d.dictValue也是能实现的,但是如果a表中的数据很大的话,这样就会大大降低了查询效率,查询时间简直是天壤之别!所以我想建一个关于字典的工具类,把这个转换放到java代码中去处理因为我们展示的页面大部分都有分页,所以这种方式也不会原创 2021-09-23 10:52:44 · 747 阅读 · 0 评论 -
千万级数据量PageHelper查询分页总数慢的问题
工作中遇到的问题,列表查询速度很慢,代码如下:mybatis是这么写的:调试发现原因是用的PageHelper分页插件,每次都要统计总数:解决方法:pagehelper的select COUNT()方法在Mapperj里写一个新的查询方法,末尾加上_COUNT,前面命名一致,返回结果必须是Long.再看效果,获取总条数的方法已经改变,速度快了很多,完美解决!如果帮到了你,欢迎点个赞!...原创 2021-09-08 11:21:08 · 4078 阅读 · 6 评论 -
Could not initialize class sun.awt.X11GraphicsEnvironment
最近工作中遇到一个问题:用了Hutool工具写了一个导出功能,发再在liunx服务器上启动的时候报错,错误信息如下:Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class s原创 2021-07-20 14:57:44 · 545 阅读 · 0 评论 -
no active profile set, falling back to default profiles: default
此问题大多数为springboot版本问题,springboot 和 springcloud 版本要匹配,参考官网。springboot和springcloud版本对应关系原创 2021-07-15 13:09:13 · 475 阅读 · 0 评论 -
SpringBoot + SpringCloud+Nacos项目搭建
版本选择spring官网SpringBoot 官方强烈建议升级到 2.X 以上版本SpringBoot 和 SpringCloud 版本对应关系在这里我们选择最新稳定版本Spring Boot 2.4.6Spring Cloud 2020.0.3新建父工程1、New->Project2、父工程的名字3、Maven 选择版本4、字符编码5、注解生效激活6、java编译版本选择 java 8父工程的pom文件<?xml version="1.0"原创 2021-07-14 15:57:43 · 3639 阅读 · 6 评论 -
springBoot @Scheduled 多个任务同时开始执行
只需要在springBoot 启动类上添加如下代码即可: @Bean public TaskScheduler taskScheduler() { ThreadPoolTaskScheduler taskExecutor = new ThreadPoolTaskScheduler(); taskExecutor.setPoolSize(50); return taskExecutor; }...原创 2021-03-02 09:43:20 · 1822 阅读 · 0 评论 -
java时间日期操作(最近一个月、最近一年。。。)
// date转StringSimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");long curTime = System.currentTimeMillis();//获取当前时间String startTime = sdf.format(new Date(curTime)); //date 转 String//String 转时间和时间戳String s = "2021-02-22 13:20:22"Date d原创 2021-02-22 13:36:38 · 2631 阅读 · 0 评论 -
JSON文件转java对象
话不多说,上代码:String jsonFilePath = "p:/a.json";File file = new File(jsonFilePath);String input = FileUtils.readFileToString(file, "UTF-8");JSONObject parse = (JSONObject) JSONObject.parse(input);Object resultBody = parse.get("data");List<TrackOfVehicl原创 2020-12-12 13:57:21 · 218 阅读 · 0 评论 -
mysql 跨服务器创建视图(表)
mysql 跨服务器创建视图(表)前言在这里我们用到的是 mysql 的 federated存储引擎,让我们可以访问在远程数据库的表中的数据,而不是本地的表。直接在本地构建一个federated表来连接远程数据表,配置好了之后本地表的数据可以直接跟远程数据表同步。本文档示例 - mysql 5.6select version() from dual;5.6.50开启 federatedfederated 默认是关闭状态,我们可以使用 SHOW ENGINES 查看状态SHOW ENGI原创 2020-12-07 15:42:26 · 3939 阅读 · 0 评论 -
java easyexcel 导出 excel
java easyexcel 导出 excel1 简介EasyExcel是一个基于Java的简单、省内存的读写Excel的开源项目。在尽可能节约内存的情况下支持读写百M的Excel。2 环境springboot + idea3 引入pom文件<dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <vers原创 2020-10-31 14:45:49 · 627 阅读 · 2 评论 -
java线程池合理设置最大线程数和核心线程数
工作中有这样一个场景,需要处理千万级别的数据的一个算法,大部分是增删查的操作。这个时候就需要使用多线程去处理。一开始是这么配置的:@Configuration@EnableAsync(proxyTargetClass = true)//利用@EnableAsync注解开启异步任务支持@ComponentScan({"com.ctfojt.auditbcarslogo.service"}) //必须加此注解扫描包public class ThreadPoolConfig implements Asy原创 2020-10-10 17:13:31 · 29163 阅读 · 31 评论 -
switch 语句小练习
package com.day02;/** * 从键盘输入年、月、日,判断这一天是当年的第几天 * 注:判断一年是不否是闰年的标准: * 1) 可以被4整除,但不可被100整除 * 2)可以被400整除 */import java.util.Scanner;public class TestSwitch { public static void main(String[] arg原创 2013-12-08 11:46:46 · 593 阅读 · 0 评论