前言
本篇使用alibaba nacos它可以作为微服务的注册中心和配置中心以及配置文件动态刷新,所以本篇就一起实现了。它对应了spring cloud中的注册中心 Spring Cloud Netflix Eureka 以及配置中心spring cloud Config(动态刷新还要配合使用 Spring Cloud Bus 组件) 。nacos以一抵三,可以想象他的强大之处了。
准备
- jdk17+
- maven3.9.4+
- idea2023
- spring cloud: 2023.0.1.0
- spring cloud alibaba: 2023.0.1
- nacos服务器版本:2.3.0
源码获取: GitHub - RemainderTime/spring-cloud-alibaba-base-demo: 基于spring cloud alibaba生态快速构建微服务脚手架
博主使用的是docker直接构建安装的nacos容器
本地安装:
nacos服务包已上传百度云可直接下载使用
百度云链接: pan.baidu.com/s/1Ue0NPSzx… 提取码: 92h6
相关配置可以参看nacos官网教程,根据不同的平台配置
配置完成访问默认nacos的控制面板,就算成功了
创建命名空间
命名空间也可以不创建,就使用默认的,为了不同项目配置隔离建议创建命名空间
项目
创建生成/消费者微服务:
父级pom.xml引入nacos依赖
<!-- 配置中心 nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--注册中心 nacos-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
子模块所有启动类上加上注解 @EnableDiscoveryClient 作用是启用服务注册与发现功能
配置application.yml文件
配置注册中心地址和配置中心
spring:
application:
name: http-cloud-producer
cloud:
nacos:
config: #配置中心
server-addr: 127.0.0.1:8848
prefix: http-cloud-producer
username: nacos
password:
namespace:
discovery: #注册中心
server-addr: 127.0.0.1:8848
username: nacos
password:
namespace
config:
import: #指定加载配置的方式以及文件
- nacos:http-cloud-producer.yaml
Tips!
namespace:这个就是上面创建的命名空间ID
config.import: 这个是在nacos配置中心手动创建的配置文件。(我记得老版本是在配置中心的config中设置)
使用了配置中心,大多数配置可以防止远程配置中心管理,本地配置只需要留一个配置中心confi配置地址就行
启动服务
启动本地服务后,我们会发现nacos注册中心已经成功注册了消费者和生产者服务: