NACOS MalformedInputException 无法读取中文配置问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NACOS MalformedInputException 无法读取中文配置问题相关的知识,希望对你有一定的参考价值。

参考技术A 在windows平台中打包运行springboot jar包提示如下错误

在nacos中删除中文也可以处理此问题,但不是最佳方案。
在idea中启动项目时,因为 idea相关配置中设置UTF-8的文件编码格式 file.encoding=utf-8 。打包运行后,该设置需要手动指定,如下

Nacos学习笔记 Nacos集群部署

1. 集群部署

3个或3个以上Nacos节点才能构成集群

(1) 安装3个以上Nacos

我们可以复制之前已经解压好的nacos文件夹,分别命名为nacosnacos1nacos2

(2) 配置集群配置文件

在所有nacos目录的conf目录下,有文件 cluster.conf.example ,将其命名为 cluster.conf ,并将每行配置成 ip:port。(请配置3个或3个以上节点)

#2022-12-23T16:14:53.171
192.168.174.1:8838
192.168.174.1:8848
192.168.174.1:8858

由于是单机演示,需要更改nacos/conf目录下application.propertiesserver.port,防止端口冲突。

如果服务器有多个ip也要指定具体的ip地址,如:nacos.inetutils.ip-address=127.0.0.1 .

例如:

server.port=8838
nacos.inetutils.ip‐address=127.0.0.1

(3) 集群模式启动

分别执行nacos目录的bin目录下的startup

startup -m cluster

 在任意一个nacos的控制台中,可以看到如下内容:

主从信息:

 2. 客户端配置

所有客户端, 分别指定 nacos 集群中的若干节点:

server:
  port: 8080
spring:
  application:
    name: nacos-provide
  cloud:
    nacos:
      config:
        max-retry: 10
      discovery:
        server-addr: 127.0.0.1:8838,127.0.0.1:8848,127.0.0.1:8858

 测试 , 使用快速上手的例子:

1)关掉127.0.0.1:8848 nacos Leader实例,发现Leader被成功选举至127.0.0.1:8838

2)紧接着重新启动Provider,这时马上请求consumer/service出现错误,发现consumerprovider通信已经出现问题。但经过短暂的时间后,通信恢复.

通过测试,我们可以看到,通过以上的集群部署已经达到了高可用的效果。

3. 生产环境部署建议

下图是官方推荐的集群方案,通过域名 + VIP模式的方式来实现。客户端配置的nacos,当Nacos集群迁移时,客户端配置无需修改.

 至于数据库,生产环境下建议至少主备模式。通过修改$nacoshome/conf/application.properties文件,能够使nacos拥有多个数据源。

spring.datasource.platform=mysql
db.num=2
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&autoReconnect=true
db.url.1=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&autoReconnect=true
db.user=root
db.password=root

以上是关于NACOS MalformedInputException 无法读取中文配置问题的主要内容,如果未能解决你的问题,请参考以下文章

nacos身份绕过漏洞

什么是Nacos

Nacos学习之初识Nacos

Nacos学习笔记 Nacos集群部署

Nacos学习笔记 Nacos集群部署

【Nacos专题】Nacos Config