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.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></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@EnableDiscoveryClientpublic class GuilimallCouponApplication {public static void main(String[] args) {SpringApplication.run(GuilimallCouponApplication.class, args);}}
3、在正常情况下nacos要配合open feign的使用使用步骤如下:
4、首先在你要调用的模块和自己的模块上都应该有open feign的依赖,被调用的模块应该已经注册到nacos注册中心
org.springframework.cloudspring-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 {@Autowiredprivate 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:8848namespace: 41dba914-7566-4d11-9375-1612e4cc697d#配置中心的命名空间group: dev #配置中心的分组 默认是DEFAULT_GROUP分组ext-config[0]: #当你有很多配置的时候可以分文件放在配置中心统一管理data-id: datasource.ymlgroup: devrefresh: true #是否时时刷新ext-config[1]:data-id: mybatis.ymlgroup: devrefresh: trueext-config[2]:data-id: other.ymlgroup: devrefresh: true
如图所示:
nacos的配置列表分组情况从高到低分别是:
一个nacos有多个命名空间
一个命名空间下有多个分组
一个分组下有多个配置文件
在配置列表下点击+号新增一个配置文件
如下图所示:
模块启动就会去加载命名空间为41dba914-7566-4d11-9375-1612e4cc697d的prop分组下的gulimall-coupon.properties(默认)文件和下面的三个文件分别为dev分组下的datasource.yml、dev分组下的mybatis.yml、dev分组下的 other.yml文件。
在有用到远程配置中心里面的数据的类上可以加上@RefreshScope注解实时刷新数据,只要远程配置中心的数据变了,代码里的数据也会发生相应的改变。
注意:如果远程文件和本地文件冲突了,那就会选择远程文件的数据