- 博客(25)
- 资源 (1)
- 收藏
- 关注
原创 Spring 事务管理 Transaction rolled back because it has been marked as rollback-only
举个例子:假设我们有一个服务类的方法A,它调用了方法B。方法B抛出了一个异常,但是方法A捕获了这个异常并没有重新抛出。但是,方法B的事务传播行为可能是REQUIRED,所以方法B会在同一个事务中执行。当方法B抛出异常时,事务被标记为回滚。然后方法A捕获了异常,没有重新抛出,那么方法A的事务拦截器在退出时会尝试提交事务,但是发现事务已经被标记为回滚,于是就会回滚事务并输出上述信息。解决:检查代码中是否有在事务方法中捕获了异常但没有正确处理的情况。
2025-11-07 21:57:43
328
原创 什么是惊群效应
首先,我们来理解“惊群效应”是什么。惊群效应原指在自然界中,一个猎物被惊动,会引发整个兽群的一哄而上,但最终只有一个(或少数几个)能成功捕获猎物,其他大部分都白忙活一场,浪费了大量精力。在计算机科学中,尤其是在高并发编程和网络编程中,惊群效应场景:当多个进程/线程在等待同一个资源或事件(比如,一个新的网络连接)。触发:当这个资源可用或事件发生时,所有等待的进程/线程都被唤醒。结果:但最终只有一个进程/线程能成功抢到该资源,并进行处理。
2025-11-05 18:28:37
753
原创 什么是NS,可以同时配置多个不同的厂商的吗
NS(Name Server,名称服务器)是互联网的"地址簿管理员",负责告诉全世界您的域名对应的网站、邮箱等服务在哪里。域名 = 公司名称IP地址 = 公司实际办公地址NS服务器 = 公司的前台总机,负责告知访客各个部门的位置NS是域名的地址管理员,决定了解析规则在哪里生效可以配置不同厂商的NS,但会带来管理和一致性问题建议选择单一可靠厂商,使用其提供的多个NS服务器保证高可用性如果您有特定的业务场景需要混合使用NS,建议先评估是否有足够的运维能力来保证数据一致性。
2025-10-24 14:33:27
420
原创 docker 安装 oracleinanutshell/oracle-xe-11g
确保你已安装:🔍 参数说明:参数说明后台运行容器容器命名为 映射 Oracle 默认端口允许远程连接(必须设置!)镜像名称方法 2:使用 (推荐用于管理)创建文件 :启动服务:🔐 三、默认用户名和密码这是最关键的部分!或以 DBA 身份登录:方式 2:使用图形化工具连接(如 Navicat、DBeaver、SQL Developer)字段值连接类型标准主机(本地)或服务器 IP端口
2025-10-20 10:46:16
552
原创 如何排查监听代理可用?
按照这个排查流程,从基础网络连通性开始,逐步深入到代理功能测试,可以快速定位问题所在。建议按顺序执行每个步骤,找到第一个失败的环节就是问题的根源。
2025-10-19 18:38:35
240
原创 Spring AOP execution 切入点表达式的各种用法
ServiceSystem.out.println("保存用户: " + name);System.out.println("更新用户: " + id + ", " + name);// 这个方法将被排除System.out.println("内部清理任务");execution表达式说明匹配任意方法匹配任意 public 方法匹配及其子包下所有方法匹配 service 包下以save开头的方法匹配findById且第一个参数是Long匹配参数为单个String的方法!排除类所有方法。
2025-10-16 14:01:28
306
原创 spring aop定义了多个 @Pointcut 条件
我们将实现一个统一的日志与监控切面,用于:✅ 示例 Controller 验证切点匹配✅ 预期输出示例当你调用 接口时:调用 不会触发任何 AOP 输出(被排除)。
2025-10-16 13:26:35
320
原创 MyBatis 逆向工程(MBG)生成的 Example 与 tk.mybatis 框架使用的 Example的区别
本质代码生成 + 静态 SQL通用接口 + 动态 SQLServiceMapper自定义或 MBG 生成继承Mapper<T>XML自动生成完整 SQL无(运行时生成)推荐度⭐⭐☆⭐⭐⭐⭐最终建议:对于新项目,直接使用,它代表了 MyBatis 生态的未来发展方向。
2025-10-13 18:31:11
659
原创 为什么 WebSocket 本身没有粘包?
如果你的应用非常简单,不想引入 STOMP 的复杂性,可以使用原始 WebSocket。这时,你需要自己定义应用层消息的边界。定义消息分隔符:例如,在每个消息末尾添加一个换行符\n或特殊字符(如\0使用长度前缀:在消息开头几个字节声明消息体的长度。Spring 提供了接口让你处理原始 WebSocket 消息。你需要自己实现处理粘包的逻辑,但这非常繁琐。更简单的做法是配置一个自定义的,但这种方式通常与注解一起使用,且底层仍需一个协议。一个更接近底层的替代方案是使用或,并自己处理和消息分片。
2025-09-18 21:20:32
924
原创 tcp 粘包的处理方法 java实现
方法优点缺点适用场景固定长度简单高效浪费带宽固定格式的协议分隔符简单直观需要转义分隔符文本协议(如HTTP)长度前缀高效灵活实现稍复杂二进制协议(最常用)推荐做法简单文本通信:使用分隔符法(如\n高性能二进制通信:使用长度前缀法生产环境:使用 Netty 等框架内置的解码器。
2025-09-18 21:08:21
423
原创 Docker 部署 JAR 的几种选择
使用 Dockerfile 构建包含 JAR 的镜像。直接使用现有 Java 镜像运行 JAR。Docker 部署 JAR 的几种选择。JAR 文件必须存在于宿主机上。每次更新 JAR 需要重启容器。快速测试/开发环境适用。自包含的镜像,便于分发。
2025-08-10 12:11:36
287
原创 Spring Boot + RabbitMQ 消息可靠投递及手动确认消费完整示例
这个实现方案提供了从生产到消费的完整可靠消息解决方案,适用于对消息可靠性要求较高的业务场景。
2025-04-30 18:56:43
862
原创 在CentOS上彻底删除PostgreSQL
完成以上步骤后,PostgreSQL应该已从你的CentOS系统中完全删除。如果这两个命令都没有输出,说明PostgreSQL已完全删除。
2025-04-18 12:30:32
775
原创 Spring Boot 整合 Netty
*** 自定义编码器* 将String消息编码为字节流*/@Override// 将字符串转换为字节数组并写入ByteBuf。
2025-04-13 23:11:29
494
原创 Turbine、Actuator、Admin、Zipkin 应用场景
这几个工具(Turbine、Actuator、Admin、Zipkin)都是微服务架构中常用的监控和管理组件,但它们的用途和功能不同。:可视化管理和监控多个微服务的 Actuator 数据。:分布式链路追踪,分析请求在微服务间的调用链和耗时。如果需要完整的微服务可观测性,通常会同时使用。:提供应用内部的健康检查、监控和管理端点。
2025-04-08 10:05:24
331
原创 RxJava vs Vert.x vs WebFlux 响应式编程优缺点
特性RxJavaVert.xWebFlux类型库框架/工具包Web框架主要用途通用异步编程分布式网络应用响应式Web应用背压支持是是是网络支持需额外库内置内置线程模型需手动管理Event LoopEvent Loop集成难度中等较高低(对Spring用户)适用场景复杂异步逻辑高性能网络服务Spring Web应用。
2025-04-07 23:05:50
757
原创 Elasticsearch 节点与分片
这种机制确保了 Elasticsearch 能够高效地定位数据所在的分片,无论是对于索引操作还是查询操作。:客户端向任意节点发送请求(该节点成为协调节点)
2025-03-29 18:28:02
338
原创 PgSQL - 如何处理转义特殊字符
在PostgreSQL 9之前的版本中,可以直接使用反斜杠\进行转义;比如:\b表示退格, \n表示换行, \t表示水平制表符,\r标示回车,\f表示换页。除此之外还支持\digits和\xhexdigits,分别表示转义八进制和十六进制数据。但是在PostgreSQL 9之后的版本,反斜杠已经变成了普通字符;在SQL标准中字符串是用单引号括起来的,而在PostgreSQL中遵守了该标准,双引号则是用来表示变量的,如果在字符串中需要使用到单引号,就需要对其进行转义。方式一:使用E和反斜杠进行转义。
2024-08-06 11:02:01
2849
1
原创 打印HttpServletRequest参数
如果在拦截器读取了request.getInputStream(), 然后到了我们的 (处理器/控制器/Controller), 再次调用request.getInputStream()的时候获取的流是空的,HttpServletRequest 流数据不可重复读的原因导致的。使用ContentCachingRequestWrapper,通过ContentCachingRequestWrapper#getContentAsByteArray()来读取数据,来实现可重复读的目的。通过流一次打印所有参数。
2024-07-24 18:13:37
963
原创 springboot 日志 logback-spring.xml
在src/main/resources目录下创建一个名为logback-spring.xml的配置文件,Spring Boot会默认加载这个配置文件。Spring Boot官方推荐优先使用带有-spring的文件名作为日志配置。
2024-07-24 17:25:55
473
1
原创 GeoTools 坐标系转换
引入依赖<dependency> <groupId>org.locationtech.jts</groupId> <artifactId>jts-core</artifactId> <version>1.19.0</version></dependency><dependency> <groupId>org.geotools</groupId
2023-11-28 11:36:51
734
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅