pom文件
<!-- 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>
<!-- commons-lang3,引入该依赖主要是因为不引入其中一个包报缺少commons-lang3下的StringUtils类文件 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.12.0</version>
</dependency>
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>
经测试发现,加入上述依赖后,会向nacos中注入两种类型的服务。一种是由spring-cloud-starter-alibaba-nacos-discovery依赖注册的以服务名为名称的服务,一种是由spring-cloud-starter-dubbo以providers/consumer+接口类全名+version为名的服务。
yml配置
两个位置设置注册的相关属性:
- spring-cloud-starter-alibaba-nacos-discovery:
spring.cloud.nacos.discovery下的属性设置 - spring-cloud-starter-dubbo
dubbo.下设置属性
dubbo:
cloud:
subscribed-services: 'xx-service' #订阅的服务,不声明的话会报警告
protocol:
name: dubbo
#host: 127.0.0.1 #配置向naocs注册时元数据中的urls中的ip,也就是根据ip指定provider的依据
port: -1 # 20881 从20880开始找,如果端口被占用,就自增1
registry:
# 配置注册中心
address: nacos://127.0.0.1:8869
parameters[namespace]: ${NAMESPACE:dev} #配置服务注册的namespace,注意格式为parameters[namespace],如果不配置的话则会注册至public
cluster-name: DEFAULT
group: DEFAULT_GROUP
spring:
application:
name: gateway #指定服务名
main:
allow-bean-definition-overriding: true #当遇到同样名字的时候,是否允许覆盖注册
cloud:
nacos:
config:
# 作为配置中心的nacos服务器地址
server-addr: 127.0.0.1:8869
# 配置文件后缀
file-extension: yaml
# 命名空间, 可以通过环境变量如docker启动时-e NAMESPACE=uat指定或启动命令DNAMESPACE=uat等方式指定
namespace: ${NAMESPACE:dev}
# 支持多个共享 Data Id 的配置,优先级小于extension-configs,自定义 Data Id 配置 属性是个集合,内部由 Config POJO 组成。Config 有 3 个属性,分别是 dataId, group 以及 refresh
shared-configs[0]:
data-id: public.yaml # 配置文件名-Data Id
group: DEFAULT_GROUP # 默认为DEFAULT_GROUP
refresh: true # 是否动态刷新,默认为false
shared-configs[1]:
data-id: gateway.yaml
group: TEST
refresh: true
discovery:
# 作为注册中心nacos服务器地址, springcloud+dubbo整合nacos会从这里的
server-addr: 127.0.0.1:8869
namespace: dev
cluster-name: DEFAULT
group: DEFAULT_GROUP
#ip: 127.0.0.1 #此处配置ip会导致向nacos中注册的服务信息列表ip字段值用这个值,这个值不会对dubbo调用起作用,因为dubbo只会看元数据中的urls中的信息