
技术类
文章平均质量分 70
King-Mouse
这个作者很懒,什么都没留下…
展开
-
解决ImageIO无法读取部分JPEG格式图片问题
在优化在线聊天功能时,我遇到了一次图片上传失败的问题,原以为是简单的文件格式限制,经过排查发现实际原因与 Java 的 ImageIO.read() 方法无法处理 .webp 格式图片有关。文章详细记录了调试过程,从文件格式的识别,到通过日志与代码逐步排查,最终发现 ImageIO 使用的 SPI 机制只支持常见格式(如 PNG、JPEG 等),导致了问题的出现。这篇文章分享了排查思路,揭示了 Java 在处理新兴图片格式上的局限性,帮助开发者应对类似问题。原创 2024-10-15 17:28:30 · 1078 阅读 · 0 评论 -
Redisson 分布式锁的最佳实践
Redisson 提供了简单而强大的分布式锁解决方案,通过合理设置锁的持有时间和使用看门狗进行续约,可以确保系统在高并发环境下的稳定性和可靠性。在实际应用中,开发人员可以根据业务需求选择合适的锁策略,并进行必要的异常处理,以实现分布式系统的高效运行。原创 2023-11-22 09:54:42 · 1196 阅读 · 0 评论 -
如何实现自定义数据库账号密码加解密
在实际的项目开发中我们有时候基于安全考虑需要在项目配置文件中对数据库账号密码做加密处理,这个时候我们就可以使用jasypt这个组件来实现。如果有些项目安全等级要求比较高,可能加密的算法需要自定义或者使用SM4国密算法来实现加解密,那么这个时候我们该如何使用jasypt这个组件来实现自定义算法加解密?原创 2023-08-31 16:25:14 · 379 阅读 · 0 评论 -
通过logstash消费kafka数据到elasticsearch
logstash是什么?Logstash是一个开源数据收集引擎,具有实时管道功能。 Logstash可以动态地将来自不同数据源的数据统一起来,并将数据标准化到你所选择的目的地。 数据往往以各种各样的形式,或分散或集中地存在于很多系统中。关于logstash的介绍官网写的非常详细,这里就不再过多介绍了,感兴趣的小伙伴可以自行去官网查看,我们今天的主要目的是如果通过logstash从kafka消费数据,并对数据进行简单的处理然后写入到elasticsearch中一、运行kafka并写入测试数据我们直接原创 2022-05-06 14:37:31 · 6451 阅读 · 0 评论 -
后端查询es数据
一、构建es连接本次我们通过RestClien来连接es服务端,代码很简单,就不废话了,直接上代码: HttpHost httpHost1 = new HttpHost("192.168.1.100", 8000, "http"); HttpHost httpHost2 = new HttpHost("192.168.1.101", 8000, "http"); HttpHost httpHost3 = new HttpHost("192.168.1.102", 80原创 2021-06-08 11:37:32 · 1429 阅读 · 2 评论 -
三分钟玩转git
三分钟玩转git常用命令清单初级用法· clone· pull· add· commit· push· checkout进阶用法分支操作查看分支切换分支合并回退新建删除remote日志修改个人信息更新本地的分支列表 git作为目前世界上最先进的分布式版本控制系统,我们怎么能不会操作呢?相信我,看完我今天的文章,你也是git大神!常用命令清单命令解释init创建一个空的Git仓库或重新初始化一个现有的add将文件内容添加到索引branch列出,创建或删除分支原创 2020-12-23 16:36:28 · 273 阅读 · 0 评论 -
如何实现自定义注解
如何实现自定义注解 在我们实际开发过程中如果能合理的运用自定义注解,则会大大减少我们代码的开发量。那怎么才能实现自定义注解呢?废话不多说,直接上干货!一、创建注解 这一步呢,我们可以理解成对应的实体类,我们要自定义注解,也需要这么一个东西,注解的名称,有哪些属性等等。package org.disp.kingmouse.annotations;import java.lang.annotation.ElementType;import java.lang.annotation.Retent原创 2020-06-02 18:51:13 · 16670 阅读 · 5 评论 -
如何使用notepad++修改服务器文件
不管是开发还是运维我们今天会遇到修改服务器文件的,但是我们发现其实在各种终端上修改都是麻烦的,并不能像我们在Windows上修改文件这么方便,但是今天我给小伙伴分享如何能像在Windows上一样编辑服务端文件首先我们需要有notepad++(sublime等等也是一样)1、安装插件:NPPFTP打开插件→插件管理,搜索NPPFTP,点击安装即可(安装完成记得重启notepad++)2...原创 2020-03-28 20:18:51 · 3066 阅读 · 2 评论 -
Linux下查找日志命令大全
Linux下查找日志命令大全grepgrep这个命令肯定是大家使用最多的了,但是这个命令到底怎么用呢,你都掌握了么?grep:查找文件中包含指定文本的命令语法:grep "测试" test.log解释:查找test.log所有包含"测试"字符串的行基本用法这个是最基础的语法,但是仅仅是这远远不够,我们来看下它有哪些参数(只介绍最常用的一些参数):-a或者-text: 不忽略二进...原创 2020-03-27 17:27:58 · 9362 阅读 · 2 评论 -
如何批量消费队列中数据
如何批量消费队列中数据队列的消费模式在我们实际开发过程中经常会处理各种大批量数据入库,这个时候我们就会到队列,将数据先写入队列中,然后开启多个消费线程慢慢消费入库。从队列中消费数据有两种方式:单条消费批量消费我们今天分别来实现这两种消费方式存数据到队列存数据相对比较简单,这里我推荐大家使用BlockingQueue,该队列为阻塞队列,非常好用!//创建队列 Blocking...原创 2020-03-26 16:00:49 · 2923 阅读 · 3 评论 -
还不会kafka?这一篇就够了!
一、 kafka是什么?kafka:一个分布式流处理平台1、 流处理平台特点可以让你发布和订阅流式的记录。这一方面与消息队列或者企业消息系统类似。可以储存流式的记录,并且有较好的容错性。可以在流式记录产生时就进行处理。2、 概念Kafka作为一个集群,运行在一台或者多台服务器上Kafka 通过 topic 对存储的流数据进行分类每条记录中包含一个key,一个value和...原创 2020-03-25 13:22:46 · 1535 阅读 · 5 评论 -
普通工具类调用service
在开发中我们经常遇到在工具类或者普通类中调用service的情况。在Service或者Controller我们用@Resource(name = "chargeService") 或者 @Autowired 这两个注解,但是在普通类中,这两个注解是没有办法注入service对象的,我们也无法通过new来使用,那这个时候就需要我们通过ApplicationContextAware 来实现!具体...原创 2019-06-18 20:36:59 · 1573 阅读 · 0 评论 -
记一次Guava Cache 数据丢失问题排查
程序中访问大量静态数据,并且并发量很高,这个时候使用Guava Cache来做缓存管理,能大大提高服务效率,内存占用率问题。当时当时在使用过程中发现有数据丢失的问题;程序初始化加载表中数据根据查询条件作为key值存放到Guava Cache中,但是线上实际使用一段时间后发现数据有丢失的情况,但是本地验证又正常;Guava Cache 部分代码: Cache<String, Ma...原创 2019-06-11 20:16:23 · 2187 阅读 · 1 评论 -
通过kafka发送和接收消息
生产者配置类:@Configuration@EnableKafkapublic class KafkaProducerConfig { @Value("${kafkaConfig.address}") private String address; @Value("${kafkaConfig.batchSize}") private String ba...原创 2019-06-11 20:43:44 · 6791 阅读 · 9 评论 -
Redis发布订阅
最近项目要用到消息通知,于是用了Redis的发布订阅来实现,废话不多说,直接上代码!订阅Redis:(subscribe 是一个阻塞事件,当订阅成功后就会阻塞,除非去掉订阅才能运行下面的事件,所以我们需要用一个线程去执行!!!)package com.des.mouse.king.ivsDispatch.configService;import org.slf4j.Logger;i...原创 2019-06-21 19:04:03 · 411 阅读 · 0 评论 -
Spring Boot 服务启动完运行指定方法
创建一启动类实现ApplicationRunner 就可以实现了(可以写多个类,通过 @Order(i) i 可以是1,2,3等等来控制执行顺序 )package com.des.mouse.king.ivrsDispatch.flowDataInterchangeService;import org.slf4j.Logger;import org.slf4j.LoggerFact...原创 2019-06-21 19:13:09 · 1151 阅读 · 1 评论 -
JAVA中如何优雅的关闭各种流
在JAVA 中我们会遇到各种流,每次写的时候我们需要在finally方法中关闭流,在关闭之前我们还要判断流是否为null,很麻烦!原来的写法:(向TXT中写入内容)public void testOne() { File writeName = new File("output.txt"); // 相对路径,如果没有则要建立一个新的output.txt文件 ...原创 2019-07-09 16:48:01 · 8924 阅读 · 3 评论 -
如何过滤一次请求的完整日志
要求:将一次请求的所有日志添加唯一标识,方便过滤一次完整请求的日志定义拦截器 继承 HandlerInterceptorAdapterpackage com.csc.contact.ykcacccharge.LogBackMdc;import org.slf4j.MDC;import org.springframework.web.servlet.handler.HandlerInter...原创 2019-07-17 20:52:17 · 679 阅读 · 0 评论 -
URL和URI的区别
1、URI :用于标记一个网络资源2、URL:用于标记一个WWW互联网资源(用地址标记),并给出了他的访问地址。(URI是Uniform Resource Identifier,表示是一个资源; URL是Uniform Resource Locator,表示是一个地址,光看英文缩写确实难懂)URL是URI的子集,所有的URL都是URI,但不是每个URI都是URL,还有可能是UR...原创 2019-05-22 09:00:42 · 284 阅读 · 0 评论