自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 后端接收格式为x-www-form-urlencoded的数据

后端接收格式为x-www-form-urlencoded的数据并且处理报错Content type 'application/x-www-form-urlencoded;charset=UTF-8' not supported

2023-02-24 12:59:02 5739

原创 基于JAVA的Dubbo 实现的各种限流算法

Override} else {通过以上方式,可以在 Dubbo 中实现各种限流算法,从而有效控制请求流量,保护服务稳定性。根据具体的业务需求,选择合适的限流算法,确保系统的性能和可靠性。

2024-05-17 15:55:11 261

原创 USE INDEX/FORCE INDEX/IGNORE INDEX使用的好,sql查询速度提升一倍

在实际工作中有些时候数据库的执行就很奇怪,要么不用索引,要么用了错误的索引,那么在这种情况下你就可以考虑使用这些索引提示来纠正数据库的行为。早期我们有一个表结构定义,上面有 A、B 两个索引。原本按照预期,我们是认为这个查询应该会走 A 这个索引。结果实际用 EXPLAIN 命令之后,MySQL 却使用了 B 索引。所以我使用了 FORCE INDEX 之后强制查询使用 A 索引,果然查询的响应时间降低到了毫秒级。同时还是需要强调一下,这个不是很好的实践,不到逼不得已都不要使用。

2024-05-14 11:39:08 887

原创 Canal解决select count(*)执行慢的问题

通过上述步骤,你可以实现使用 Canal 工具监听 MySQL binlog,并实时刷新 Redis 的功能。这种方式可以确保数据库和缓存的一致性,适用于高性能、高实时性的数据同步场景。

2024-05-14 10:46:06 555

原创 实用又好用Mybatis-Plus版的EasyCode模板

settings--》other settings--》EasyCode--》Template---》点击Group Name后边的+号添加自己的板块,也可以选择默认---》模板编写完之后,进行模板导入。然后点击下边的加号+添加模板。将对应模板贴入,点击应用。

2023-11-28 14:54:15 1152

原创 浏览器触发下载Excel文件-Java实现

使用EasyExcel库,创建一个写入Excel的Builder对象,指定输出流和数据对象的类。:注册写入处理器(WriteHandler),可以用于自定义Excel的样式、格式等。:设置响应头,指定文件名,并对文件名进行URL编码,确保中文文件名的正确性。:设置响应的字符编码为UTF-8,确保支持中文字符。:设置响应的内容类型为Excel文件。对象,用于设置Excel表头样式。对象,用于设置Excel内容样式。:设置表头字体的大小为13号。:将表头字体设置到表头样式中。:设置表头的背景颜色为白色。

2023-11-28 11:27:59 2022

原创 企业级真实应用利用Mybatis-Plus进行分页查询处理

Mybatis插件的使用,page,PageHelper

2023-11-14 15:12:05 648

原创 Java时间工具类:ZTDateTimeUtil

【代码】Java时间工具类:ZTDateTimeUtil。

2023-11-10 11:14:05 151

原创 Java调用HTTPS接口,绕过SSL认证

Java调用HTTPS,需要与客户端建立连接,但是建立连接的时候,需要进行SSL认证。因为我本次调用HTTPS接口的目的是调用数据,存储在表中,不需要跨环境,只在本地执行,所以进行SSL认证稍有繁琐,所以我决定绕过SSL认证。需要注意的是,代码中的URL、授权头信息、JSON参数等是示例数据,你需要根据实际情况进行修改和替换。是一个空实现的主机名验证器,它绕过了主机名验证,即使主机名不匹配,也会继续进行SSL连接。我的出参是这样的,所以按照自己的格式替换数据,便可以得到你想要的出参。

2023-11-01 10:27:33 7026 3

原创 Nacos源码启动报错:protoc did not exit cleanly. Review output for more information.

这是一个关于 Protobuf(Protocol Buffers)编译器出现问题的错误信息。Protobuf 是一种用于结构化数据序列化的工具,该错误提示表明 Protobuf 编译器在执行过程中出现了问题,并建议检查输出以获取更多信息。

2023-09-21 16:51:19 1880

原创 Could not find artifact com.alibaba.cloud:spring-cloud-starter-stream-rocketmq:pom:unknown in alimav

Could not find artifact com.alibaba.cloud:spring-cloud-starter-stream-rocketmg:pom:4.9.3 in aliyunmaven(https://maven.aliyun.com/repository/public)

2023-08-22 17:39:20 1045

原创 Linux解决RocketMQ中NameServer启动问题

一定要找到export ROCKETMQ_HOME然后再后边加上你的mq所在位置即可,我是在root下边新建了一个目录但在下边,然后修改了一个简便的名称rocketmq-all-5。然后将java环境配置到mq/bin目录下边的runserver.sh中,找到export JAVA_HOME然后将你的java地址配置进去。第二个报错,当你配置完ROCKETMQ_HOME,再次执行./mqnamesrv会出现第二个报错,没有配置java环境。设置完成之后第三个问题解决了。一下说明遇到的问题。

2023-08-21 11:57:39 1090

原创 Mysql进阶【3】论述Mysql优化

Mysql的sql优化企业里边主要是对慢sql进行优化,对语句进行优化,对索引进行优化通过explain查看sql的详细信息,并且分析sql语句存在的问题,比如有没有使用到索引、使用了索引还是慢是不是索引设置的不合理、没有显示使用到索引是不是触碰了索引失效的规则。使用explian的方法也就是在sql前边加上explian.

2023-06-08 11:00:56 850

原创 Mysql进阶【2】论述锁机制,SQL加锁情况

MySQL 的锁机制:按粒度分有三种、按功能划分两种,分析 SQL 的锁定情况

2023-06-06 11:18:53 351

原创 Mysql进阶【1】论述索引,索引数据结构,MVCC

开启两个回话,会话事务级别都是READ-COMMITED; 开启两个回话,会话事务级别都是REPEATABLE-READ 要点:索引类型 索引的底层使用了B+ Tree,数据结构,可以满足等值查询,范围查询等数据库查询的一切要求,并且B+ Tree的时间复杂度控制在O(logn)要点:

2023-06-05 19:02:17 1161

原创 企业级应用:检测服务是否正常运行

上边我的示例是通过检测数据库时候能够连接成功,并且通过HTTP请求接口服务,来检测服务是否正常,其实还可以通过外部服务依赖检查、磁盘空间检查、内存利用率检查、CPU利用率检查、日志检查、健康指标检查来查看服务健康状态,只有需要在接口checkHealth()方法中添加逻辑即可。checkHealth()方法根据实际需求编写健康状态检查的逻辑 、以检查数据库连接、外部依赖、服务可用性等 、返回true表示健康,返回false表示不健康。

2023-05-30 15:07:23 757

原创 <scope>runtime</scope>

这样,MySQL驱动就只会在运行时被加载,而不会在编译时和测试时被加载。这在某些情况下非常有用,例如,如果要将应用程序部署到多个环境中,而不想在每个环境中都安装MySQL驱动。子元素,用于指定依赖范围。如果要将MySQL驱动的依赖设置为。元素来声明项目的依赖关系。在Maven项目中,可以使用。

2023-04-10 16:06:37 3005 1

原创 Thymeleaf企业级真实应用:将HTML界面数据转换为PDF输出

Thymeleaf是一种现代化的服务器端Java模板引擎可以用于Web和独立环境中的HTML、XML、JavaScript、CSS和文本。在实际开发中,Thymeleaf可以用于生成动态的HTML页面,支持将数据与模板进行绑定,生成最终的HTML内容。它是一个开源的软件,采用Apache许可证2.0进行发布。

2023-04-04 17:24:31 1897 3

原创 你应该懂点Mybatis-plus,真的好用

Mybatis-plus 是一个基于 Mybatis 的增强工具,提供了许多便捷的 CRUD 操作和其他实用功能,简化了数据库访问的开发工作。它是 Mybatis 的一个开源组件,遵循 Apache 2.0 协议。

2023-04-03 16:02:52 3489

原创 更快更好用的Redis6.0

因为 Redis 6.0 是刚刚推出的,新的功能特性还需要在实际应用中进行部署和验证,所以,如果你想试用 Redis 6.0,可以尝试先在非核心业务上使用 Redis 6.0,一方面可以验证新特性带来的性能或功能优势,另一方面,也可以避免因为新特性不稳定而导致核心业务受到影响。Redis 6.0 的哪个或哪些新特性会对你有帮助呢?提升性能的角度上来说,Redis 6.0 中的多 IO 线程特性可以缓解 Redis 的网络请求处理压力。通过多线程增加处理网络请求的能力,可以进一步提升实例的整体性能。

2023-03-31 14:06:58 338

原创 细聊Java发展

Java开发这么久了,都没有聊过Java发展。看到这提示后,觉得可以细聊一下Java。

2023-03-29 14:25:24 1191

原创 熟练Redis之无处不在的锁

为了保证并发访问的正确性,Redis提供了两种方法,分别是加锁和原子操作Redis加锁两个问题:一个是,如果加锁操作多,会降低系统的并发访问性能;第二个是,Redis客户端要加锁时,需要用到分布式锁,而分布式锁实现复杂,需要用额外的存储系统来提供加解锁操作。

2023-03-27 15:39:15 963

原创 Redis缓存异常之缓存雪崩问题详细说明

缓存穿透是指要访问的数据既不在 Redis 缓存中,也不在数据库中,导致请求在访问缓存时,发生缓存缺失,再去访问数据库时,发现数据库中也没有要访问的数据,应用也无法从数据库中读取数据再写入缓存,来服务后续请求。缓存击穿是指,针对某个访问非常频繁的热点数据的请求,无法在缓存中进行处理,访问该数据的大量请求,一下子都发送到了后端数据库,导致了数据库压力激增,会影响数据库处理其他请求。也是一个方法,布隆过滤器在判别数据不存在时,是不会误判的,而且判断速度非常快,一旦判断数据不存在,就立即给客户端返回结果。

2023-03-26 14:00:48 1276

原创 java必学之Redis中的数据结构

以前,认为String是“万金油”,什么场合都适用,但是,在保存的键值对本身占用的内存空间不大时(例如提到的的图片ID和图片存储对象ID), String类型的元数据开销就占据主导了,这里面包括了RedisObject结构、SDS结构、dictEntry结构的内存开销。针对这种情况,我们可以使用压缩列表保存数据。当然,使用Hash这种集合类型保存单值键值对的数据时,我们需要将单值数据拆分成两部分,分别作为Hash集合的键和值,就像刚才案例中用二级编码来表示图片ID,希望你能把这个方法用到自己的场景中。

2023-03-26 13:53:59 937

原创 Redis哨兵机制详细解读

首先哨兵机制会根据在线状态,网络状态,过滤筛选掉一部分不符合要求的从库。然后按照优先级,复制进度,ID大小对从库进行打分,得分最高的选为新主库。主从集群数据同步,保证了数据的可靠性。主库发生故障时,自动的主从切换是服务不间断的关键支撑。监控主库运行状态,并判断主库是否客观下线;在主库客观下线后,选取新主库;选出新主库后,通知从库和客户端。为了降低误判率,在实际应用时,哨兵机制通常来用多实例的方式进行部署,多个哨兵实例通过“少数服从多数”的原则,来判断主库是否客观下线。

2023-03-24 13:55:03 1290

原创 一篇让你了解Redis同步--详解全部

故障修复:主节点宕机的时候,其他节点依然可以提供服务;负载均衡:主节点提供写服务,从节点提供读服务,分担压力;高可用的实现:是哨兵和cluster实施的基础主从怎么保持一致性?Redis提供了主从库的形式,来保持数据副本的一致性,主从库之间采用读写分离的方式采用的是读写分离的方式读操作:主、从库都可以执行;写操作:主库先执行完,在同步到字库中。读写分离的目的?为了避免写操作的时候主从服务器都在执行,每次修改都发送到主从实例上,就会造成实例副本数据不一致的现象。

2023-03-24 13:52:21 3089

原创 Java中MD5的使用

在Java中,可以通过正则表达式来判断一个字符串是否是MD5字符。

2023-03-22 17:26:39 3423

原创 Java开发必须了解的:Redis必知必会--基础总结

Redis是一种基于内存的数据存储系统,它可以用作数据库、缓存、消息队列等多种用途。以下是Redis的一些基本使用方法:安装Redis:可以从Redis的官方网站下载安装包并安装,或者使用包管理工具安装。启动Redis:在终端中输入redis-server命令即可启动Redis服务器。如果没有指定配置文件,则会使用默认配置。连接Redis:可以使用redis-cli命令来连接到Redis服务器。存储和获取数据:可以使用Redis提供的set、get等命令来存储和获取数据。

2023-03-22 15:38:20 513

原创 Redis-切片集群

切片集群,也叫分片集群,就是指启动多个 Redis 实例组成一个集群,然后按照一定的规则,把收到的数据划分成多份,每一份用一个实例来保存。本篇主要讲述了,切片集群在保存大量数据方面的优势,以及基于哈希槽的数据分布机制和客户端定位键值对的方法。在应对数据量大的数据,数据扩容时,虽然增加内存这种纵向扩展的方式简单直接,但是会造成内存过大,导致性能变慢。同事也受到硬件和成本的限制。

2023-03-22 09:34:17 678

原创 Disconnected from the target VM, address: ‘127.0.0.1:12460‘, transport: ‘socket‘

Disconnected from the target VM, address: '127.0.0.1:12460', transport: 'socket'

2023-03-21 11:26:06 7797

原创 能给你带来便利的PL/SQL PLSQL Developer 相关设置汇总

PLSQL手动格式化设置,PLsql怎么导出建表语句,Win11处理PL/Sql Developer中文乱码,Win11处理PL\Sql数据以科学计数法显示的问题,ORA-00909:参数个数无效

2023-03-21 10:52:34 1238

原创 服务器处理发生异常:Index: 0, Size: 0

查询数据后你用的是List接收出参,然而你的List里边没有值,你却取了里边的值就报这个错。

2023-03-20 10:44:58 9105

原创 Redis-AOF、RDB具详细讲解

数据不能丢失时,内存快照和 AOF 的混合使用是一个很好的选择;如果允许分钟级别的数据丢失,可以只使用 RDB;如果只用 AOF,优先使用 everysec 的配置选项,因为它在可靠性和性能之间取了一个平衡。Redis 设计了 bgsave 和写时复制,尽可能避免执行快照期间对读写指令的影响,频繁快照会给磁盘带来压力以及 fork 阻塞主线程。Redis 设计了两大杀手锏实现了宕机快速恢复,数据不丢失。

2023-03-17 10:19:00 2189 1

原创 idea配置SVN详细讲解

TortoiseSVN目录中bin目录下找不到svn.exe原因与解决idea配置svn

2023-03-15 15:24:15 11800

原创 Redis过期键删除策略

Redis过期键删除策略:惰性删除策略和定期删除策略

2023-03-15 10:58:38 717

原创 Redis中的分布式锁

Redis 中的分布式锁是基于 Redis 的 SET 命令实现的。可以通过 SET 命令来设置一个键值对,用于表示锁的状态。通常情况下,锁的键值对只有在没有被设置时才会被设置成功,这是通过 SET 命令中的 NX(Not eXists)选项来实现的。此外,为了避免锁被长时间占用,可以设置一个过期时间,通过 SET 命令中的 PX(milliseconds)选项来实现。

2023-03-14 13:34:35 295

原创 Cause: java.lang.IllegalArgumentException: invalid comparison: java.util.Date and java.lang.Str

这个异常意味着你尝试在Java程序中比较一个java.util.Date对象和一个java.lang.String对象,这是无效的比较。Java中的不同类型的对象只能在特定的比较操作中使用。通常,日期对象被用于表示日期和时间信息,而字符串对象用于表示文本信息。因此,Java不允许直接将它们进行比较。

2023-03-08 14:39:49 8166 1

原创 idea编辑XML文件出现:Tag name expected报错

Tag name expected解释其实就是:需要标记名称,也就是符号不能直接使用的意思XML (eXtensible Markup Language) 是一种标记语言,用于存储和传输数据。在 XML 中,有些字符被视为特殊字符,这些字符在 XML 中具有特殊的意义,而不是普通字符。

2023-03-08 14:27:25 2665 1

原创 服务器处理发生异常:java.text.ParseException: Unparseable date

服务器处理发生异常:java.text.ParseException: Unparseable date: "2023/03/03"

2023-03-03 15:02:19 10433

原创 解决Mybatis报错:org.apache.ibatis.reflection.ReflectionException: There is no getter for property named

因此,在使用DTO的属性名填充Mapper文件数据时,应该只使用属性名本身,而不需要添加DTO名称。例如,如果DTO中有一个属性名为id,我们可以在Mapper文件中使用#{id}来引用这个属性,而不需要使用#{dto.id}。

2023-02-23 12:39:03 36802 2

空空如也

空空如也

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

TA关注的人

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