自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据结构和常用算法

d、相交链表,假设不存在环,找到相交节点:使用双指针,只要到达了最后一个节点,就把这个指针交换到另一个链表上重新开始判断,总会相遇则找到相交节点;c、判断链表是否是环形链表:通过Floyd解法,通过双指针快、慢指针移动2/1节点,总会相遇,则为环形链表;a、合并两个有序列表:两个升序的列表,进行合并成一个升序链表,可以使用双指针,判断元素大小来移动指向;b、删除排序链表中的重复元素:使用指针,如果重复则调到下一个元素,指向下一个元素;栈(堆栈):后进先出,LIFO结构。队列:先进先出, FIFO结构。

2024-06-04 14:12:08 101

原创 Springboot源码分析

spring-boot-2.2.9.RELEASE版本

2024-05-31 09:38:36 154

原创 高性能多人同时导出 Excel 方案

业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,还涉及文件输入、输出流的io操作,所以对服务器的性能会影响的比较大;结合以上原因,对导出操作进行排队;刚开始拿到这个需求,第一时间想到就是需要维护一个FIFO先进先出的队列,给定队列一个固定size,在队列里面的人进行排队进行数据导出,导出完成后立马出队列,下一个排队的人进行操作;

2024-04-29 17:37:00 178 1

原创 前后端如何防止接口重复提交?

接口重复提交指的是在网络通信中,同一个请求被客户端多次发送到服务器端的情况。这种情况可能由于多种原因导致,例如用户在等待期间多次点击提交按钮、网络超时后客户端重新发送请求、客户端发送的请求在网络传输过程中出现重复等。接口重复提交可能会导致多种问题,当服务器收到重复请求时,可能会多次处理相同的数据,导致数据重复操作或者产生不一致的结果。重复提交请求会增加服务器的负载和资源消耗,特别是在高并发情况下,可能会导致服务器压力过大,影响系统的性能和稳定性。

2024-04-24 11:35:11 445

原创 任务调度 - 基于 Xxl-Job

●建议:推荐通过 nginx 为调度中心集群做负载均衡,分配域名。调度中心支持集群部署,集群情况下各节点务必连接同一个 mysq l实例;如果 mysql 做主从,调度中心集群节点务必强制走主库。(该地址执行器将会使用到,作为回调地址),默认登录账号:“admin/123456”。作用:统一管理任务调度平台上调度任务,负责触发调度执行,并且提供任务管理平台。执行器支持集群部署,提升调度系统可用性,同时提升任务处理能力。调度中心支持集群部署,提升调度系统容灾和可用性。Docker 镜像方式。

2024-04-17 16:12:19 452

原创 性能优化 - JVM 优化

JVM(Java 虚拟机)是一个能够解释和执行 Java 字节码的虚拟计算机,它是 Java 程序运行的基础平台。JVM 包含了多个子系统,包括类加载器子系统、内存管理子系统、执行引擎子系统等,可以将 Java 程序翻译成为机器指令运行在不同的操作系统平台上。注意:JVM 是运行在操作系统之上的,它与硬件没有直接的交互,如下图所示:JVM 优化则是指对 Java 程序在运行时的性能进行提升的一系列技术和策略。

2024-04-17 16:03:21 1771

原创 性能优化 - 数据库优化

通过 Performance Schema,可以深入了解数据库服务器的运行情况,包括查询语句的执行、锁等待、I/O 操作、线程活动等,从而帮助进行性能分析、优化和故障排除。需要注意的是,SHOW PROFILE 命令提供了一种简单快速的性能分析方法,但它的粒度相对较粗,无法提供像 Performance Schema 那样详细的性能数据。数据库连接是一种关键的、有限的、昂贵的资源。SHOW PROFILE 命令将返回查询的不同阶段的执行时间和资源消耗等信息,如发送查询、解析查询、优化查询、执行查询等。

2024-04-17 15:57:54 624 1

原创 商品秒杀设计与实现

秒杀开始之前,按钮置灰;用户抢购商品之后,按钮再次置灰。问题:性能不如 Redis。

2024-04-17 15:50:22 289

原创 Java 常用工具类

另外,针对同一需求存在多个实现时,优先选择序号在前的工具类。

2024-04-17 15:39:23 289

原创 分布式锁的三种实现

分布式锁是控制分布式系统间同步访问共享资源的一种方式。如果不同的系统或同一个系统的不同主机之间共享了同一个资源,那么访问这些资源的时候,需要使用互斥的手段来防止彼此之间的干扰,以保证一致性,这种情况就需要使用分布式锁。从性能的角度考虑,自然是缓存 > Zookeeper、etcd > 数据库,但是通常我们还要结合实际应用场景来决定采用哪种方案,因此以上 3 种方案我们都有必要了解下。

2024-04-17 15:25:35 551

原创 Redis 使用规范

理由:由于 Redis 过期 Key 的清理采用惰性删除策略,即主节点的 Key 过期后不是立马被清理,而是逐批扫描清理或者被访问时主动清理,且从节点 Key 的清理只能依赖主节点的同步删除,slave 自己是不能主动发起清理的。理由:除了 5.0 版本引入了更多新特性及 bug 修复外,5.0 对 Redis 的内存碎片管理效率带来了极大的提升,而碎片绝对是 Redis 的一大性能杀手,但早期的 2.x、3.x、4.x 版本都没有很好的解决这一问题!理由:内存是昂贵的!理由:内存是昂贵的!

2024-04-17 15:20:04 1733

原创 常见缓存问题及预防

但是,使用缓存也是有成本的,如开发成本和运维成本,另外有时错误的缓存设计反而会带来更糟糕的结果。

2024-04-17 15:19:29 238

原创 缓存读写策略

缓存读写策略是指在使用缓存的场景下,如何处理数据的读取和更新的逻辑。缓存读写策略的选择会影响到数据的一致性、可靠性和性能。

2024-04-17 15:19:08 618

原创 API 高并发设计

通过微服务架构将不同的业务功能划分为独立的服务,每个服务都有自己的数据库和资源,这样可以降低系统的耦合度,提高系统的可扩展性和可维护性。负载均衡是一种将请求分发到多个服务器的技术,以实现更高的可用性、更好的性能和更高的吞吐量。CDN 是一种分布式的服务器系统,它可以缓存静态文件,如图片、CSS、JavaScript 等,以及动态内容,如 API 响应。通过限制系统的请求流量,能够避免系统因为过多的请求导致系统崩溃或响应变慢,从而让系统在高负载的情况下保持稳定,避免出现雪崩效应。

2024-04-17 15:06:50 237

原创 API 幂等性设计

幂等性接口指的是一个接口在多次调用的情况下,对系统的影响是一致的,不会因为调用多次而产生不同的结果。也就是说,无论调用多少次,对系统的影响都是一样的,不会重复执行相同的操作,也不会对系统状态造成影响。

2024-04-17 15:05:32 726

原创 安全认证架构的演进

本文出自杨波老师的。

2024-04-17 14:53:10 1865 1

原创 微服务典型架构

本节内容出自《Spring Boot与Kubernetes云原生微服务实战》。本节内容出自《Spring Boot与Kubernetes云原生微服务实战》。本节内容出自《阿里巴巴Java开发手册(黄山版)》。

2024-04-17 14:48:33 409

空空如也

空空如也

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

TA关注的人

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