Nacos简介
Nacos是阿里的一个开源产品,它是针对微服务架构中的服务发现、服务治理、配置管理的综合型解决方案。
官方介绍是这样的:
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。 Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。
Nacos 是构建以“服务”为中心的现代应用架构的服务基础设施。
搭建工程
一、项目相关依赖
父工程依赖
导入父模块的pom文件中。
<!--父工程依赖-->
<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>
常用依赖
不需要提供web页面显示的话就不需要加spring-boot-starter-web依赖。
想注册服务到Nacos服务中心需要加spring-cloud-starter-alibaba-nacos-discovery依赖。
通过dubbo实现服务远程调用,负载均衡需要加spring-cloud-starter-dubbo依赖。
从Nacos配置中心获取配置需要加spring-cloud-alibaba-nacos-config依赖。
<!--常用依赖-->
<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>
<!--nacos配置中心添加依赖-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-nacos-config</artifactId>
</dependency>
</dependencies>
二、配置文件
1. nacos-restful-consumer的application.yml
#定义提供者端口号
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} #引用上边自定义nacos的地址
# config:
# server-addr: ${nacos.addr} # nacos配置中心地址,需要写在bootstrap中
# file-extension: yaml
#负载均衡-默认轮询,设置随机
nacos-restful-provider: #提供者服务名spring.application.name,一般和模块名一致
ribbon:
NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
# 获取某配置集的代码
#config:
# server-addr: 127.0.0.1:8848 # 配置中心地址
# file-extension: yaml
# namespace: a1f8e863-3117-48c4-9dd3-e9ddc2af90a8 # 开发环境
# group: DEFAULT_GROUP # xx业务组
# 不检测依赖配置
dubbo:
consumer:
check: false
2. nacos-restful-consumer的bootstrap.yml
从Nacos配置中心获取配置信息时参考下面代码。
#加载配置中心
spring:
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848 # nacos配置中心地址
file-extension: yaml
# refresh:
# enabled: false #关闭动态刷新,ConfigurableApplicationContext在controller层开启了
#拓展自定义配置
ext-config[0]: #自定义配置1,自定义配置的优先级,多个配置文件若出现相同字段则根据优先级显示,下标越大优先级越高
data-id: ext-config1.yaml #Data ID
group: DEFAULT_GROUP #Group
refresh: true #默认没有动态刷新,需要手动开启true
ext-config[1]:
data-id: ext-config2.yaml
group: DEFAULT_GROUP
refresh: true
3. nacos-dubbo-service1的yml
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 #启动时就否检查依赖的服务
三、Dubbo远程调用流程及注意
nacos-restful-consumer调用nacos-dubbo-service1因为跨服务(模块)了,即为远程调用 。
dubbo远程调用步骤详见附链接文章来源:https://www.toymoban.com/news/detail-648655.html
附:
总结Nacos、Spring Cloud、Spring Cloud Alibaba、Dubbo:http://t.csdn.cn/78Mps
看到这里了,给博主点个赞再走吧! 文章来源地址https://www.toymoban.com/news/detail-648655.html
到了这里,关于Nacos使用SpringCloudAlibaba+Dubbo实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!