解决Nacos密码包含特殊字符,seata启动报403 unknown user问题

背景seata 1.4.2 ;nacos 2.0.3,公司要求nacos不能使用弱密码(必须包含特殊字符)。

在nacos 网页修改密码后(带@符号),修改SpringCloud应用配置中的密码可以正常启动,

但修改seata中nacos密码(${SEATA_HOME}/conf/registry.conf配置文件中nacos的password)启动seata报错。

registry.conf配置:

报错信息:

问题原因:

seata 注册到nacos使用的是RestTemplate,会将密码中的特殊字符进行转义,导致密码验证不通过。

查询seata官网确认是1.4.2的bug,高版本已经修复。如果想继续使用seata 1.4.2 需要更新nacos-client。

解决方案:

方案1:从官方下载1.4.2源代码:seata: Seata 是一款开源的分布式事务解决方案,提供高性能和简单易用的分布式事务服务 - Gitee.com

修改nacos-client的版本为1.4.2

按照官网推荐的方式,重启生成seata-server-1.4.2

1. 删除 distribution 模块的bin、conf和lib目录。
2. ./mvnw clean install -DskipTests=true(Mac,Linux) 或 mvnw.cmd clean install -DskipTests=true(Win) -P release-seata。
3. 在 distribution 模块的 target 目录下解压相应的压缩包即可。
4. seata-1.5之后(最新develop分支)的打包命令:mvn -Prelease-seata -Dmaven.test.skip=true clean install -U。

重新部署seata,请注意,原先部署的seata可能修改过一些配置文件,需要在新的seata同步修改

方案2:不部署新编译的seata-server,只替换seata lib下的依赖包。

为了确认替换jar是否影响其他地方,在IDEA修改nacos-client的版本,编译打包后,对比lib下的依赖包。

对比nacos-client 1.3.3和1.4.2的区别,除了nacos-client三个包外,两个包都是common-io和common-lang,应该没影响。

替换服务器上的这三个包:nacos-client-1.4.2.jar、nacos-common-1.4.2.jar、nacos-api-1.4.2.jar

并重启seata,注册到nacos成功。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Docker是一种容器化解决方案,Docker Compose可以简化多个容器的管理和部署流程。Nacos是一个用于服务发现、配置管理和动态DNS服务的开源平台。Node.js是一个基于JavaScript的开源、跨平台的运行时环境,用于构建可扩展的网络应用程序。MongoDB是一个高性能、文档型NoSQL数据库,适用于处理大量的结构化和非结构化数据。MySQL是一个开源的关系型数据库管理系统,用于存储和管理结构化数据。Redis是一个基于内存的高性能键值存储系统,用于缓存和数据持久化。Seata是一个开源的分布式事务解决方案,用于保证分布式系统中的数据一致性。 通过Docker Compose,我们可以轻松地将这些不同的组件和服务以容器化的方式部署在一台或多台服务器上。我们可以使用Docker Compose的配置文件定义每个服务的镜像、端口映射、环境变量等设置。在这个场景中,我们可以将Nacos、Node.js、MongoDB、MySQL、Redis和Seata分别作为独立的服务进行定义。 使用Docker Compose可以简化部署过程,只需运行一个命令即可启动整个应用程序的容器群组。Docker会自动拉取和部署所需的镜像,启动容器,并通过网络连接各个服务。Nacos可以作为服务发现和配置中心,用于管理和注册各个服务的地址和配置信息。Node.js可以作为应用程序的后端逻辑进行开发,通过Nacos来发现和调用各个后端服务。MongoDB作为主要的数据存储,MySQL和Redis可以作为辅助数据存储和缓存。Seata可以用于管理和控制分布式事务,确保数据一致性。 总之,使用Docker Compose可以方便地将Nacos、Node.js、MongoDB、MySQL、Redis和Seata等组件集成在一起,并通过容器化的方式进行部署。这样做可以极大地简化应用程序的开发和部署过程,并提供高度可扩展的架构。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值