SpringBoot整合Nacos服务发现+配置中心

Stella981
• 阅读 728

【建立一个新的模块,使用springboot+nacos,搭建完启动服务发现报了两个问题:

1.No active profile set, falling back to default profiles: default

2.Process finished with exit code 1

查了许多文章,都反应是 pom文件中maven依赖冲突或者其他导致。 】

【解决:将所有的依赖删掉,只留下了必须的4个】

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.7.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <properties>
    </properties>
    <artifactId>hello-gw</artifactId>
    <!-- 声明式依赖,并不实际依赖,用于管理版本号 -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>Finchley.SR1</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>0.2.2.RELEASE</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--服务发现-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!-- 配置中心 -->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
        </dependency>
    </dependencies>

【整合过程 :

1.新建模块,pom依赖导入,见上 ↑

2.新建服务启动类:

@SpringBootApplication
@EnableDiscoveryClient
public class HelloGatewayApplication {
    public static void main(String[] args) {
        try {
            SpringApplication.run(HelloGatewayApplication.class, args);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

注解不要丢。

3.配置文件-bootstrap.yml:

spring:
  application: 
    name: hello-gw
  cloud:
    nacos:
      config:
        server-addr: 192.168.1.36:8848
        file-extension: yaml
        prefix: ${spring.application.name}
        refresh:
          enabled: true
      discovery:
        server-addr: 192.168.1.36:8848
server:
  port: 8849
  servlet:
    context-path: /hello-boot

4.controller 验证:

@ConfigurationProperties(prefix="hello") // 与配置中心中的配置路径对应
@RestController
@Data
public class HelloGatewayController {

    @Autowired
    private HelloGatewayService helloGatewayService;

    private String helloNacosV;//变量配置在配置中心

    @GetMapping("/requestResult")
    public Object requestResult(){
        System.out.println("enter ...helloNacosV:"+helloNacosV);
        Object result = helloGatewayService.putDiscoveryNacosV(helloNacosV);
        return result;
    }
}

//service代码:
@Service
public class HelloGatewayService {
    public Object putDiscoveryNacosV(String helloNacosV) {
        Map result = new HashMap();
        result.put("discoveryNacosValue",helloNacosV);
        return  result ;
    }
}

5.配置中心配置:

server:
  port: 8849
  servlet:
    context-path: /hello-nacos
spring:
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        loadbalancer:
          retry:
            enabled: true
hello:
    helloNacosV: 123

【验证:

1.启动服务:SpringBoot整合Nacos服务发现+配置中心

找到bootstrap.yml中配置的hello-gw.yaml找到配置的服务端口 8849,可见 整合过程第5步中的port。

SpringBoot整合Nacos服务发现+配置中心

服务启动,项目路径是 整合过程第5步中的context-path:hello-nacos

2.访问路径: http://localhost:8849/hello-nacos/requestResult  

返回:SpringBoot整合Nacos服务发现+配置中心

配置中心体现:修改 123,改为qqq,不用重启服务,访问路径,返回:SpringBoot整合Nacos服务发现+配置中心

查看日志可以发现,每次请求,都会重新加载配置中心的对应配置。

SpringBoot整合Nacos服务发现+配置中心

【题外话:项目配置yml和配置中心yaml中都配置了 context-path,最后 还是以配置中心的为准。

去掉配置中心的maven依赖,则以本地为准。】

补充两张结果图:

SpringBoot整合Nacos服务发现+配置中心

SpringBoot整合Nacos服务发现+配置中心

SpringBoot整合Nacos服务发现+配置中心

点赞
收藏
评论区
推荐文章
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
红烧土豆泥 红烧土豆泥
3年前
Spring Boot:jar中没有主清单属性
使用SpringBoot微服务搭建框架时,使用IDEA可以正常运行,但是使用MAVEN打包工具打包成jar后运行时,提示错误:未找到主清单目录。查看pom文件,发现已添加SpringBoot的构建插件xmlorg.springframework.bootspringbootmavenplugin2.4.1
捉虫大师 捉虫大师
3年前
Nacos注册中心之概要设计
前言在之前的文章中分析了Nacos配置中心,配置中心的核心是配置的创建、读取、推送。注册中心的核心比配置中心多一个服务探活模块,他俩的相似度非常高,甚至阿里内部的注册中心就叫ConfigServer。Nacos注册中心打算分成几个模块来分析,本文重点在于概要设计,基于2.0.0版本。环境搭建用Nacos的源码来搭建源码阅读和调试环境,可参考Nacos调试
Stella981 Stella981
3年前
Nacos系列:Nacos的Java SDK使用
Maven依赖Nacos提供完整的JavaSDK,便于配置管理和服务发现及管理,以Nacos0.8.0版本为例添加Maven依赖:<dependency<groupIdcom.alibaba.nacos</groupId<artifactIdnacosclient<
Stella981 Stella981
3年前
SpringBoot Starter大全,都帮你整理好了!
来源:https://www.cnblogs.com/zeussbook/p/11492733.html啥是应用启动器?springboot集成了spring的很多模块,比如tomcat、redis等等。你用springboot搭建项目,只需要在pom.xml引入相关的依赖,和在配置文件中简单的配置就可以使用相应模块了。非常方便,springboo
Stella981 Stella981
3年前
Spring Cloud for Alibaba 之 Nacos注册中心 & 应用启动(2)
  Nacos启动后,开始建立几个应用,模仿微服务!  项目的git地址为: https://github.com/xujianguo1/aliclouddemo.git   分支&tagName:ServiceInit一、pom与配置用Dubbo与Nacos建立微服务,需要引入DubboStarter、D
Easter79 Easter79
3年前
SpringBoot整合Nacos服务发现+配置中心
【建立一个新的模块,使用springbootnacos,搭建完启动服务发现报了两个问题:1.Noactiveprofileset,fallingbacktodefaultprofiles:default2.Processfinishedwithexitcode1查了许多文章,都反应是pom文件中maven依赖冲突或
Stella981 Stella981
3年前
Spring Cloud Config Bus 分布式配置自动刷新
首先需要在GitHub上面创建一个项目.然后创建3个模块:CloudCenter为服务发现中心.CloudCnofigCenter为配置中心CloudUser为要分布式配置的模块首先创建CloudCenter,引入POM依赖:    <dependency<groupI
把帆帆喂饱 把帆帆喂饱
1年前
Springboot整合Redis实现邮箱验证码
Springboot整合Redis实现邮箱验证码开启邮箱服务打开https://mail.qq.com/登录你自己的qq账号选择账户点击开启STMP服务:发送短信:发送完,点击我已发送,然后得到密码:Springboot配置邮箱pom依赖xmlorg.sp
京东云开发者 京东云开发者
11个月前
记录一次RPC服务有损上线的分析过程
1\.问题背景某应用在启动完提供JSF服务后,短时间内出现了大量的空指针异常。分析日志,发现是服务依赖的藏经阁配置数据未加载完成导致。即所谓的有损上线或者是直接发布,当应用启动时,service还没加载完,就开始对外提供服务,导致失败调用。关键代码如下数据