Nacos学习

Nacos是一个全面的微服务管理工具,它提供了服务发现、配置管理和DNS服务。通过简单的配置,可以将服务注册到Nacos,并通过其图形化界面管理。Nacos支持动态配置,允许在运行时更新服务配置,且具备高可用性和灵活性。相较于其他注册中心如Zookeeper和Eureka,Nacos功能更丰富,社区活跃,是微服务架构的理想选择。
摘要由CSDN通过智能技术生成

什么是nacos

Nacos 支持基于 DNS 和基于 RPC 的服务发现(可以作为springcloud的注册中心)、动态配置服务(可以做配置中心)、动态 DNS 服务。

官方介绍是这样的:

Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。

nacos作为注册中心

1.先在官网上下载nacos中间件 下面教程有启动步骤

https://nacos.io/zh-cn/docs/quick-start.html

程序启动默认占用的端口是8848(珠穆朗玛峰的高度),我们可以对端口进行修改,用编辑器打开bin目录下的startup.cmd文件 添加一行代码

set "JAVA_OPT=%JAVA_OPT% --server.port=9090

端口号就改成9090了,如图1所示: 

还可以在conf文件下的application.properties中添加

server.port=9090

 来修改端口,也可以在该文件下指定数据源,方法和springboot中配置一样(单机模式模式下默认连接的是javaDB),该文件夹下 nacos-logback.xml自然是修改nacos日志输出规则的。

启动后访问下面这个地址:

http://127.0.0.1:8848/nacos

默认用户名、密码:nacos

这个配置管理项便是nacos的注册中心服务端了,下面还有一个服务管理,是nacos注册中心 图形化界面的服务端,以后做介绍。启动成功后我们就可以开始写我们的java代码了。

先新建一个springboot项目,在pom添加如下依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-nacos-config</artifactId>
    <version>2.1.1.RELEASE</version>
</dependency>

在resource目录下加入application.yml文件 并添加配置中心相关信息

server:
  # 端口
  port: 8080
spring:
  application:
    # 应用名
    name: test-server

  cloud:
    nacos:
      #nacos 服务地址
      server-addr: nacos服务ip:8848

相应的application.properties的内容写到配置中心里面去

在项目启动时就会去配置中心去读取配置信息(本地的配置文件application.properties还能用,但优先级低于配置中心的配置)
如果你不想用nacos提供的控制台,nacos也提供了java开发服务端的sdk和api,我们可以用sdk开发配置中心服务端,用java代码去操作配置中心,sdk的文档可参看官方文档。

为什么要用nacos

在这里插入图片描述

功能优势

Nacos = 注册中心 + 配置中心。

nacos社区非常活跃,最近也比较高产,Nacos功能和需求列表可以看到目前nacos的功能以及规划排期的功能

历史原因

市场上的注册中心(eureka、zookeeper、consul等)出现比较早,nacos都是从前者参考后做出来,比前者更加丰富。 

主流产品对比

在nacos之前,我们一般会选择zookeeper、eureka、consul等,nacos出来之后,会逐渐迁移到nacos(身边的小伙伴已经陆陆续续地切换到nacos去了),这也会是一个大的趋势。 

  • zookeeper是基于CP模型,leader+follower,leader写,同步到follower,follower可以读,保证顺序一致性,就是基本尽量保证到数据一致(弱一致),主动进行数据同步。当leader崩溃的时候,为了保证数据一致性,尽量减少读到不一致的数据的情况,这时候会进行选举,以及做数据同步,但是集群会短暂的不可用。
  • eureka是基于AP模型,peer-to-peer,每个节点能写也能读,每个节点都要同步给其他节点,不过是异步同步,所以随时读任意一个节点时都有可能读到不一样的数据,任何一个节点宕机,其他节点不会受到影响,都能正常工作,极高可用性,但是数据一致性太弱。
  • Consul基于raft算法的CP模型
  • Nacos基于raft算法的CP模型,同时也支持配置成类似eureka的AP模型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sunyanchun

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

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

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

打赏作者

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

抵扣说明:

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

余额充值