一、nacos服务端安装
https://yjtzfywh.blog.csdn.net/article/details/127770847
启动服务端,使用nacos作为账号和密码登录
http://169.254.244.244:8848/nacos/index.html
二、服务注册与发现
1、项目目录
2、父项目依赖管理配置
<dependencyManagement> <dependencies> <!-- 这里引入最新的SpringCloud依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>2021.0.1</version> <type>pom</type> <scope>import</scope> </dependency> <!-- 这里引入最新的SpringCloudAlibaba依赖,2021.0.1.0版本支持SpringBoot2.6.X --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>2021.0.1.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
3、项目依赖
<!-- nacos注册--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- 远程调用,非必须--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <!-- 这里需要单独导入LoadBalancer依赖 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-loadbalancer</artifactId> </dependency>
4、本地配置文件
忽略集群和命名空间
#启动端口 server: port: 8101 # 数据库 spring: # datasource: # driver-class-name: com.mysql.cj.jdbc.Driver # url: jdbc:mysql://localhost:3306/cloudstudy # username: root # password: 123456 cloud: nacos: discovery: # 配置Nacos注册中心地址 server-addr: localhost:8848 # 将ephemeral修改为false,表示非临时实例 ephemeral: false #集群名称,优先调用相同集群服务 cluster-name: Chengdu # 权重大小,越大越优先调用,默认为1 weight: 0.5 #命名空间 namespace: d6aaadc1-3d2a-4ee8-9360-c4d05b3758bc # 将loadbalancer的nacos支持开启,集成Nacos负载均衡,支持区域优先 loadbalancer: nacos: enabled: true
5、启动子项目
查看nacos控制台的服务列表。
http://169.254.244.244:8848/nacos/index.html#/serviceManagement
三、配置中心
1、项目依赖
<!-- nacos配置中心--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-bootstrap</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>
2、新增配置
打开nacos控制台,新增配置
http://localhost:8848/nacos/index.html#/newconfig?serverId=center&namespace=&edasAppName=&edasAppId=&searchDataId=&searchGroup=
填写必填项
配置文件内容
#启动端口 server: port: 8101 # 数据库 spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/cloudstudy username: root password: 123456 cloud: nacos: discovery: # 配置Nacos注册中心地址 server-addr: localhost:8848 # 将ephemeral修改为false,表示非临时实例 ephemeral: false #集群名称,优先调用相同集群服务 cluster-name: Chengdu # 权重大小,越大越优先调用,默认为1 weight: 0.5 # 将loadbalancer的nacos支持开启,集成Nacos负载均衡,支持区域优先 loadbalancer: nacos: enabled: true application: name: user-service crm: value: 63
4、项目配置远程配置文件
配置项目远程配置文件-bootstrap.yml
spring: application: name: user-service profiles: # 环境也是和配置文件保持一致 active: dev cloud: nacos: config: # 配置文件后缀名 file-extension: yml # 配置中心服务器地址,也就是Nacos地址 server-addr: localhost:8848
5、编写获取远程属性测试
import com.minos.entity.User; import lombok.extern.java.Log; import org.springframework.beans.factory.annotation.Value; import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @RestController @Log @RefreshScope //添加此注解就能实现自动刷新了 public class UserController { @Resource UserService userService; @Value("${crm.value}") private Integer num; @GetMapping("getValue") public Integer getNum() { return num; } @RequestMapping("/user/{uid}") public User fingUserById(@PathVariable("uid") int uid) { log.info("userservice调用了"); return userService.getUserById(uid); } }
三、测试配置属性
http://localhost:8101/getValue
修改配置文件重新发布,重新刷新