SpringCloud Alibaba Nacos 服务治理中心

一、什么是Nacos?

英文全称Dynamic Naming and Configuration Service,Na为naming/nameServer即注册中心,co为configuration即注册中心,service是指该注册/配置中心都是以服务为核心。服务在nacos是一等公民

二、Nacos能干吗?

Nacos根据官网介绍致力于发现、配置和管理微服务。Nacos既能作为SpringCloud中的Erueka组件又能作为SpringCloud中的Config组件并且Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

三、Nacos关键特性

Nacos 支持基于 DNS 和基于 RPC 的服务发现。

  • 服务发现和服务健康监测
  • 动态配置服务
  • 动态 DNS 服务
  • 服务及其元数据管理
四、Nacos中的基本概念

服务:通过预定义接口网络访问的提供给客户端的软件功能。

配置:在系统开发过程中,开发者通常会将一些需要变更的参数、变量等从代码中分离出来独立管理,以独立的配置文件的形式存在。目的是让静态的系统工件或者交付物(如 WAR,JAR 包等)更好地和实际的物理运行环境进行适配。配置管理一般包含在系统部署的过程中,由系统管理员或者运维人员完成。配置变更是调整系统运行时的行为的有效手段。

命名空间:用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。Namespace 的常用场景之一是不同环境的配置的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。

服务注册中心:存储服务实例和服务负载均衡策略的数据库。

服务发现: 在计算机网络上,(通常使用服务名)对服务下的实例的地址和元数据进行探测,并以预先定义的接口提供给客户端进行查询。

五、如何安装部署Nacos?

通过官方直接下载发布版本:https://github.com/alibaba/nacos/releases/download/1.1.0/nacos-server-1.1.0.tar.gz解压即可运行

这里通过源码编译形式进行安装,也可以直接在官网发布版本中找到适应的版本进行使用。

由于我这里访问github网络不行所以就直接在码云拉源码了。

git clone https://gitee.com/mirrors/Nacos.git

后面脚手架使用的全部版本是 1.1.0版本所有我这里切换对应版本进行打包

#切换到1.1.0标签
git checkout 1.1.0
#进入Nacos目录,进行打包
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
#打包好后Nacos\distribution\target目录中会出现一个zip和tar
#nacos-server-1.1.0.tar.gz
#nacos-server-1.1.0.zip

我这里直接使用zip压缩包在windows环境下进行使用,解压后目录如下

bin 存放可执行脚本
conf 运行时的配置
plugins 插件
target 打包后的jar包

windows环境下运行bin目录下的startup.cmd即可,等待启动完成后访问:http://localhost:8848/nacos

如果使用Linux系统运行则 sh startup.sh -m standalone代表着单机模式运行。

默认登陆账号与密码为:nacos\nacos登陆后页面展示如下

SpringCloud Alibaba Nacos 服务治理中心

配置管理则是我们在程序中使用的配置如SpringBoot读取的properties都可以存放在这里。

服务管理根据名字就清楚是对注册到Nacos上的服务进行管理的功能啦。

集群管理则指是Nacos集群而不是应用程序集群。

命名空间是此做多环境以及多租户(多个用户共同使用nacos)数据(配置和服务)隔离的,相当于SpringBoot 配置文件中的spring.profiles。

六、Nacos数据持久化

当我们使用默认配置启动Nacos时,所有配置文件都被Nacos保存在了内置的数据库中。

在0.7版本之前,在单机模式时nacos使用嵌入式数据库实现数据的存储,不方便观察数据存储的基本情况。0.7版本增加了支持mysql数据源能力;如果使用内嵌数据库,注定会有存储上限,且无法移植。

在Nacos的conf目录下nacos-mysql.sql创建一个数据库运行脚本,然后在application.properties增加以下配置:

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=123456

然后创建的配置会持久化到配置的数据库中。

Nacos注册中心/配置中心二合一我觉得非常好用,比起SpringCloud 需要Eureka于Config两个服务。不过二合一也并非优点,打个简单的比方在不需要配置中心的情况下Nacos的配置管理就显得多余了。

Original: https://www.cnblogs.com/SimpleWu/p/13578818.html
Author: 日落西风又在吹
Title: SpringCloud Alibaba Nacos 服务治理中心

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/572352/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Mybatisi和Spring整合源码分析

    一、MybatisSpring的使用 1.创建 Maven 工程。 2.添加依赖,代码如下 org.mybatis mybatis 3.5.7-ybe org.mybatis my…

    Java 2023年6月13日
    093
  • java如何快速创建List

    几个快速添加list的方法 1. 使用Collections.addAll()方法,前提还是需要手动 new ArrayList html;gutter:true; ArrayLi…

    Java 2023年5月29日
    076
  • git没有提交的代码如何迁移到新建分支

    在接到需求以后,直接在master上开发了,到提交的时候才想起来忘记新建版本分支了,直接提交到master会影响到其他人。这时候就想着将本地编辑的代码,没有提交的代码暂存起来,然后…

    Java 2023年6月8日
    091
  • nginx location配置详细解释

    【原文链接】:https://blog.tecchen.xyz ,博文同步发布到博客园。由于精力有限,对文章的更新可能不能及时同步,请点击上面的原文链接访问最新内容。欢迎访问我的个…

    Java 2023年6月6日
    077
  • Redis之quicklist源码分析

    一、quicklist简介 Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。 一个列表最多可以包含 232 &#8211…

    Java 2023年6月6日
    088
  • 高并发下比AtomicLong性能更好的LongAdder

    前言 JDK1.8相对之前版本做了很多多线程性能方面的优化,今天来看看AtomicLong和LongAdder(1.8新增),这两个类都是可以对一个Long数值进行原子类的操作增加…

    Java 2023年6月7日
    083
  • 谈谈对不同I/O模型的理解 (阻塞/非阻塞IO,同步/异步IO)

    一、关于I/O模型的问题 最近通过对ucore操作系统的学习,让我打开了操作系统内核这一黑盒子,与之前所学知识结合起来,解答了长久以来困扰我的关于I/O的一些问题。 1. 为什么r…

    Java 2023年6月8日
    084
  • macOs 安装了最新版的JDK怎么JDK 1.6

    因公司项目使用多个版本的JDK编译,MacOS在安装了高版本的JDK后还需要再安装低版本的JDK ,此时安装低版本的JDK 系统提示已经安装了更高版本 解决办法: 1.挂载安装文件…

    Java 2023年5月30日
    064
  • springmvc笔记

    一、MVC的定义 Model:数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或JavaBean组件(包含数据和行为),不过现在一般都分离开来:Value Obj…

    Java 2023年6月7日
    081
  • 技能篇:linux服务性能问题排查及jvm调优思路

    只要业务逻辑代码写正确,处理好业务状态在多线程的并发问题,很少会有调优方面的需求。最多就是在性能监控平台发现某些接口的调用耗时偏高,然后再发现某一SQL或第三方接口执行超时之类的。…

    Java 2023年6月5日
    092
  • LeetCode剑指Offer刷题总结(二)

    LeetCode过程中值得反思的细节(二) 本周10道题,此栏目将每周定期更新。题号为LeetCode剑指Offer题库中的题号。 剪绳子14 这道题需要思考剪绳子的过程 publ…

    Java 2023年6月7日
    091
  • 最近有个朋友的需求,用油猴写了一个插件,可以看五学教育(wuxuejiaoyu.cn)的网课

    湖南环境生物职业技术学院 ,就是以前的湖南生物机电学校,成人高考需要看网课,问我有没有办法.我写了一个油猴插件,一天时间差不多把网课和考试都搞完了…..油猴还真的不错,…

    Java 2023年6月9日
    069
  • java 的多态 学习理解

    Father a = new Son(); 子类的实例引用 可以 无障碍 赋给 超类的对象变量; 可调用的方法: 以对象变量a 为例, a 能调用的方法 主要看 左边 的类型 里有…

    Java 2023年6月13日
    088
  • RabbitMQ

    一.MQ的相关概念 什么是MQ? Message Queue,消息队列。简单的来说,就是一个先进先出的队列,用来发送消息(信息)。 为什么要用 MQ? 流量消峰:在电商系统中,比如…

    Java 2023年6月7日
    082
  • 哪有什么引用传递,所有都是值传递

    经常看到有人说什么值传递、引用传递,其实都是值传递,区别不过是传的值的类型罢了。 传值方式 java传值有且只有一种方式,将参数的”值”复制后传入,这个&#…

    Java 2023年6月9日
    075
  • Windows下IDEA run能运行springboot,java -jar maven打的包拉有中文的nacos配置,报org.yaml.snakeyaml.error.YAMLException错误解决

    该问题主要是因为maven打包时没有使用utf-8编码格式,解决方案如下: 在springboot打包插件中增加打包编码配置: <configuration> <…

    Java 2023年5月29日
    099
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球