1、nacos的安装
1、首先要使用nacos那肯定得先下载nacos
nacos的GitHub下载地址
2、解压并且放到自己想放的目录,打开bin目录下的startup.cmd(windows下)
如果打开闪退则配置一下startup.cmd 用编辑器打开startup.cmd,修改里面的MODE为standalone因为默认是cluster集群的方式启动,standalone是以单机的方式启动
3、启动之后即可进入nacos网页,具体怎么进入呢,访问启动之后的提示网址
4、在浏览器访问提示网址即可跳到nacos登录网页,账号密码默认是nacos
5、恭喜您完成nacos的安装
2、在springcloud项目中使用nacos
Springboot 、springcloud、springcloud alibaba对应关系
https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
1、想要使用那肯定得导入依赖,在自己想用的模块上导入nacos依赖,一般是在common统一管理,其他模块依赖nacos
dependency>
groupId>com.alibaba.cloudgroupId>
artifactId>spring-cloud-starter-alibaba-nacos-discoveryartifactId>
dependency>
dependency>
groupId>com.alibaba.cloudgroupId>
artifactId>spring-cloud-starter-alibaba-nacos-configartifactId>
dependency>
nacos注册中心
注意:nacos的注册中心和配置中心都放在bootstrap.yml或者bootstrap.properties上不然启动前会报错,但是不影响运行,因为springcloud启动的时候如果有nacos依赖它会先去寻找bootstrap文件。
1、注册中心的使用:
#首先要表明注册的名称一般是模块名称
spring:
application:
name: gulimall-coupon
#表明注册中心的地址
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
2、在启动类上添加注解开启nacos服务注册发现功能
@SpringBootApplication
@EnableDiscoveryClient
public class GuilimallCouponApplication {
public static void main(String[] args) {
SpringApplication.run(GuilimallCouponApplication.class, args);
}
}
3、在正常情况下nacos要配合open feign的使用使用步骤如下:
4、首先在你要调用的模块和自己的模块上都应该有open feign的依赖,被调用的模块应该已经注册到nacos注册中心
org.springframework.cloud
spring-cloud-starter-openfeign
5、在自己的模块上创建一个feign包用来放专门调用别的模块的接口
6、创建一个接口,在接口上加上@FeignClient注解表明要调用的模块
//feign包下的接口,路径记得写全
@FeignClient("gulimall-coupon")
public interface CouponFeignService {
@RequestMapping("coupon/coupon/member/list")
R membercoupons();
}
//被调用模块接口的代码
@RestController
@RequestMapping("coupon/coupon")
public class CouponController {
@RequestMapping("member/list")
public R membercoupons(){
return R.ok("调用成功");
}
}
//自己的接口调用feign包下的接口完成数据的传输
@RestController
@RequestMapping("member/member")
public class MemberController {
@Autowired
private CouponFeignService couponFeignService;
@RequestMapping("coupons")
public R test(){
return couponFeignService.membercoupons();
}
}
nacos配置中心
#表明名称
spring:
application:
name: gulimall-coupon
#表明配置中心的地址
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848
namespace: 41dba914-7566-4d11-9375-1612e4cc697d #配置中心的命名空间
group: dev #配置中心的分组 默认是DEFAULT_GROUP分组
ext-config[0]: #当你有很多配置的时候可以分文件放在配置中心统一管理
data-id: datasource.yml
group: dev
refresh: true #是否时时刷新
ext-config[1]:
data-id: mybatis.yml
group: dev
refresh: true
ext-config[2]:
data-id: other.yml
group: dev
refresh: true
如图所示:
nacos的配置列表分组情况从高到低分别是:
一个nacos有多个命名空间
一个命名空间下有多个分组
一个分组下有多个配置文件
在配置列表下点击+号新增一个配置文件
如下图所示:
模块启动就会去加载命名空间为41dba914-7566-4d11-9375-1612e4cc697d的prop分组下的gulimall-coupon.properties(默认)文件和下面的三个文件分别为dev分组下的datasource.yml、dev分组下的mybatis.yml、dev分组下的 other.yml文件。
在有用到远程配置中心里面的数据的类上可以加上@RefreshScope注解实时刷新数据,只要远程配置中心的数据变了,代码里的数据也会发生相应的改变。
注意:如果远程文件和本地文件冲突了,那就会选择远程文件的数据