Nacos作为注册中心、配置中心入门使用篇-实现远程调用、动态获取配置文件、数据库配置信息

下载nacos到本地,可以双击startup.cmd进行启动,默认为8848端口

作为注册中心

首先导入依赖

         <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-alibaba-nacos-discovery</artifactId>
            <version>2.1.0.RELEASE</version>
        </dependency>

在配置文件中配置Nacos Server地址

# 应用名称
spring.application.name=nacos1
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

在主类添加注解,将自己的服务注册进来

@EnableDiscoveryClient  //开启服务注册发现

此时启动nacos后,在启动项目就可以将项目注册进去

远程调用

Feign是一个声明式的Http客户端,提供了http请求模板,通过编写简单的接口和插入注解,就可以定义好http请求参数、格式、地址等信息。

Feign整合了Ribbon(负载均衡)和Hystrix(服务熔断),可以让我们不再需要显式的使用这两个组件

远程调用使用方式

1.对项目添加依赖,引入feign

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
            <version>2.2.1.RELEASE</version>
        </dependency>

2.编写接口,编写接口告诉springcloud需要调用远程服务

@FeignClient("nacos1")  //对应服务名
public interface feigndemo {
    //找到想要调用其他服务的方法复制过来
    @RequestMapping("/lzq/testfeign") //路径要写全
    public R testfeign();
}

此时我们在当前方法调用接口时,就会自动在注册中心找到对应的服务访问对应的接口

还需在主类加入注解@EnableFeignClients,开启客户端的远程调用

同时可以指定对应接口包的全类名,只要服务启动就会自动扫描

@EnableFeignClients(basePackages = "com.lzq.feign")

配置中心

首先引入依赖建立连接

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

在项目中创建bootstrap.properties文件,这个文件会优先于application.properties文件加载

在其中配置服务名称以及地址

spring.application.name=nacos1
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848

动态修改配置文件

登陆nacos网址,在配置列表配置需要动态修改的信息

Data ID为服务名字+.properties,配置文件选择properties,编写好配置后点击发布

在对应方法中添加注解@RefreshScope注解

@RefreshScope
@RestController
public class Demo {

    @Value("${shop.zhekou}")
    private String zk;
}

此时通过代码获取对应值,就可以动态修改对应配置值

细节:命名空间、配置集、配置ID、配置分组

命名空间:默认public,主要作用配置隔离,(可以通过多个命名空间对应测试、生成环境),可以通过在bootstrap.properties中指定命名空间

spring.cloud.nacos.config.namespace=xxxxx

配置分组:相同命名空间可根据活动不同采取不同的配置,指定对应分组

spring.cloud.nacos.config.group=dev

管理数据源

spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
spring.cloud.nacos.config.ext-config[0].group=dev
spring.cloud.nacos.config.ext-config[0].refresh=true  //动态刷新

spring.cloud.nacos.config.ext-config[1].data-id=mybatis.yml
spring.cloud.nacos.config.ext-config[1].group=dev
spring.cloud.nacos.config.ext-config[1].refresh=true

猜你喜欢

转载自blog.csdn.net/weixin_52210557/article/details/125953416
今日推荐