自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(140)
  • 资源 (6)
  • 问答 (2)
  • 收藏
  • 关注

原创 多账号统一登录(实现方案)

本文探讨了App账号体系的设计与优化方案。文章首先分析了自建登录体系的两种方式(手机号+验证码/密码),指出其用户体验和安全性问题。随后介绍了引入第三方账号登录的方案及面临的扩展性问题。针对这些问题,提出了优化后的账号体系设计方案:将用户信息与授权信息分离存储,通过"用户基础信息表+用户授权信息表"的一对多关系实现灵活扩展。最后介绍了一键登录技术,利用运营商接口实现本机号码认证,大幅提升登录体验。文章强调没有绝对最优方案,应根据实际业务需求选择适合的设计。

2025-08-06 21:22:27 707

原创 强烈建议你不要再使用Date类了!!!

文章摘要: 本文分析了Java中遗留的java.util.Date类的设计缺陷,包括命名误导、可变性、时区混淆等问题。由于代码扫描要求必须替换这些过时API,作者详细介绍了如何将项目中的Date类迁移到java.time包下的新类型(如Instant、LocalDateTime)。改造涉及数据库映射、工具类方法重写等复杂工作,需要全面检查DO实体、Converter和DTO。虽然改造逻辑不复杂,但牵涉面广,需谨慎处理每个环节以避免系统故障。作者提供了日期格式化、时间计算等常见场景的改造示例,并建议借助Cha

2025-07-30 22:07:40 537

原创 设计一个多租户 SaaS 系统,如何实现租户数据隔离与资源配额控制?

多租户(Multi-Tenant)是指一个软件系统同时服务多个客户(租户),每个租户拥有独立的业务空间,但共享相同的基础设施。SaaS 系统的多租户架构设计需要解决两个核心问题:•确保租户之间的数据互不干扰,满足安全和合规要求。•控制每个租户使用的系统资源(如存储、API 调用次数),避免资源滥用。

2025-07-23 22:43:06 642

原创 HTTP3势头这么猛,它的优势在哪里?

HTTP/3正式发布:基于QUIC协议的重大升级 IETF近期正式发布了HTTP/3的RFC标准,这是HTTP协议的第三个主要版本。HTTP/3基于QUIC协议,采用UDP传输层协议,在保持TLS安全性的同时显著提升了性能。QUIC协议具有多项创新特性:1)0RTT快速建立连接,首次连接仅需1RTT;2)连接迁移能力,不受网络切换影响;3)彻底解决队头阻塞问题;4)改进的拥塞控制算法;5)多级流量控制机制。相比HTTP/2,HTTP/3在弱网环境下表现更优,通过数据包级别的加密和传输,避免了TCP和TLS层

2025-07-21 21:57:36 868

原创 为什么 SpringBoot 宁可挨骂也要干掉 spring.factories?

并引入新的imports文件机制,SpringBoot 3.0显著改善了与GraalVM的集成体验,让开发者能够更容易地构建高性能、低延迟的云原生应用。这个文件的主要功能是允许开发者声明接口的实现类,从而实现SpringBoot的自动装配和扩展点注册。为了更好地支持GraalVM,SpringBoot需要一种在构建时就能确定的静态配置方式,而不是运行时的动态扫描。依赖于反射加载类,而GraalVM需要预先知道所有使用反射的类,这需要额外的配置和处理。文件,读取配置信息并加载对应的类。

2025-07-18 21:49:52 581

原创 Java+Selenium+快代理实现高效爬虫

本文介绍了使用Java+Selenium+快代理构建高效爬虫系统的实现方法。Selenium作为浏览器自动化工具,能够处理JavaScript渲染和复杂交互场景,而快代理则解决IP限制问题。文章详细讲解了基于工厂模式的WebDriver创建方案,支持Chrome、Edge和Firefox等多种浏览器,并提供了代理配置、超时设置等优化参数。系统采用构建器模式实现灵活配置,包含代理认证、无头模式等实用功能,同时注重性能优化和异常处理。该方案适用于需要登录验证或具有反爬机制的网站,但使用时需遵守相关法规和网站条款

2025-07-17 20:56:49 1312

原创 Netty 超详细解答十问十答

Netty是一个高性能异步网络框架,基于Reactor模式实现高并发处理。其核心组件包括Channel、ChannelHandler和ChannelPipeline,通过事件驱动机制处理网络IO。Netty采用ByteBuf替代Java的ByteBuffer,支持动态扩容和零拷贝。EventLoop和EventLoopGroup构成事件循环机制,编码器/解码器处理数据转换。通过ChannelFuture实现异步回调,ChannelInitializer完成管道初始化。针对TCP粘包/拆包问题,提供多种解码方

2025-07-16 21:28:39 487

原创 自从用了CheckStyle插件,代码写的越来越规范了....

CheckStyle插件使用指南:安装配置后能自动检测代码规范问题。文章介绍了插件安装流程(支持阿里等开发规范),并分类说明常见报错处理:1)注解缺失需补全;2)字符占位需调整代码格式;3)命名需规范;4)格式问题谨慎修改;5)逻辑错误修正;6)导包顺序调整。建议开发时注意代码规范,通过IDE快捷键或右键菜单快速修复问题。文中强调规范检查的重要性,既能提升代码质量,也利于团队协作。

2025-07-11 22:57:27 213

原创 “RPC好,还是RESTful好?”,这个问题不简单

RPC与HTTP服务对比分析 摘要: RPC基于TCP/IP协议,比基于HTTP的服务效率更高。OSI网络模型中,RPC工作在传输层,而HTTP在应用层。RPC架构包含客户端、服务端及存根组件,适合大型企业复杂系统间的交互,具有效率高、解耦性好的特点。主流的RPC框架包括gRPC、Thrift和Dubbo。HTTP服务则更适合接口简单、交互少的场景,开发更便捷。在实际项目选择时,应根据系统规模、性能需求等因素综合考虑,而非盲目跟风技术趋势。大型企业推荐使用RPC,中小系统可采用HTTP服务。

2025-07-10 21:58:51 735

原创 90 后程序员辞职搞灰产,不到一年获利超 700 万,结局很刑!

23 年 11 月 16 日负责销售的陈某,因犯提供侵入非法控制计算机信息系统程序工具罪,被判有期徒刑 3 年缓刑 3 年 2 个月,开发软件的周某被判有期徒刑 3 年缓刑 5 年。该软件用于视频搬运,通过视频镜像,去水印,草稿替换,摄像头替换等功能绕过原创校验,修改后的视频支持在快手,抖音,小红书,西瓜视频等主流视频平台发布。浙江台州警方调查发现,在这背后是一条违法犯罪的产业链条,犯罪团伙的上游开发制作非法软件,通过更改短视频平台的代码,逃避平台监管。用户通过搬运他人高质量视频实现账号快速涨粉变现目的。

2025-07-08 21:25:12 258

原创 Spring Boot 插件化开发模式,忒香了!

本文探讨了Java插件化机制的实现方案与应用实践。文章首先分析了插件化的三大优势:模块解耦、提升扩展性和方便第三方接入。随后介绍了多种实现思路,包括Java SPI机制(ServiceLoader)、自定义配置约定、依赖JAR动态加载以及SpringBoot的Factories机制。通过短信发送的实战案例,详细演示了如何基于SPI实现插件化架构,包括接口定义、实现类开发、配置文件设置和服务加载流程。文章还比较了不同实现方式的优缺点,并提供了SpringFactoriesLoader的扩展点应用示例。最后指出

2025-07-02 22:57:00 1004

原创 Redis+Caffeine 太强了!

文章摘要:本地缓存作为优化系统性能的关键技术,在高性能服务架构中常与远程缓存形成两级缓存体系。主流方案包括ConcurrentHashMap(简单但功能有限)、Guava Cache(支持容量限制和过期策略)、Caffeine(高性能W-TinyLFU算法)和Encache(支持持久化与集群)。需重点解决缓存一致性(通过MQ或Canal+MQ方案)和命中率问题。技术选型推荐Caffeine,其性能最优,适合构建多级缓存体系。实际应用中建议结合Redis等分布式缓存,兼顾性能与可靠性。(149字)

2025-06-30 22:02:35 600

原创 ThreadLocal 不香了?ScopedValue才是王道?

ThreadLocal与ScopedValue是Java并发编程中的两种重要工具。ThreadLocal实现线程隔离,适用于数据库连接、Session管理等场景,但存在内存泄漏风险。ScopedValue是JDK20孵化的新特性,支持结构化并发编程,通过动态作用域实现线程间安全共享不可变数据,解决了ThreadLocal的不足。文章通过电商案例展示了ThreadLocal的实际应用,并详细解析了ScopedValue的基本用法、实现原理及源码结构,强调开发人员应根据具体场景选择合适的并发工具。

2025-06-29 22:00:26 772

原创 SpringBoot大文件上传卡死?分块切割术搞定GB级传输,速度飙升!

《SpringBoot实现高效大文件分块上传方案》摘要:本文针对大文件上传的三大痛点(网络不稳定、服务器资源耗尽、失败代价高),提出基于SpringBoot的分块上传解决方案。方案通过将大文件拆分为5MB分块,实现断点续传和并发上传,显著提升传输效率和可靠性。文章详细解析了分块原理、SpringBoot后端实现(包括初始化上传、分块处理及文件合并)和Vue前端代码,并提供了企业级优化方案如签名验证、MinIO云存储集成和性能对比数据(10GB文件上传时间从3小时缩短至20分钟)。方案支持8KB缓冲区的低内存

2025-06-28 22:01:52 409

原创 Spring Boot中的 6 种API请求参数读取方式

本文总结了SpringBoot中常用的6种请求参数读取方式:1. @RequestParam读取URL查询参数(如?name=value);2. @PathVariable获取RESTful路径参数;3. @MatrixVariable处理分号分隔的URL参数;4. @RequestBody解析POST/PUT请求体数据;5. @RequestHeader获取HTTP请求头信息;6. @CookieValue读取Cookie值。这些注解涵盖了从URL到请求头等不同位置的参数获取需求,为开发REST API提

2025-06-27 22:13:56 223

原创 XXL-JOB 内部机制大揭秘,任务飞起来!

废话少说,直接进入正题。相信大家对。

2025-06-25 21:33:01 558

原创 Java实现简易即时通讯系统

本文介绍了一个基于Java的简易即时通讯系统(类似QQ),采用客户端-服务器架构实现核心功能。系统主要包括服务器端和客户端两部分,使用Socket编程和多线程技术处理通信。服务器负责用户认证、消息路由和好友管理;客户端提供GUI界面,支持用户注册/登录、添加好友和实时聊天。系统实现了文本协议通信,采用文件存储用户数据,包含好友在线状态显示和消息通知功能。虽然简化了安全性和性能处理,但完整展示了即时通讯系统的基本原理和实现方法,可作为学习Java网络编程和GUI开发的参考案例。

2025-06-24 22:04:23 1098 1

原创 分享一次 ShardingJDBC 亿级数据分表真实经验

本文详细记录了亿级数据分表的完整实践过程。作者接到还款申请单分表任务后,从设计方案、历史数据同步、后台查询改造到具体实现进行了全面规划。方案采用50张分表策略,基于memberId后两位哈希路由,同时考虑了三写同步、定时校验等容错机制。文章重点描述了SpringBoot3整合ShardingSphere5.4.1的技术实现过程,包括版本兼容问题解决、分片算法配置等关键细节,并分享了数据迁移的具体代码实现。通过这次实践,作者认识到分表的技术实现并不复杂,真正的难点在于设计周全的方案和协调多部门配合。

2025-06-23 22:33:52 545

原创 负载均衡 LVS vs Nginx 对比!还傻傻分不清?

Nginx与LVS负载均衡技术对比分析 Nginx作为七层负载均衡器,支持正向/反向代理、动静分离等功能,具有安装简单、可操作性强等优势,但效率低于LVS。LVS作为四层负载均衡器,仅在IP层转发数据,具有抗负载能力强、工作稳定、无流量等特点。两者核心区别在于工作层级不同:LVS工作在传输层,仅转发IP报文;Nginx工作在应用层,需解析HTTP内容。Nginx适合需要精细控制的场景,LVS更适合高并发需求。实际应用中,常将两者结合使用,充分发挥各自优势。

2025-06-20 21:21:09 349

原创 面试官:kafka 分布式的情况下,如何保证消息的顺序消费?

摘要:分布式系统将计算任务分散到多个节点并行处理,提高计算能力和可靠性。Kafka是一种高性能分布式流数据平台,通过分区机制实现高吞吐量和消息顺序性,其核心组件包括生产者、消费者、代理和主题。为保证消息顺序消费,可采用单个分区消费、指定分区消费或按键分区策略,配置合理的消费者参数并确保线程安全处理逻辑。Kafka适用于大规模流数据处理、日志收集等场景,具备高扩展性和容错性。

2025-06-19 22:39:34 699

原创 面试官:2000w 数据的大表如何优化?至少提供三种方案!

本文探讨了大数据量场景下的数据库性能优化方案。首先分析了数据量增长导致的查询效率下降问题,指出主要原因是B+树层级升高导致I/O次数增加。接着提出了三种解决方案:1) 表分区,通过分散数据提升查询效率;2) 分库分表,包括水平分表和垂直分表,以及取模+范围结合的混合方案;3) 冷热数据归档,将低频访问数据单独存储。文章详细对比了各方案的优缺点和适用场景,如分区适用于单表数据量大但访问均匀的场景,分库分表适合超大规模数据,冷热归档则适合有明显访问频率差异的业务。最后建议根据实际业务特点选择合适的优化方案。

2025-06-18 21:41:29 646

原创 使用 Java + WebSocket 实现简单实时双人协同 pk 答题

本文介绍了基于WebSocket的实时对战系统后端实现方案。系统采用Spring框架构建,核心功能包括:1) 通过WebSocket建立持久连接实现实时通信;2) 用户状态管理(匹配中/游戏中/结算等状态);3) 基于锁机制的并发控制防止匹配异常;4) Redis缓存用户状态及对战信息;5) 分段位匹配对手机制。关键技术点包含WebSocket连接管理、状态同步、异常处理和房间隔离机制,确保对战过程的实时性和稳定性。系统实现了完整的对战生命周期管理,包括匹配对手、题目分发、答案同步和结果结算等流程。

2025-06-17 20:04:59 968

原创 Stream很好,Map很酷,但答应我别用toMap()!

这 TM 不是一个循环就万事大吉了吗,不信邪的你回归初心,回归了 for 循环的怀抱,又写了一版。你不信邪,断点一打,堆栈一看,硕大的。静下心来,本着什么大风大浪我没见过的心态,断点堆栈一气呵成,而下一秒你又望着代码陷入了沉思,我是谁?再次执行程序,你似乎已经看到知乎的摸鱼贴在向你招手了,结果啪的一下 NPE 又拍在你那笑容渐渐消失的脸上。看着运行完美无缺的代码,你一时陷入了沉思,数分钟过去了,你删除了 for 循环,换上。鼓起勇气,你还不信今天就过不去这个坎了,大手一挥,又一段优雅的代码孕育而生。

2025-06-16 18:38:10 250

原创 项目终于用上了 Spring 状态机,太优雅了!

状态模式是一种行为设计模式,通过将对象的行为与其状态解耦,实现状态驱动的行为变化。该模式适用于订单状态流转、用户登录状态等场景,通过封装状态转换逻辑,消除了复杂的条件分支。主要包含环境类、抽象状态和具体状态三个角色,Spring框架的StateMachine提供了状态机实现方案。状态模式与责任链、策略模式相似但有本质区别:状态模式强调内部状态自动转换,而策略模式关注外部算法替换。其优点是结构清晰、状态转换显式化,但也存在类膨胀、实现复杂等缺点。该模式在JSF框架的生命周期管理中也有应用,体现了状态转换的系统

2025-06-14 21:14:47 1017

原创 面试官问:你写代码会复用公共 SQL 么?

本文分享了Java后端开发中复用公共SQL的实践经验。作者介绍了三种主要实现方式:1) 使用MyBatis的<sql>标签定义可复用SQL片段;2) 结合动态SQL和Java封装实现复杂逻辑复用;3) 通过常量类管理SQL片段。这些方法能减少重复代码、提高可维护性和保证一致性。作者强调应根据项目规模选择合适方式,小型项目可用简单常量类,大型项目更适合MyBatis的高级特性。这不仅是一次技术分享,也展现了面试中如何清晰表达技术方案的重要性。

2025-06-13 20:58:15 360

原创 拒绝重复代码,封装一个多级菜单、多级评论、多级部门的统一工具类!

摘要:本文介绍了一种基于SpringBoot的通用树形结构工具类TreeNodeUtil,可统一处理多级菜单、评论、部门等层级数据。该方案通过ITreeNode接口规范数据结构,采用递归分组策略构建树形关系,同时支持tree_path路径优化查询效率。工具类提供数据过滤、重构和路径生成功能,并解决了传统方案中代码重复开发问题。通过测试案例验证了该工具类在基本树形构建、数据过滤和路径生成等方面的有效性,为多级数据管理提供了灵活高效的解决方案。

2025-06-12 22:00:12 283

原创 让SpringBoot不需要Controller、Service、DAO、Mapper,卧槽!这款工具绝了!

Dataway介绍第一步:引入相关依赖第二步:配置 Dataway,并初始化数据表第三步:配置数据源第四步:把数据源设置到 Hasor 容器中第五步:在SprintBoot 中启用 Hasor第六步:启动应用第七步:访问接口管理页面进行接口配置第八步:新建一个接口最后总结Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具。使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布。一站式都通过 Dataway 提供的 UI 界面完成。UI 会以 Jar

2025-05-07 22:14:30 427

原创 SpringBoot + ResponseBodyEmitter 实时异步流式推送,优雅!

这就好比一场接力赛,每完成一段赛程(生成一部分数据),就马上将接力棒(数据)传递给客户端,大大提高了数据传输的实时性。这种方式使得数据可以边生成边传输,减少了客户端的等待时间,提高了用户体验。:通用性更强,适用于任何支持 HTTP 的客户端,并且易于与 Spring 框架集成,是一种更为便捷的流式传输解决方案。有着广泛的应用,比如进度条的实时更新、实时聊天功能、股票价格的实时更新、系统日志的流式输出以及 AI 的流式响应等。:服务器在有数据时会立即响应客户端请求,若暂无数据,则保持连接开放,等待数据到来。

2025-03-12 21:32:03 954

原创 别踩坑!存储电话号码,到底用 int 还是用 string?

通过以上分析可以看出,虽然在表面上 int 可能看起来是一种节省内存的选择,但从 JVM 的层面分析,使用 String 存储电话号码更加符合语义要求,能有效处理多种场景下的电话号码格式。在性能优化方面,合理利用字符串常量池,也能避免过多的内存分配。虽然 String 对象的内存开销相对较大,但在处理电话号码这种以字符为基础的标识符时,String 提供了更灵活的表现形式。经过紧急处理后,开发团队将电话号码改为 String 类型,不仅解决了数据丢失问题,还提高了数据的兼容性和系统的可维护性。

2025-02-22 22:08:37 984

原创 项目自从用了接口请求合并,效率直接加倍!

请求合并到底有什么意义呢?我们来看下图。img假设我们3个用户(用户id分别是1、2、3),现在他们都要查询自己的基本信息,请求到服务器,服务器端请求数据库,发出3次请求。我们都知道数据库连接资源是相当宝贵的,那么我们怎么尽可能节省连接资源呢?这里把数据库换成被调用的远程服务,也是同样的道理。我们改变下思路,如下图所示。img我们在服务器端把请求合并,只发出一条SQL查询数据库,数据库返回后,服务器端处理返回数据,根据一个唯一请求ID,把数据分组,返回给对应用户。

2025-02-16 21:55:45 282

原创 SpringBoot + Facade Pattern:通过统一接口简化多模块业务

外观设计模式(

2025-02-14 21:31:35 729

原创 中国程序员前景一片灰暗?其实,全世界都差不多...

全世界的程序员在github上卷生卷死,被别人一忽悠什么共享、创新,弄个简单的开源协议,利润被互联网巨头和云服务商们拿走,然后一群普通程序员现实里被裁员快饿死了。很多进入这行就是因为钱多,写代码也确实赚钱,但是什么东西都是双向的,有收获就有付出:经常加班熬夜,学不完的框架数据结构底层知识,倒了一家又一家的公司...做程序员肯定是有前途的,自己要做好持之以恒的准备,晚上周末有时间要多学习,另外就是一定要去大厂,名气越大越好。对你的职业前途有大大的好处。但是我知道,每个行业都有混的好的,也有混不好的。

2025-02-13 20:38:45 298

原创 DeepSeek 装进 VSCode,编程非常丝滑!

作为一款强大的 AI 编程助手,Roo Code 通过其全面的功能和灵活的定制能力,为开发者提供了全新的开发体验,可以轻松接入各大 AI 巨头的 API,无论是 OpenAI、DeepSeek、Anthropic,还是 Google Gemini,都能完美兼容。安装扩展后在左侧活动栏会有个小火箭的图标,打开就可以看到支持的大模型,我们可以选择 DeepSeek,填写API Key。更贴心的是,还可以通过 Ollama 使用本地模型,让开发者可以根据自己的实际需求和预算自由选择最适合的 AI 模型。

2025-02-12 20:42:52 218

原创 Spring Boot 集成支付宝支付功能

前置需求支付宝沙箱配置内网穿透具体开发sdk配置具体支付回调接口。

2025-02-11 21:49:39 575

原创 SpringBoot3.0 新特性尝鲜,秒启动的快感!SpringAOT与RuntimeHints来了解一下?

一、前置知识二、打包SpringBoot3.0三、认识AOT四、AOT的原理。

2025-02-10 21:06:14 1112

原创 Deepseek52条喂饭指令

指令:以[身份]的口吻,写一篇[产品]的种草笔记,突出5个使用场景和3个痛点解决方案。- 指令:以[风格]写一篇关于[主题]的深度文章,包含5个分论点,每个论点配2个案例。- 指令:以[身份]的口吻,对比[产品A]和[产品B],突出各自的优缺点和适用人群。- 指令:以[身份]的口吻,推荐[平价产品]作为[高价产品]的替代,突出性价比。- 指令:以[身份]的口吻,推荐[产品],重点解决[用户痛点],并提供使用建议。- 指令:以[身份]的口吻,推荐[节日]相关的[产品],突出节日氛围和实用性。

2025-02-09 19:52:07 948

原创 农银一面:Filter、Interceptor、Spring AOP 的执行顺序

Filter是 JavaServlet规范的一部分,定义在包中,Filter可以对Servlet容器的所有 HTTP 请求()和响应()进行预处理或后处理操作。例如,在请求到达目标资源之前执行身份验证或设置字符编码,或者在响应返回给客户端前修改其响应内容格式。是 Spring MVC 框架的一部分,是位于包中的接口,用于在请求处理之前或之后执行特定逻辑。与Filter不同的是,不依赖于Servlet容器,它是 Spring 框架独有的。

2025-02-08 21:04:36 965

原创 IntelliJ IDEA 神级攻略:IDEA 实战隐藏技巧指南

IDEA是一款功能强悍、非常好用的Java开发工具,近几年编程开发人员对IDEA情有独钟。本文不仅介绍IDEA的基础操作,更揭示众多提升效率的高级功能和不为人知的快捷方式。【错误:Maven资源编译器:模块“xxx”所需的Maven项目配置不可用。如果想让这个临时的导航栏消失的话,直接使用esc快捷键即可。可以把红色的导航栏去掉,让IDEA显得更加干净整洁一些。这种热加载比较全面,资源文件、代码的修改都可以监听到,但 有些情况下也会有问题。去掉这个导航栏后,如果你偶尔还是要用的,直接用。

2025-02-05 20:42:06 439

原创 Redis持久化锦囊在手,再也不会担心数据丢失了

RDB全称(Redis数据备份文件),也可以称为Redis数据快照。RDB 文件是一个经过压缩的二进制文件(默认:dump.rdb);RDB 文件保存在硬盘里;通过保存数据库中的键值对来记录数据库状态。AOF全称为(追加日志文件)。日志是写后日志,Redis 是先执行命令,把数据写入内存,然后才记录日志。写后日志通过保存 Redis 服务器所执行的写命令来记录数据库状态;写入 AOF 文件的所有命令都是以 Redis 的命令请求协议格式保存的。

2025-01-12 20:59:51 807

原创 Spring Event 别瞎用!从我司的悲剧中,我总结了6条最佳实践

这个场景下,使用 Spring Event 发布事件,Spring 无法正常广播事件,一定会出现异常,导致处理失败!在这个场景中,我们需要处理履约完成、退款完成、订单过期等事件,并且每个事件都有一些独立的业务逻辑,每一个业务场景都属于最终一致性的场景。Spring 不知道哪些订阅者成功,哪些订阅者失败,下一次重试时,会全部执行所有的订阅者。使用 SpringEvent 之前,一定要先治理服务,确保服务关闭时,先切断入口流量(Http、MQ、RPC),然后再关闭服务,关闭 Spring 上下文!

2025-01-11 21:46:13 689

java经典必考面试题(顺序一).docx

1、请你自我介绍一下你自己,   回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业很重视一个人的礼貌,求职者要尊重考官,在回答每个问题之后都说一句“谢谢”。企业喜欢有礼貌的求职者。   2、你觉得你个性上最大的优点是什么?   回答提示:沉着冷静、条理清楚、立场坚定、顽强向上。   乐于助人和关心他人、适应能力和幽默感、乐观和友爱。我在北大青鸟经过一到两年的培训及项目实战,加上实习工作,使我适合这份工作。我相信我能成功。   3、说说你最大的缺点?   回答提示:这个问题企业问的概率很大,通常不希望听到直接回答的缺点是什么等,如果求职者说自己小心眼、爱忌妒人、非常懒、脾气大、工作效率低,企业肯定不会录用你。绝对不要自作聪明地回答“我最大的缺点是过于追求完美”,有的人以为这样回答会显得自己比较出色,但事实上,他已经岌芨可危了。企业喜欢求职者从自己的优点说起,中间加一些小缺点,最后再把问题转回到优点上,突出优点的部分。企业喜欢聪明的求职者。

2020-07-29

Java就业指导(改简历,面试要准备的资料)

适合应届生刚毕业,要换工作的,大家对于怎么改简历、去哪里找工作、面试要准备什么都非常焦虑。我也因此研发了一套课程,从怎么写简历开始,落实到找工作的的每个细节,基本是我这么多年工作的结晶了,反馈不错。希望对自己的知识和劳动的付出有个价值肯定。

2021-03-09

学生信息管理系统.zip

springboot+vue+elementui+jwt学生信息管理系统,实现简易学生信息的增删改查功能。代码逻辑清晰,易于理解

2020-12-18

StuInfoManagement.zip

学生信息管理系统是针对学校人事处的大量业务处理工作而开发的管理软件,主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、科学化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,另外还考虑到学生选课,针对这些要求设计了学生信息管理系统。

2020-07-31

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

TA关注的人

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