• 解决: springboot 有了eurake怎么再添加 nacos? 【springboot配置多注册中心,同时生效~,不是切换】 涂涂


    spring-boot有了eureka 怎么再添加一个nacos呢?使用eureka本身就可以实现配置中心,又为何要再用nacos作为配置中心呢?

      

    一般实现都是使用单个的注册中心(包含服务注册+配置中心),上面的情况很少使用。考虑到eureka的配置中心比较繁琐,需要git+github,没有nacos简单,所以直接安装一个nacos就可以了,它有自己的内置数据库。

    下面讲解一下如何配置nacos(在spring-boot+eureka的基础上)。假设已经搭建好了spring-boot+eureka,下面来说明如何再引入nacos。

    1、安装nacos+创建bootstrop.yml 

      1)在nacos中(localhost:8848/nacos/index.html)中创建nacos-config-dev.yml 

      

       2)在bootstrop.yml添加内容:

      

    server:
      port: 9001
    spring:
      application:
        ## 指定服务名称,在nacos中的名字
        name: nacos-provider
      cloud:
        nacos:
          discovery:
            # nacos的服务地址,nacos-server中IP地址:端口号
            server-addr: 127.0.0.1:8848
    management:
      endpoints:
        web:
          exposure:
            ## yml文件中存在特殊字符,必须用单引号包含,否则启动报错
            include: '*'

    2、修改pom.xml

      引入nacos的依赖,在pom.xml中添加

      

      <!-- nacos -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
            <version>2.2.1.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.2.1.RELEASE</version>
        </dependency>

    注意:我的spring-boot是2.3.4 ,nacos客户端是1.4.0

    3、修改bootstrop.yml

      一般配置好pom.xml后,启动后会报错,以下为我遇到的报错:

      1)Field registration in org.springframework.cloud.client.serviceregistry.ServiceRegistryAutoConfiguration$ServiceRegistryEndpointConfiguration required a single bean, but 2 were found:这个是注册中心多了,spring不知道要注入哪个。解决方法:

      在bootstrap.yml中添加:

      

    spring:
        autoconfigure:
            exclude: com.alibaba.cloud.nacos.registry.NacosServiceRegistryAutoConfiguration
    

     

      2)无法找到类:org.springframework.cloud.client.discovery.ReactiveDiscoveryClient。这个是jar冲突导致的。找到冲突的jar包,在pom.xml中删除,我的情况是spring-boot-commons的版本不对,一个是2.0.0,一个是2.2.2,导致启动的时候总是找缺失类的那个jar包,因此我删除了2.0.0,同时引入了2.2.2.如:

        

      <!-- nacos -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-commons</artifactId>
            <version>2.2.2.RELEASE</version>
        </dependency>
    
        <dependency>
            <dependency>
                    <groupId>org.springframework.cloud</groupId>
                    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
                </dependency>
            <version>2.0.0.RELEASE</version>
         <exclusions>
            <exclusion> 
              <groupId>org.springframework.cloud</groupId>
              <artifactId>spring-cloud-commons</artifactId>
            </exclusion>
          </exclusions> 
        </dependency>

      3)报错ClassNotFoundException:org.springframework.cloud.client.loadbalancer.LoadBalancerClientsProperties

      4)Your project setup is incompatible with our requirements due to following reasons:- Spring Boot [2.1.0.RELEASE] is not compatible with this Spring Cloud release train

        关闭版本兼容性检测,bootstrop.yml中添加:

      

    spring:
        cloud:
           compatibility-verifier:
               enabled: false            

    完成以上更改,启动项目即可。

    参考:

    https://didispace-wx.blog.csdn.net/article/details/89702127?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&utm_relevant_index=2

    https://www.cnblogs.com/chengbaiyi/p/11943878.html#3autoserviceregistrationconfiguration

  • 相关阅读:
    线性结构2 一元多项式的乘法与加法运算 【STL】
    Maximum Subsequence Sum 【DP】
    第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 L 用来作弊的药水 【快速幂】
    第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 A 跳台阶【DP】
    Wannafly挑战赛12 B T95要减肥 【贪心】
    表达式转换 【模拟】
    Wannafly挑战赛12 A 银行存款 【DP】【DFS】
    PAT 天梯赛 L3-008. 喊山 【BFS】
    PAT 天梯赛 L3-003. 社交集群 【并查集】
    装箱问题【STL】
  • 原文地址:https://www.cnblogs.com/51python/p/16172112.html
Copyright © 2020-2023  润新知