微服务: Seata AT 分布式事务配置出现异常解决(相当全面)(下篇)

news2024/10/6 22:20:05

目录

1. 文章传送门

-> 上篇传送门: 微服务: Seata AT 分布式事务以及配置方式(上篇)

-> 中篇传送门: 微服务: Seata AT springCloud整合分布式事务以配置方式(中篇)

 2. 异常总结分类: 

3. 解决上述问题:  

-> 解决上述问题一: 

1. no available service 'null' found...

---> 1.2 第一个解决方案:

---> 1.3 第二个解决方案: 

 ---> 1.4 第三个解决方案: (最最主要的)

-> 解决上述问题二: 

2. Could not create connection to database server.

 ---> 2.1 解决方案(使用高版本mysql连接)

-> 解决上述问题三: 

3. no available service 'default' found, please make sure registry config correct

---> 3.1 配置问题 查看register.conf

---> 3.2 版本问题 安装seata服务是什么版本 xml就必须是什么版本

-> 解决上述问题四: 

4. Buffer pool was not set on WebSocketDeploymentInfo, the default pool...

---> 4.1 解决方法一:  

 ---> 4.2 解决方法二: (不推荐)

-> 解决上述问题五: 

5. seata at undo_log数据不删除解决方案 

---> 5.1 如果你引入的是seata-all

---> 5.2 如果你引入的是seata-spring-boot-starter(我用的这种)

 4. 三篇文章总结摘要

4.1 具体请看 最上面 传送门 文章传送查看 


1. 文章传送门

-> 上篇传送门: 微服务: Seata AT 分布式事务以及配置方式(上篇)

-> 中篇传送门: 微服务: Seata AT springCloud整合分布式事务以配置方式(中篇)


 2. 异常总结分类: 

1. no available service 'null' found, please make sure registry config correct

2. com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.

3no available service 'default' found, please make sure registry config correct

4. Buffer pool was not set on WebSocketDeploymentInfo, the default pool will be.... 

5. seata at undo_log数据不删除解决方案


3. 解决上述问题:  

-> 解决上述问题一: 

1. no available service 'null' found...

 ---> 1.1 查看源码解决问题: 

---> 1.2 第一个解决方案:

service.vgroupMapping 是这个配置 1.0版本后 就变成这个了 源码中获取不到值

---> 1.3 第二个解决方案: 

查看这三个文件 如图 与springCloud代码配置yml完全一致 

 ---> 1.4 第三个解决方案: (最最主要的)

查看nacos配置中心 service.vgroupMapping的分组 必须是SEATA_GROUP 

 

 如果不是这个分组 多少个小时也没用 具体请看 传送门(上篇) 里如何创建

-> 解决上述问题二: 

2. Could not create connection to database server.

 这种说明使用的mysql-connector-java的版本是老版本

查看一下lib文件 打开jdbc 发现 seata中有新版的连接jar

 ---> 2.1 解决方案(使用高版本mysql连接)

 把 com.mysql.jdbc.Driver 改为 =>  com.mysql.cj.jdbc.Driver

-> 解决上述问题三: 

3no available service 'default' found, please make sure registry config correct

服务启动的时候 , NettyClientChannelManager 报的这个异常

上述问题一中 是null 说明没有找到这个配置

而这个 default  说明配置有了 但是拉取不下来配置

---> 3.1 配置问题 查看register.conf

主要查看命名空间, 查看填写的是否正确 最好复制一下, 然后重启seata服务 重试

 

---> 3.2 版本问题 安装seata服务是什么版本 xml就必须是什么版本

比如使用1.3.0版本 xml注入其他版本 很有可能出现这个问题(如图)

 

-> 解决上述问题四: 

4. Buffer pool was not set on WebSocketDeploymentInfo, the default pool...

 io.undertow.websockets.jsr UT026010: Buffer pool was not * set on WebSocketDeploymentInfo, the default pool will be used的警告

---> 4.1 解决方法一:  

import io.undertow.server.DefaultByteBufferPool;
import io.undertow.websockets.jsr.WebSocketDeploymentInfo;
import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.stereotype.Component;
 
/**
 *
 *
 * 解决方案一: 配置文件
 * 解决方案二: application.properties的配置
 *
 * @author: pzy
 * @date: 2023-05-19
 * @description: 解决启动io.undertow.websockets.jsr UT026010: Buffer pool was not
 * set on WebSocketDeploymentInfo, the default pool will be used的警告
 */
@Component
public class CustomizationBean implements WebServerFactoryCustomizer<UndertowServletWebServerFactory> {
 
    @Override
    public void customize(UndertowServletWebServerFactory factory) {
        factory.addDeploymentInfoCustomizers(deploymentInfo -> {
            WebSocketDeploymentInfo webSocketDeploymentInfo = new WebSocketDeploymentInfo();
            webSocketDeploymentInfo.setBuffers(
                    new DefaultByteBufferPool(false, 1024)
//                    new DefaultByteBufferPool(false, 1024,20,4)
            );
            deploymentInfo.addServletContextAttribute("io.undertow.websockets.jsr.WebSocketDeploymentInfo", webSocketDeploymentInfo);
        });
    }
}
 

 ---> 4.2 解决方法二: (不推荐)

properties方式  yml自己改一下即可 

##pzy 解决启动io.undertow.websockets.jsr
# UT026010: Buffer pool was not set on WebSocketDeploymentInfo,
# the default pool will be used的警告------------------------------------------------------------------------------------->
server.undertow.threads.io= 4
# 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
# 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
server.undertow.threads.worker= 20
# 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
# 每块buffer的空间大小,越小的空间被利用越充分
server.undertow.buffer-size= 1024
# 是否分配的直接内存
server.undertow.direct-buffers= true
##----------------------------------------------------------------------------------------->

-> 解决上述问题五: 

5. seata at undo_log数据不删除解决方案 

使用Seata mybatis-plus 动态数据源组件后undolog无法删除 

 dynamic-datasource-spring-boot-starter 组件内部开启seata后会自动使用DataSourceProxy来包装DataSource,所以需要以下方式来保持兼容

---> 5.1 如果你引入的是seata-all

请不要使用@EnableAutoDataSourceProxy注解.

---> 5.2 如果你引入的是seata-spring-boot-starter(我用的这种)

请关闭自动代理 seata: enable-auto-data-source-proxy: false


 4. 三篇文章总结摘要

seata linux安装  ---> ok 

windows安装 springCloud整合nacos seata at  ---> ok 

使用@GlobalTransactional 测试项目回滚  -> ok

查看undo_log数据是否删除成功 ---> ok

4.1 具体请看 最上面 传送门 文章传送查看 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/554449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

面了一个测试工程师要求月薪23K,总感觉他藏了很多面试题...

最近有朋友去华为面试&#xff0c;面试前后进行了20天左右&#xff0c;包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试。 据他所说&#xff0c;80%的人都会栽在第一轮面试&#xff0c;要不是他面试前做足准备&#xff0c;估计都坚持不完后面几轮面试。 其实&…

七人拼团系统开发模式,如何做到短短几个月就销售额上亿?

随着经济的迅速发展&#xff0c;市场上的商业模式也是层出不穷&#xff0c;而且各具特色&#xff0c;看得人眼花缭乱。最近又新出了一个七人拼团商业模式&#xff0c;不仅能够助力企业快速裂变获客&#xff0c;还能迅速提升产品销量&#xff0c;达到短短几个月就销售额上亿的“…

MariaDB 主从同步配置

1 服务器结构 角色ip地址安装教程主节点192.168.31.102CentOS-7 安装 MariaDB-10.8从节点192.168.31.103 2 原理&#xff1a; 原理&#xff1a; &#xff08;1&#xff09;master服务器将数据的改变记录到二进制binlog日志&#xff0c;当master上的数据发生改变时&#xff0c…

【连续介质力学】张量场

张量场 张量场表示张量 T ( x ⃗ , t ) T(\vec x, t) T(x ,t)在空间 x ⃗ \vec x x 和时间 t t t中如何变化&#xff0c;将张量场视为可微函数 如果一个张量场不依赖于时间&#xff0c;则此张量场称为定常场&#xff0c;例如 T T ( x ⃗ ) T T(\vec x) TT(x )&#xff1b;相…

如此优秀的低代码平台,佬们一起来体验一把!

前言&#xff1a;低代码平台是一种新兴的应用开发技术&#xff0c;将可视化建模、自动生成代码和开发者编写的代码结合在一起&#xff0c;使应用程序的开发变得更加快速、简单且高效。低代码平台的基本思想是通过消除繁琐的手动编码工作&#xff0c;来让开发者更好地专注于业务…

基于 Spring Boot + MyBatis Plus + Vue Element 实现的后台管理系统 + 微信小程序

管理后台的 Vue3 版本采用 vue-element-plus-admin &#xff0c;Vue2 版本采用 vue-element-admin 管理后台的移动端采用 uni-app 方案&#xff0c;一份代码多终端适配&#xff0c;同时支持 APP、小程序、H5&#xff01; 后端采用 Spring Boot、MySQL MyBatis Plus、Redis …

UnityVR--组件3--Line Renderer--线性渲染

目录 前言 Line Renderer组件介绍 Trail Renderer组件介绍 使用Line Renderer绘制线段 使用系统工具或自定义工具绘制线段 Trail Renderer简单制作子弹拖尾效果 前言 Line Renderer线性渲染组件用于在3D中渲染线段&#xff0c;如之前在小游戏中做过的激光门伤害&#xff0…

Axure设计—动态条形图(中继器)

本文将教大家如何用AXURE中的中继器动态条形图。 一、效果介绍 如图&#xff1a; 预览地址&#xff1a;https://i7x7i9.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87807039?spm1001.2014.3001.5503 二、功能介绍 简单填写中继…

PyQt5桌面应用开发(17):类结构+QWebEngineView

本文目录 PyQt5桌面应用系列PyQt5学习PyQt5类结构和帮助速查实现与解释最终界面和完整源代码界面完整的代码 总结 PyQt5桌面应用系列 PyQt5桌面应用开发&#xff08;1&#xff09;&#xff1a;需求分析 PyQt5桌面应用开发&#xff08;2&#xff09;&#xff1a;事件循环 PyQt5桌…

Spring 如何处理请求参数和表单数据

当我们开发 Web 应用程序时&#xff0c;处理请求参数和表单数据是必不可少的。Spring MVC 是一个流行的 Java Web 框架&#xff0c;提供了多种方式来处理请求参数和表单数据。本文将介绍 Spring MVC 中处理请求参数和表单数据的常用方式&#xff0c;并提供相应的代码示例。 处…

Redis数据结构-SDS

一、SDS&#xff08;Simple Dynamic String&#xff0c;简单动态字符串&#xff09; Redis没有使用C语言传统的字符串表示方式&#xff08;以’\0’结尾的字符数组&#xff09;&#xff0c;而是自己实现了sds的抽象类型&#xff0c;Redis默认使用sds作为字符串的表示。 set ms…

新视野(2023.5.5-2023.5.12)

一、知识&#xff1a; 媒体账号买卖网站 A5新媒体交易&#xff1a;https://xmt.a5.net/ 新媒虎:https://www.xinmeihu.com/ 二、资讯&#xff1a; GPT最大的竞争对手Claude宣布支持100K的上下文&#xff01;基本上一本中篇小说都能塞进去了&#xff0c;你再不需要ChatPDF这种…

【框架源码】手写Spring框架IOC容器核心流程

要是想要了解Spring IOC底层&#xff0c;首先我们就得先了解什么是IOC。 IOC就是控制反转&#xff0c;把对象创建和对象之间的调用过程交给Spring进行管理。 使用IOC目的就是之前我们创建对象的方式都是用new的方式创建&#xff0c;这个方式有个缺点&#xff0c;被创建对象的…

【halcon资料】取出区域的轮廓上所有转折点

一、说明 在区域运算的时候&#xff0c;有时候需要用图形的顶点来描述&#xff0c;比如&#xff0c;两个图中对象需要对齐&#xff0c;或者仿射变换&#xff0c;于是特征点是需要提取的。本文给出一个提取顶点的示例。 二、算子 1.1 get_region_polygon算子 &#xff08;1&a…

2023互联网Java面试真题1000道(附答案)

前言 2023 跳槽不迷茫&#xff0c;大家可以先收藏再看&#xff0c;后续跳槽都能用上的&#xff01; Java程序员绝大部分工作的时间都是增删改查&#xff0c;很多人觉得这项工作没什么技术含量&#xff0c;任何一件事情都要站在不同的角度去考虑&#xff0c;对于大部分的java程序…

拼多多新阶段,透露出不寻常

一个企业的特质&#xff0c;往往由这个企业的领导人所决定。 企业文化本质上就是领导人文化&#xff0c;领导人的风格会决定这个企业当下的现状。一个成功的大企业&#xff0c;往往需要不同的领导人来接替完成其发展使命。 在创业期&#xff0c;企业领导人需要的是勇气、执行…

统计一个数的二进制中1的个数(三种方法)

那么好了好了&#xff0c;宝子们&#xff0c;今天给大家分享一篇经典例题的三种实现方法&#xff0c;来吧&#xff0c;开始整活&#xff01;⛳️ 一、基础法 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int number_of_one(int n) {int count 0;while(n){if…

一文读懂selenium自动化测试(基于Python)

前言 我们今天来聊聊selenium自动化测试&#xff0c;我们都知道selenium是一款web自动化测试的工具&#xff0c;它应该如何去运用呢?我们接着看下去。 ​1、Selenium简介&#xff1a; 1.1 Selenium&#xff1a; Selenium是一款主要用于Web应用程序自动化测试的工具集合。Sele…

gcc-arm-none-eabi-10.3-2021.10-src.tar.bz2 的编译环境搭建

文章目录 gcc-arm-none-eabi-10.3-2021.10-src.tar.bz2 的编译环境搭建概述实验END gcc-arm-none-eabi-10.3-2021.10-src.tar.bz2 的编译环境搭建 概述 正在迁移Smoothieware_best-for-pnp到MCUXPresso的失败实验中徘徊. 将Smoothieware_best-for-pnp升级到和MCUXPresso相同的…

LeetCode:26. 删除有序数组中的重复项

26. 删除有序数组中的重复项 1&#xff09;题目2&#xff09;代码3&#xff09;结果 1&#xff09;题目 给你一个 升序排列 的数组 nums &#xff0c;请你 原地 删除重复出现的元素&#xff0c;使每个元素 只出现一次 &#xff0c;返回删除后数组的新长度。元素的 相对顺序 应…