nacos配置使用教程

一、什么是nacos?

Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。

二、Nacos可以做什么?

1、动态配置服务:支持以中心化、外部化和动态化的方式管理所有环境的配置。动态配置消除了配置变更时重新部署应用和服务的需要。配置中心化管理让实现无状态服务更简单,也让按需弹性扩展服务更容易。
2、服务发现及管理:支持DNS-Based和RPC-Based(Dubbo、gRPC)模式的服务发现,同时提供实时健康检查,以防止将请求发往不健康的主机或服务实例。借助Nacos,可以更容易地为服务实现断路器。 3、动态DNS服务:通过支持权重路由,轻松实现中间层负载均衡、更灵活的路由策略、流量控制及简单数据中心内网的简单DNS解析服务。更加容易地实现以DNS协议为基础的服务发现,以消除耦合到厂商私有服务发现API上的风险。

三、安装Nacos环境

Nacos的环境安装非常简单,首先从 GitHub 上 checkout 源码,编译获取安装包,命令如下:

mvn -Prelease-nacos clean install -U

在Windows系统下,可以取target下的nacos-server-0.8.0.zip包(当然也可以从Github上直接下载安装包),将其解压到任意目录下。

注意:所解压目录的文件路径不能包含空格,例如:D:/Program Files/Nacos,否则在启动Nacos Server时,会提示错误:找不到或无法加载主类 Files/Nacos/bin/Files/Nacos/plugins/cmdb

解压后,进入bin目录,双击startup.cmd,此时,Nacos Server就开始启动了。
在这里插入图片描述
在启动界面中,可以看到Nacos的版本、运行模式、端口号、进程号、Console等信息,其中Console:http://xxx:xx/nacos/index.html的地址就是Nacos的控制台,可以直接在浏览器访问:
在这里插入图片描述
Nacos控制台的默认账号密码为:nacos/nacos
登录后可以看到如下界面,在控制台可以进行配置和服务的管理。
在这里插入图片描述

四、nacos注册中心

为了帮大家快速理解其概念,这里用一个通俗的案例:

小明和小新住在同一家沃尔玛超市附近,他俩都办了会员,经常关注超市的一些优惠活动,元宵节快到了,沃尔玛准备搞一个元宵节特惠活动,需要通知到附近的住户。对于沃尔玛来说,可以安排工作人员电话通知到小明和小新;而对于小明和小新来说,可以去超市咨询相关信息。

那么问题来了,住在超市附近的,不只有小明和小新两个消费者,如果每个人都打电话去通知就显得太麻烦了,小明和小新提前在超市了解了相关信息,可是不巧的是,由于各种原因,沃尔玛元宵特惠活动要从上午改到下午才开始,他们又该从何得知呢?

其实,沃尔玛关心的是通知能不能传达到附近的住户,小明和小新关心的是沃尔玛优惠活动的详情动态。沃尔玛不必给每个住户挨个电话通知,它只需要在它的微信公众号上推送一条消息即可,小明和小新也不用去超市咨询,只要随时关注沃尔玛公众号的推送消息即可。

在上面这个例子中,沃尔玛就是服务提供者,小明和小新是服务消费者,微信公众号类似于注册中心,沃尔玛将“服务”发布到注册中心,小明和小新作为消费者,订阅注册中心上沃尔玛提供的“服务”,通过微信公众号,沃尔玛(服务方)和小明、小新(消费方)就“解耦”了。

在现有的技术方案中,注册中心主要分为两类,一类是CP类注册中心,另一类是AP类注册中心,Nacos属于后者,为什么会有 CP 和 AP 两种不同类型的注册中心呢?这就不得不提到分布式的一个理论:CAP理论。它是由加州大学的计算机科学家 Eric Brewer 提出,在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性)无法同时满足,正所谓“鱼和熊掌与虾不可兼得也”。

CP类注册中心更强调一致性,而AP类注册中心更强调可用性,它们之间的区别,推荐阅读阿里中间件博客的文章:《阿里巴巴为什么不用 ZooKeeper 做服务发现?》。如果你看完文章后,得到的结论是以后再也不把 Dubbo 和 Zookeeper 结合起来使用了,那么你便错了。因为,对于绝大多数公司的绝大多数系统,无论是 Dubbo + Zookeeper,还是 Dubbo + Nacos,都能够满足需求,有的公司甚至都不需要使用Dubbo,所以,一定要结合实际的业务场景来分析判断。

五、Nacos在Spring Boot中配置

引入SpringcloudAlibaba依赖

		<!-- 注册中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
            <version>2.1.1.RELEASE</version>
        </dependency>

        <!-- 配置中心 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-config-jasypt</artifactId>
            <version>2.1.1.RELEASE</version>
        </dependency>

创建一个bootstrap.yaml文件
在这里插入图片描述
在配置文件中填写nacos信息

spring:
  application:
    name: xx-xxx-service # 应用名称
  profiles:
    active: local
  cloud:
    nacos:
      server-addr: 127.0.0.1:8008 #这里填写注册服务地址
      config:
        # prefix
        file-extension: yaml
        prefix: common
        # ext配置 refresh: true支持动态刷新,各专业分别增加需要的xxx.
        ext-config:
          - data-id: xx.yaml # 配置名称
            refresh: false # 是否实时刷新
          - data-id: xx.yaml
            refresh: false
          - data-id: xx.yaml
            refresh: true
          - data-id: xx.yaml
            refresh: true
          - data-id: xx.yaml
            refresh: true
          - data-id: xx.yaml
            refresh: true
          - data-id: xx.yaml
            refresh: true
        enabled: true # 是否使用

在配置文件
在这里插入图片描述
在bootstrap.yaml中读取所配置的值
在这里插入图片描述
在自己的项目文件中如下注解
在这里插入图片描述

六、高级使用

我们在开发当中,经常会有开发,生产,测试不同的环境,那么我们命名空间新建命名空间,分别取prod,dev,test就可以了。
在这里插入图片描述
再在bootstrap.yaml文件中设置

 spring.cloud.nacos.config.namespace=9de62e44-cd2a-4a82-bf5c-95878bd5e871

其中的Id为配置空间
在这里插入图片描述
其中的每一个配置可以用在不同的空间,相当于空间是一个数据集,只是用在不同的服务中,也可以分组区别。
在这里插入图片描述
这样可以做到每个微服务,每个环境下的配置文件,还可以把不同配置类型的文件分开,比如数据库配置,mybatis配置,其他配置

  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大头程序员不头大

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值