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
相关文章
- 直接在代码里面对list集合进行分页
- .NET Framework 4.5新特性详解
- 大数据的简要介绍
- 大数据的由来
- 高斯混合模型的自然梯度变量推理
- timing-wheel 仿Kafka实现的时间轮算法
- 使用Navicat软件连接自建数据库(Linux系统)
- 那一天,我被Redis主从架构支配的恐惧
- Redis 深入了解键的过期时间
- C#使用委托调用实现用户端等待闪屏
- 基于流计算 Oceanus 和 Elasticsearch Service 构建百亿级实时监控系统
- GRAND | 转录调控网络预测数据库
- JFreeChart API中文文档
- 临床相关突变查询数据库
- TIGER | 人类胰岛基因变化查询数据库
- 视频边缘计算网关EasyNVR在视频整体监控解决方案中的应用分析
- Apache Arrow - 大数据在数据湖后的下一个风向标
- 常见的电商数据指标体系
- AKShare-艺人数据-艺人流量价值
- MySQL中多表联合查询与子查询的这些区别,你可能不知道!