微服务SpringCloud Alibaba组件nacos教程【详解naocs基础使用、服务中心配置、集群配置,附有案例+示例代码】

一.Nacos教程

文章目录

  • 一.Nacos教程
    • 1.1 Nacos简介
    • 1.2 nacos基本使用
      • 直接下载打包服务
      • 源码方式启动
    • 1.3 创建nacos客服端
    • 1.4 nacos集群配置
    • 1.5 nacos配置中心

1.1 Nacos简介

nacos是spring cloud alibaba生态中非常重要的一个组件,它有两个作用:

  • 1:注册与发现中心;
  • 2:配置中心

nacos有注册中心的作用,我们常见的配置中心还有zk和eureka

官网:https://nacos.io/zh-cn/index.html

微服务CAP原则:

  • C(consistency):一致性,同一时刻的同一请求的实列返回结果相同,属于强一致性,也就是说,在集群环境中,对外提供的服务的信息是完全一致的,但是在下效率上可能会有一定的损耗。
  • A(availability): 可用性,所有实列的读写请求在一定时间内可以得到正确的响应,它是弱一致性,可能在极短的时间内,不同实列获取到的信息是不一致的。但是服务可用并且最终数据是一致的;
  • P(Partition tolerance): 分区容错性,在网络异常的情况下,仍能够提供正常的响应,这是微服务系统中必要保证的。

在这里插入图片描述

nacos在启动时,默认是AP模式,可以通过指令将nacos变为CP模式,在我们经常使用的微服务中,我们是选择使用AP模式的,此时的所有实例都属于临时实例。临时实例和持久实例最显著的区别就是在健康检查发现服务有问题时,持久实例被标注为不健康,而临时实例会直接剔除。

1.2 nacos基本使用

nacos大体分为两部分:nacos服务端和nacos客户端,首先是nacos服务端 ,这一部分是不需要做任何改动,直接启动服务即可。有两种方式,一种是直接下载打包好的服务,直接通过命令运行即可;一种是下载nacos源码,然后进行启动(nacos是普通的spring boot项目)。

直接下载打包服务

第一步,去nacos官网下载对应环境的服务端项目,下载地址是:Releases · alibaba/nacos ·GitHub,但是需要注意一点,目前在nacos官网(Nacos 快速开始)中,推荐使用的nacos版本是2.0.3

在这里插入图片描述

下载完毕以后进行解压(不要有中文路径),进入到bin目录

在这里插入图片描述

命令启动:

.\startup.cmd -m standalone 后缀standalone指的是以单例的方式进行启动

也可以新建记事本如start.txt,将上述命令复制在记事本中,保存,然后将txt后缀改成.bat后缀。下次启动时直接双击start.bat文件即可。

在这里插入图片描述

在这里插入图片描述

浏览器访问该地址:

在这里插入图片描述

注意:登录账号密码为 nacos/nacos

源码方式启动

略 (繁琐)

1.3 创建nacos客服端

idea创建springboot项目。最外层cloud-alibaba-test02为普通的maven项目,bill-consumer-7790,bill-provider-7780为普通的spring boot项目。(分布式)
在这里插入图片描述

【引入依赖】

在这里插入图片描述

 <spring-cloud-alibaba.version>
   2021.0.5.0
 </spring-cloud-alibaba.version>


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

【启动类添加注解】

@EnableDiscoveryClient // 开启nacos服务发现功能

【application.yml进行配置】

server:
  port: 7780

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
    username: xxxx
    password: xxxx
  application:
    name: bill-provider #注册中心注册服务名称
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
server:
  port: 7790

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
    username: xxxx
    password: xxxx
  application:
    name: bill-consumer #注册中心注册服务名称
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

分别启动bill-consumer-7790,bill-provider-7780

在这里插入图片描述

在这里插入图片描述

alibaba与boot对应版本

在这里插入图片描述

1.4 nacos集群配置

Nacos集群默认最小要有三个节点,而且三个节点的配置中心的数据都需要存储在MySQL数据库中。

在MySql数据库中,创建数据库nacos_conf,并在nacos的conf目录下找到nacos-mysql.sql文件导入数据库

在这里插入图片描述

在这里插入图片描述

修改application.properties文件,打开数据库连接并修改连接信息

在这里插入图片描述

在这里插入图片描述

在conf目录下,修改文件名cluster.conf.example为cluster.conf

在这里插入图片描述

编辑cluster.conf文件信息如下: IP(可使用ipconfig查看自己的IP地址)+端口号

在这里插入图片描述

复制nacos文件夹复制两份(nacos最小3个节点)

在这里插入图片描述

修改nacos2.0.3_2端口为8858,修改nacos2.0.3_3端口为8868

依次启动nacos2.0.3_1,nacos2.0.3_2,nacos2.0.3_3

进入bin目录下,双击启动startup.cmd (默认以集群模式启动)

在这里插入图片描述

访问:http://192.168.137.1:8868/nacos/index.html

在这里插入图片描述

启动bill-7780-provider

在这里插入图片描述

在这里插入图片描述

可以看到在8868端口号下,bill-peoviderd服务能注册成功,此时bill-7780-provider对应的端口号的是8848。

在这里插入图片描述

1.5 nacos配置中心

nacos同spring-cloud-config一样,可以作为一个配置中心,统一的来管理配置,可以配置多套环境,各个微服务可以按需到nacos配置中心拉取相关配置,且支持动态刷新@RefreshScope

1.进入nacos控制台创建命名空间

注意:命名空间以后在开发中可以区分为 开发、测试、生产 等环境。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.在cs命名空间下 创建yaml文件

在这里插入图片描述

在这里插入图片描述

然后点击发布,返回。

在这里插入图片描述

在这里插入图片描述

以bill-provider-7781项目演示:(单节点演示)

引入依赖

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

<!--开启Spring Cloud 应用程序启动时加载bootstrap配置文件-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>
              spring-cloud-starter-bootstrap
             </artifactId>
            <version>3.1.4</version>
        </dependency>

【创建bootstrap.yml】

#读取nacos配置中心文件
server:
  port: 7781

spring:
  application:
    name: bill-provider #注册中心注册服务名称
  profiles:
    active: dev
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        username: nacos
        password: nacos
      config: #配置中心 配置文件
        server-addr: 127.0.0.1:8848
        file-extension: yml
        group: DEFAULT_GROUP
        namespace: e301628f-59ab-4c01-b484-f72ca5f567f9



注意: 使用nacos作为配置中心时,需要创建一个bootstrap.yaml

application.yaml两个配置文件,bootstrap.yaml的优先级高于

application.yaml,加载时实现加载bootstrap.yaml中的相关配置

在这里插入图片描述

在这里插入图片描述

测试一:

在这里插入图片描述

运行成功说明服务中心的配置文件读取成功,否则会报数据库连接失败。

测试二:

在这里插入图片描述

在这里插入图片描述

@RestController
@RefreshScope //动态刷新
public class NacosConfigController {

    @Value("${mysqlname}")
    private String mysqlname;

    @RequestMapping("/show")
    public String show() {
        return mysqlname;
    }
}

此时如果将nacos关闭,再启动,命名空间cs会丢失。所以持久化(同集群方式一样)。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/970176.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2024年终总结和2025年规划

2024年的主线是AI基础的学习和读书&#xff0c;虽然AI学习花费了更多的时间&#xff0c;但是读书长久看来于我是更重要的事情&#xff0c;哈哈哈&#xff0c;因此先简单回顾一下读书记忆&#xff0c;回顾我的2024&#xff0c;再展望一下我的2025. 我的2024年记忆 读万卷书&am…

实时云渲染:驱动XR技术产业化腾飞的核心引擎

在科技飞速发展的当下&#xff0c;扩展现实&#xff08;XR&#xff09;技术正以前所未有的速度融入人们的生活与工作&#xff0c;为用户打造出沉浸式逼真的虚拟环境。据知名XR媒体XR Today的最新数据显示&#xff0c;2024年全球XR市场规模已突破500亿美元&#xff0c;预计到202…

【AI编程】体验a0.dev:专为移动端app的对话式AI编程工具

摘要 体验专为移动端APP开发的AI编程工具 a0.dev&#xff0c;并附上实践过程和价格说明 体验a0.dev&#xff1a;专为移动端app的对话式AI编程工具 最近在探索新的AI编程工具时&#xff0c;发现了a0.dev&#xff0c;一个专注于移动端应用开发的对话式AI编程工具。今天就和大家分…

基于若依开发的工程项目管系统开源免费,用于工程项目投标、进度及成本管理的OA 办公开源系统,非常出色!

一、简介 今天给大家推荐一个基于 RuoYi-Flowable-Plus 框架二次开发的开源工程项目管理系统&#xff0c;专为工程项目的投标管理、项目进度控制、成本管理以及 OA 办公需求设计。 该项目结合了 Spring Boot、Mybatis、Vue 和 ElementUI 等技术栈&#xff0c;提供了丰富的功能…

数据库数据恢复—MongoDB丢失_mdb_catalog.wt文件导致报错的数据恢复案例

MongoDB数据库存储模式为文档数据存储库&#xff0c;存储方式是将文档存储在集合之中。 MongoDB数据库是开源数据库&#xff0c;同时提供具有附加功能的商业版本。 MongoDB中的数据是以键值对(key-value pairs)的形式显示的。在模式设计上&#xff0c;数据库受到的约束更少。这…

小米 R3G 路由器(Pandavan)实现网络打印机功能

小米 R3G 路由器&#xff08;Pandavan&#xff09;实现网络打印机功能 一、前言 家中有多台 PC 设备需要打印服务&#xff0c;但苦于家中的 Epson L380 打印机没有网络打印功能&#xff0c;并且配置 Windows 共享打印机实在是过于繁琐且需要共享机保持唤醒状态过于费电。想到…

笔记8——模式匹配 match语句(仅在Python 3.10及以上版本中可用)

文章目录 模式匹配 match语句(仅在 Python 3.10及以上版本 中可用)基本语法基本匹配操作应用场景 模式匹配 match语句(仅在 Python 3.10及以上版本 中可用) Python 3.10 及以上版本中才引入了 match 语句用于简化复杂的条件判断和数据解构&#xff1b;类似于其他语言中的 swit…

Edge浏览器清理主页

我们都知道&#xff0c;Microsoft Edge浏览器是微软创造的搜索浏览器&#xff0c;Windows10、11自带。但是你可以看到&#xff0c;每次你打开Edge浏览器的时候都可以看到许多的广告&#xff0c;如图&#xff1a; 导致打开Edge浏览器的时候会遭受卡顿&#xff0c;广告骚扰&#…

JVM类加载和垃圾回收(详细)

文章目录 JVM介绍JDK/JRE/JVM的关系 内存结构堆程序计数器虚拟机栈本地方法栈本地内存 类文件字节码文件结构 类加载类的生命周期加载类加载器双亲委派模型 链接初始化类卸载 垃圾回收堆空间的基本结构内存分配和回收原则死亡对象判断方法垃圾收集算法垃圾收集器 JVM 介绍 JD…

算法——结合实例了解深度优先搜索(DFS)

一&#xff0c;深度优先搜索&#xff08;DFS&#xff09;详解 DFS是什么&#xff1f; 深度优先搜索&#xff08;Depth-First Search&#xff0c;DFS&#xff09;是一种用于遍历或搜索树、图的算法。其核心思想是尽可能深地探索分支&#xff0c;直到无法继续时回溯到上一个节点…

[c语言日寄]在不完全递增序中查找特定要素

【作者主页】siy2333 【专栏介绍】⌈c语言日寄⌋&#xff1a;这是一个专注于C语言刷题的专栏&#xff0c;精选题目&#xff0c;搭配详细题解、拓展算法。从基础语法到复杂算法&#xff0c;题目涉及的知识点全面覆盖&#xff0c;助力你系统提升。无论你是初学者&#xff0c;还是…

计算机视觉-局部特征

一、局部特征 1.1全景拼接 先用RANSAC估计出变换&#xff0c;就可以拼接两张图片 ①提取特征 ②匹配特征 ③拼接图像 1.2 点的特征 怎么找到对应点&#xff1f;&#xff08;才能做点对应关系RANSAC&#xff09; &#xff1a;特征检测 我们希望找到的点具有的特征有什么特…

实践记录-NAS入手前后的记录-关于设备选型的练习

快速回顾 知道nas是干啥的不&#xff0c;你买这东西准备干啥&#xff1f;你准备花多少预算啊&#xff1f;在配置性能/价格/需求之间做个取舍和平衡&#xff1b;看看设备到底怎么样&#xff1f;入手体验如何&#xff1f; 参考来源 服务器和网络设备的技术方案设计和设备选型的…

机器学习 - 词袋模型(Bag of Words)实现文本情感分类的详细示例

为了简单直观的理解模型训练&#xff0c;我这里搜集了两个简单的实现文本情感分类的例子&#xff0c;第一个例子基于朴素贝叶斯分类器&#xff0c;第二个例子基于逻辑回归&#xff0c;通过这两个例子&#xff0c;掌握词袋模型&#xff08;Bag of Words&#xff09;实现文本情感…

评估多智能体协作网络(MACNET)的性能:COT和AUTOGPT基线方法

评估多智能体协作网络(MACNET)的性能 方法选择:选择COT(思维链,Chain of Thought)、AUTOGPT等作为基线方法。 COT是一种通过在推理过程中生成中间推理步骤,来增强语言模型推理能力的方法,能让模型更好地处理复杂问题,比如在数学问题求解中,展示解题步骤。 AUTOGPT则是…

服务器中部署大模型DeepSeek-R1 | 本地部署DeepSeek-R1大模型 | deepseek-r1部署详细教程

0. 部署前的准备 首先我们需要足够算力的机器&#xff0c;这里我在vultr中租了有一张A16显卡一共16GB显存的服务器作为演示。部署的模型参数为14b的。如果需要部署满血版本671b的&#xff0c;需要更大的算力支持&#xff0c;这里由于是个人资金有限&#xff0c;就演示14b的部署…

chrome://version/

浏览器输入&#xff1a; chrome://version/ Google浏览器版本号以及安装路径 Google Chrome131.0.6778.205 (正式版本) &#xff08;64 位&#xff09; (cohort: Stable) 修订版本81b36b9535e3e3b610a52df3da48cd81362ec860-refs/branch-heads/6778_155{#8}操作系统Windows…

web集群(LVS-DR)

LVS是Linux Virtual Server的简称&#xff0c;也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项 目&#xff0c;它的官方站点是 www.linuxvirtualserver.org。现在LVS已经是 Linux标准内核的一部分&#xff0c;在 Linux2.4内核以前&#xff0c;使用LVS时必须要重新编…

Python+appium实现自动化测试

目录 一、工具与环境准备 二、开始测试 1、插上手机&#xff0c;打开usb调试&#xff0c;选中文件传输&#xff0c;我这里用华为手机为例 2、启动Appium Server GUI​编辑 3、启动 Inspector Session 4、录制脚本 使用Python和Appium进行自动化测试是一种常见的移动应用…

光谱相机在天文学领域的应用

天体成分分析 恒星成分研究&#xff1a;恒星的光谱包含了其大气中各种元素的吸收和发射线特征。通过光谱相机精确测量这些谱线&#xff0c;天文学家能确定恒星大气中氢、氦、碳、氮、氧等元素的含量。如对太阳的光谱分析发现&#xff0c;太阳大气中氢元素占比约 71%&#xff0…