美文网首页
Nacos集群部署报400问题

Nacos集群部署报400问题

作者: 程序员王旺 | 来源:发表于2021-01-27 16:17 被阅读0次

    Nacos现在在微服务领域用的比较广了,最近使用时发现一些问题记录下,我是nacos服务器用的是最新版,客户端为了兼容Springboot版本用的是0.1.2,现在最新客户端是0.2.2,具体请看版本说明对照表

    版本说明:

    • Nacos Server采用1.4.1版本, kubernetes部署
    • Spring cloud采用Edgware.RELEASE版本
    • Springboot采用1.5.9.RELEASE版本
      <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Edgware.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
    
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                    <version>0.1.2.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
          
            </dependencies>
    
        </dependencyManagement>
    

    问题

    问题1:工程启动时报错

    Error creating bean with name 'nacosAutoServiceRegistration

    版本冲突,重新引入版本覆盖

     <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-commons</artifactId>
            <version>1.3.5.RELEASE</version>
     </dependency>
    

    问题2:工程启动时报错

    failed to req API:/nacos/v1/ns/instance after all servers([nacos:8848]) tried: failed to req API:http://nacos:8848/nacos/v1/ns/instance. code:400 msg: <html><body><h1>Whitelabel Error Page</h1><p>This application has no explicit mapping for /error, so you are seeing this as a fallback.</p><div id='created'>Wed Jan 27 14:29:32 CST 2021</div><div>There was an unexpected error (type=Bad Request, status=400).</div><div>receive invalid redirect request from peer 100.97.40.95</div></body></html>

    这个问题比较怪异,应该是一个bug,具体有两种办法解决:

    • 使用单机模式
      将MODE属性有cluster改成standalone
    apiVersion: apps/v1
    kind: StatefulSet
    metadata:
      name: nacos
    spec:
      selector:
        matchLabels:
          app: nacos
      serviceName: nacos
      replicas: 3
      template:
      ....
        spec:
          containers:
         ....
                - name: MODE
                  value: "standalone"
           ....
    
    • 单独引入依赖包
      单独引入discovery和config包
    
        <dependencyManagement>
            <dependencies>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-dependencies</artifactId>
                    <version>Edgware.RELEASE</version>
                    <type>pom</type>
                    <scope>import</scope>
                </dependency>
     
                <!-- 解决启动报 Error creating bean with name 'nacosAutoServiceRegistration -->
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-commons</artifactId>
                    <version>1.3.5.RELEASE</version>
                </dependency>
    
    
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                    <version>0.1.2.RELEASE</version>
                </dependency>
                <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
                    <version>0.1.2.RELEASE</version>
                </dependency>
            </dependencies>
    

    另外k8s中服务列表配成这样:

    ....
                - name: NACOS_SERVERS
                  value: "nacos-0.nacos.default.svc.cluster.local:8848 nacos-1.nacos.default.svc.cluster.local:8848"
    ...
    

    相关文章

      网友评论

          本文标题:Nacos集群部署报400问题

          本文链接:https://www.haomeiwen.com/subject/izjazktx.html