Nacos简介
Nacos是阿里的一个开源产品,它是针对微服务架构中的服务发现、服务治理、配置管理的综合型解决方案。
官方介绍是这样的:
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。
Nacos 是构建以"服务"为中心的现代应用架构的服务基础设施。
项目相关依赖
父工程依赖
java
<!--父工程依赖-->
<dependencyManagement>
<dependencies>
<!--spring-boot-dependencies-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.1.3.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring-cloud-dependencies-->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!--spring-cloud-alibaba-dependencies-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>2.1.0.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
常用依赖
java
<!--常用依赖-->
<dependencies>
<!--web前端-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--nacos服务发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!--dubbo远程调用,负载均衡,引入 spring-cloud-starter-dubbo依赖,它会根据接口生成代理对象-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-dubbo</artifactId>
</dependency>
</dependencies>
配置文件
nacos-restful-consumer的yml
java
#定义提供者端口号
server:
port: 56020
#自定义提供者地址,可不定义
provider:
address: 127.0.0.1:56010
#自定义nacos的地址,可不定义
nacos:
addr: 127.0.0.1:8848
#将本服务注册到nacos
spring:
application: #注册到nacos的服务名
name: nacos-restful-consumer
cloud:
nacos:
discovery:
server-addr: ${nacos.addr}
# config:
# server-addr: ${nacos.addr} # nacos配置中心地址,需要写在bootstrap中
# file-extension: yaml
#负载均衡-默认轮询,设置随机
nacos-restful-provider: #提供者服务名spring.application.name,一般和模块名一致
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
# 不检测依赖配置
dubbo:
consumer:
check: false
nacos-dubbo-service1的yml
java
server:
port: 56030 #启动端口 命令行注入
spring:
application:
name: dubbo-service1
main:
allow-bean-definition-overriding: true # Spring Boot 2.1 需要设定
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
dubbo:
scan:
#dubbo 服务扫描基准包
base-packages: cn.yh.dubbo.service
protocol:
#dubbo 协 议
name: dubbo
#dubbo 协议端口
port: 20881
registry:
address: nacos://127.0.0.1:8848
application:
qos-enable: false #dubbo运维服务是否开启
consumer:
check: false #启动时就否检查依赖的服务