当前位置:首页 > 服务端 > Nacos介绍与使用

Nacos介绍与使用

2022年08月04日 18:17:59服务端16

主要作用:动态更新,隔离操作,集中管理

一 背景分析

在微服务中,首先需要面对的问题就是如何查找服务(软件即服务),其次,就是如何在不同的服务之间进行通信?如何更好更方便的管理应用中的每一个服务,如何建立各个服务之间联系的纽带,由此注册中心诞生(例如淘宝网卖家提供服务,买家调用服务)。
市面上常用注册中心有Zookeeper(雅虎Apache),Eureka(Netfix),Nacos(Alibaba),Consul(Google),那他们分别都有什么特点,我们如何进行选型呢?我们主要从社区活跃度,稳定性,功能,性能等方面进行考虑即可.本次微服务的学习,我们选择Nacos,它很好的支持了阿里的双11活动,不仅可以做注册中心,还可以作为配置中心,稳定性和性能都很好.

二 Nacos概述

Nacos(DynamicNaming and Configuration Service)是一个应用于服务注册与发现、配置管理的平台。它孵化于阿里巴巴,成长于十年双十一的洪峰考验,沉淀了简单易用、稳定可靠、性能卓越的核心竞争力。其官网地址如下:

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

三 构建Nacos服务

1.准备工作

第一:确保你电脑已配置JAVA_HOME环境变量(Nacos启动时需要),例如:Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

2.第二:确保你的MySQL版本为5.7以上(MariaDB10.5以上),例如 Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

3.下载与安装 

四 数据库准备

第一步:登陆mysql

Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

第二部步  导入SQL:

source d:/nacos-mysql.sql 

执行成功以后,会创建一个nacos_config数据库,打开数据库会看到一些表,例如;

Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

第三步:

打开/conf/application.properties里打开默认配置,并基于你当前环境配置要连接的数据库,连接数据库时使用的用户名和密码(假如前面有"#"要将其去掉): 

### If use MySQL as datasource:
spring.datasource.platform=mysql

### Count of DB:
db.num=1

### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=root
db.password.0=root

五 服务启动与访问

第一步:启动Nacos服务。

Linux/Unix/Mac启动命令(standalone代表着单机模式运行,非集群模式):

./startup.sh -m standalone

Windows启动命令(standalone代表着单机模式运行,非集群模式):

startup.cmd -m standalone
 

六 说明

1)执行执行令时要么配置环境变量,要么直接在nacos/bin目录下去执行.
2)nacos启动时需要本地环境变量中配置了JAVA_HOME(对应jdk的安装目录),
3)一定要确保你连接的数据库(nacos_config)是存在的.
4)假如所有的配置都正确,还连不上,检查一下你有几个数据库(mysql,…)

七访问Nacos服务。

打开浏览器,输入http://localhost:8848/nacos地址,出现如下登陆页面:

Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

其中,默认账号密码为nacos/nacos. 

七 Nacos  关于面试的问题:

  • 为什么要将服务注册到nacos?(为了更好的查找这些服务)

  • 在Nacos中服务提供者是如何向Nacos注册中心(Registry)续约的?(5秒心跳)

  • 对于Nacos服务来讲它是如何判定服务实例的状态?(检测心跳包,15,30)

  • 服务启动时如何找到服务启动注册配置类?(NacosNamingService)

  • 服务消费方是如何调用服务提供方的服务的?(RestTemplate)

  • Nacos中的负责均衡底层是如何实现的?(通过Ribbon实现,Ribbon中定义了一些负载均衡算法,然后基于这些算法从服务实例中获取一个实例为消费方法提供服务)

  • Nacos是什么,提供了什么特性(服务的注册、发现、配置)?

  • 你为什么会选择Nacos?(活跃度、稳定、性能、学习成本)

  • Nacos的官网?(nacos.io)

  • Nacos在github的源码?(github.com/alibaba/nacos)

  • Nacos在windows环境下安装?(解压即可使用)

  • Nacos在windows中的的初步配置?(application.properties访问数据库的数据源)

  • Nacos服务注册的基本过程?(服务启动时发送web请求)

  • Nacos服务消费的基本过程?(服务启动时获取服务实例,然后调用服务)

  • Nacos服务负载均衡逻辑及设计实现?(Ribbon)

  • Nacos健康检查的方式?(基于心跳包机制进行实现)

  • Nacos是如何保证高可用的?(重试,本地缓存、集群)

八   Nacos配置服务介绍

1.添加jar包 :

  <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  </dependency>


2.修改配置文件

spring:
  application:
    name: sca-provider
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yml # Configure the data format of the content, default to properties


3.打开nacos配置中心,新建配置,如图所示

Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

 4.在ProviderController中添加一个获取日志级别(debug<info<warn<error)的方法,代码如下

@RefreshScope //动态刷新配置
@RestController
public class ProviderController{
    private static final Logger log= LoggerFactory.getLogger(ProviderApplication.class);
    @Value("${logging.level.com.cy:error}")
    private String logLevel;
    @GetMapping("/provider/doGetLogLevel")
    public String doGetLogLevel(){
       log.trace("==log.trace==");//跟踪
       log.debug("==log.debug==");//调试
       log.info("==log.info==");//常规信息
       log.warn("==log.warn==");//警告
       log.error("==log.error==");//错误信息
        return "log level is "+logLevel;
    }
    ……
}
 

注解@RetreshScope:该配置文件初始化一次属性的值(这里是改动一次,重新创建对象)

5.Nacos 配置管理模型由三部分构成,如图所示:

Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

1.Namespace:为命名空间 ,给信息一个空间,有个作用域,除了作用域就失效,进行隔离

2.Group: 分组,将若⼲个服务或者若⼲个配置集归为⼀组。

3.Service/DataId:某⼀个服务或配置集,一般对应一个配置文件。

Nacos中的命名空间一般用于配置隔离,这种命名空间的定义一般会按照环境(开发,生产等环境)进行设计和实现.我们默认创建的配置都存储到了public命名空间,如图所示:
Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

6.创建新的命名空间及克隆: 

Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

在指定命名空间下添加配置,也可以直接取配置列表中克隆,例如:

Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

此时我们修改dev命名空间中Data Id的sca-provider配置,如图所示: 

 Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

7.分组设计及实现 

当我们在指定命名空间下,按环境或服务做好了配置以后,有时还需要基于服务做分组配置

Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

配置发布以后,修改boostrap.yml配置类,在其内部指定我们刚刚创建的分组 

Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

8.共享配置设计及读取 

当同一个namespace的多个配置文件中都有相同配置时,可以对这些配置进行提取,然后存储到nacos配置中心的一个或多个指定配置文件,哪个微服务需要,就在服务的配置中设置读取即可

Nacos介绍与使用 _ JavaClub全栈架构师技术笔记

第二步:在指定的微服务配置文件(bootstrap.yml)中设置对共享配置文件的读取,例如:
见红色区域内容。

spring:
  application:
    name: nacos-config
  cloud:
    nacos:
      config:
        server-addr: localhost:8848
        # 命名空间
        namespace: 83ed55a5-1dd9-4b84-a5fe-a734e4a6ec6d
        # 分组名
        # group: DEFAULT_GROUP
        # 配置中心文件扩展名
        file-extension: yml
        # 共享配置
        shared-configs[0]:
                data-id: app-public-dev.yml
                group: DEFAULT_GROUP
                refresh: true #默认false
 

作者:没伞的孩子努力奔跑
来源链接:https://blog.csdn.net/weixin_49591538/article/details/119742997

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/server/17273.html

标签: Nacos
分享给朋友:

“Nacos介绍与使用” 的相关文章

Nacos数据库配置

Nacos数据库配置

本文来说下nacos数据库配置 文章目录 Nacos控制面板,新建配置 Nacos数据库配置 初始化mysql 修改配置文件 本文小结...

windows下安装nacos

windows下安装nacos

1、下载 下载地址:https://github.com/alibaba/nacos/releases/tag/1.1.0 选择这个zip下载。 下载完毕后我们可以看看目录结构: 这里的bin目录里面有windows启动文件startup.cmd,...

什么是Nacos

前言 6月份阿里开源的Nacos出了1.0.1版本,从去年7月份第一个release版本到现在一直在默默关注 官方的版本规划为:Nacos从0.8.0开始支持生产可用,1.0版本可大规模生产可用,2.0版本接入k8s、SpringCloud、...

nacos —— 控制台默认用户名密码

一、引言 最近疫情比较严重,小伙伴就老老实实呆在家办公吧~~ 新的一年小编近几个月比较忙,所以博客更新的比较慢,但是工作还是得继续呀。 新年的第一篇博客,新年快乐、新年快乐、新年快乐。 二、默认密码 新的一年第一个礼拜小编在家办公,接触了一个新的项目...

nacos LINUX 启动

nacos  sh startup.sh -m standalone 作者:cai_code 来源链接:https://blog.csdn.net/gaoduicai/article/details/122742762...

nacos配置中心无法连接或启动报错

nacos配置中心无法连接或启动报错

如果你启动后是下面这样的,那就说明你连接上了,并且红框中最右边的name就是你在配置中心里的DataId 如果你启动后没有上面那样或者是报错,并且你的代码没问题,那最有可能就是版本不兼容,可以参考下面的版本 <parent>...

Nacos修改默认密码

1.添加依赖 <dependency> <groupId>org.springframework.security</groupId> <artifactId>spring-s...

Nacos入门基础

Nacos入门基础

一、Nacos 1、基本概念 (1) Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助...

ubuntu安装nacos

ubuntu安装nacos

1.下载nacos,github下载地址:https://github.com/alibaba/nacos/releases 选用目前最新的版本:1.3.0,这个版本直接在页面就可以修改nacos登录密码,并且还可以创建其他的登录用户,之前用过1.0.0版本如果修改naco...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。