微服务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: 7780spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNullusername: xxxxpassword: xxxxapplication:name: bill-provider #注册中心注册服务名称cloud:nacos:discovery:server-addr: 127.0.0.1:8848
server:port: 7790spring:datasource:driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://localhost:3306/smbms?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNullusername: xxxxpassword: xxxxapplication: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: 7781spring:application:name: bill-provider #注册中心注册服务名称profiles:active: devcloud:nacos:discovery:server-addr: 127.0.0.1:8848username: nacospassword: nacosconfig: #配置中心 配置文件server-addr: 127.0.0.1:8848file-extension: ymlgroup: DEFAULT_GROUPnamespace: 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会丢失。所以持久化(同集群方式一样)。

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在 Navicat 17 中扩展 PostgreSQL 数据类型 - 范围类型

范围类型 PostgreSQL 是市场上最灵活的数据库之一&#xff0c;这已不是什么秘密。事实上&#xff0c;PostgreSQL 的可扩展性和丰富的功能集使 PostgreSQL 近期已超越 MySQL&#xff0c;成为最受开发人员推崇和最受欢迎的数据库系统。在这个使用 Navicat Premium 17 在 Postgre…

内容测试2

备注&#xff1a; 在7月10日记录之前遇到的问题及解决方法: 一&#xff1a;常见的访问问题&#xff1a; 403 Forbidden&#xff1a;&#xff08;未有请求权限&#xff09; 表示服务器理解请求但是拒绝执行它。这通常是由于服务器上的文件或资源没有正确的读、写或执行权限&…

安川伺服控制器MP系列优势特点及行业应用

在工业自动化领域&#xff0c;运动控制器的性能直接决定了设备的精度、效率和可靠性。作为全球领先的运动控制品牌&#xff0c;安川电机伺服控制器凭借其卓越的技术优势和广泛的应用场景&#xff0c;正在为智能制造注入强劲动力&#xff01; MP3100&#xff1a;主板型运动控制…

kafka生产端之架构及工作原理

文章目录 整体架构元数据更新 整体架构 消息在真正发往Kafka之前&#xff0c;有可能需要经历拦截器&#xff08;Interceptor&#xff09;、序列化器&#xff08;Serializer&#xff09;和分区器&#xff08;Partitioner&#xff09;等一系列的作用&#xff0c;那么在此之后又会…

二、交换机的vlan子设备接入

一、交换机的vlan设置-CSDN博客 二、交换机的vlan子设备接入-CSDN博客 接上篇的文章&#xff0c;本文接入了子设备 网络结构如下&#xff1a; 用路由器A和POE交换机B代替第一篇中的笔记本电脑&#xff0c;路由器A和交换机B都关闭DHCP服务&#xff0c;并分别接入一个IPC&#…

DedeBIZ系统审计小结

之前简单审计过DedeBIZ系统&#xff0c;网上还没有对这个系统的漏洞有过详尽的分析&#xff0c;于是重新审计并总结文章&#xff0c;记录下自己审计的过程。 https://github.com/DedeBIZ/DedeV6/archive/refs/tags/6.2.10.zip &#x1f4cc;DedeBIZ 系统并非基于 MVC 框架&…

C语言基本概念————讨论sqrt()和pow()函数与整数的关系

本文来源&#xff1a;C语言基本概念——讨论sqrt()和pow()函数与整数的关系. C语言基本概念——sqrt和pow函数与整数的关系 1. 使用sqrt()是否可以得到完全平方数的精确的整数平方根1.1 完全平方数的计算结果是否精确&#xff1f;1.2 为什么不会出现误差&#xff08;如 1.99999…

浏览器自动化与AI Agent结合项目browser-use初探

browser-use介绍 browser-use是将您的 AI 代理连接到浏览器的最简单方式。它通过提供一个强大且简单的接口来实现 AI 代理访问网站的自动化。 GitHub地址&#xff1a;https://github.com/browser-use/browser-use。目前已经获得了27.3k颗stars&#xff0c;2.7kforks&#xff…

阿里云 DeepSeek 模型部署与使用技术评测

引言 随着人工智能技术的不断发展&#xff0c;越来越多的企业和个人开始探索如何利用深度学习模型来提升业务效率和用户体验。阿里云推出的【零门槛、轻松部署您的专属 DeepSeek 模型】解决方案为用户提供了多种便捷的部署方式&#xff0c;包括基于百炼 API 调用满血版、基于人…

第二天:工具的使用

每天上午9点左右更新一到两篇文章到专栏《Python爬虫训练营》中&#xff0c;对于爬虫有兴趣的伙伴可以订阅专栏一起学习&#xff0c;完全免费。 键盘为桨&#xff0c;代码作帆。这趟为期30天左右的Python爬虫特训即将启航&#xff0c;每日解锁新海域&#xff1a;从Requests库的…

vue项目 Axios创建拦截器

Axios 1. Axios 和 Ajax 简介2. Axios 和 Ajax 的区别3. 从 按钮 到 Axios请求后端接口的 大致顺序 1. Axios 和 Ajax 简介 Ajax&#xff08;Asynchronous JavaScript and XML&#xff09; 不是一种技术&#xff0c;而是一个编程技术概念&#xff0c;核心是通过 XMLHttpReques…

windows + visual studio 2019 使用cmake 编译构建静、动态库并调用详解

环境 windows visual studio 2019 visual studio 2019创建cmake工程 1. 静态库.lib 1.1 静态库编译生成 以下是我创建的cmake工程文件结构&#xff0c;只关注高亮文件夹部分 libout 存放编译生成的.lib文件libsrc 存放编译用的源代码和头文件CMakeLists.txt 此次编译CMak…

通过 VBA 在 Excel 中自动提取拼音首字母

在excel里面把表格里的中文提取拼音大写缩写怎么弄 在Excel中&#xff0c;如果你想提取表格中的中文字符并转换为拼音大写缩写&#xff08;即每个汉字的拼音首字母的大写形式&#xff09;&#xff0c;可以通过以下步骤来实现。这项工作可以分为两个主要部分&#xff1a; 提取拼…

通过环境变量实现多个 python 版本的自由切换以及 Conda 虚拟环境的使用教程

目录 Python 安装包的下载和安装通过环境变量的方式来切换不同的 Python 版本Pycharm 创建项目使用虚拟环境 使用虚拟环境管理工具 condaConda 教程1. **环境管理**创建虚拟环境激活虚拟环境退出虚拟环境列出所有虚拟环境删除虚拟环境导出虚拟环境配置从文件创建虚拟环境 2. **…

排序算法详解、应用对比与C语言实现

四种经典排序算法详解&#xff08;原理动图代码&#xff09; 一、排序算法的重要性 排序算法是计算机科学领域最基础的算法之一&#xff0c;在数据库索引、搜索引擎优化、大数据分析等领域有广泛应用。根据Stack Overflow 2022开发者调查&#xff0c;超过83%的面试会考察算法…

Python基于Django的微博热搜、微博舆论可视化系统(V3.0)【附源码】

博主介绍&#xff1a;✌Java老徐、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;&…

网络安全ids是什么意思

1、 简述IPS和IDS的异同点&#xff1b; 入侵检测系统&#xff08;IDS&#xff09; IDS&#xff08;Intrusion Detection Systems&#xff0c;入侵检测系统&#xff09;&#xff0c;专业上讲就是依照一定的安全策略&#xff0c;对网络、系统、运行状况进行监视&#xff0c;尽可能…

JVM春招快速学习指南

1.说在前面 在Java相关岗位的春/秋招面试过程中&#xff0c;JVM的学习是必不可少的。本文主要是通过《深入理解Java虚拟机》第三版来介绍JVM的学习路线和方法&#xff0c;并对没有过JVM基础的给出阅读和学习建议&#xff0c;尽可能更加快速高效的进行JVM的学习与秋招面试的备战…

json格式,curl命令,及轻量化处理工具

一. JSON格式 JSON&#xff08;JavaScript Object Notation&#xff09; 是一种轻量级的数据交换格式。它基于一个子集的JavaScript编程语言&#xff0c;使用人类易于阅读的文本格式来存储和表示数据。尽管名字中有“JavaScript”&#xff0c;但JSON是语言无关的&#xff0c;几…

echarts 3d中国地图飞行线

一、3D中国地图 1. 一定要使用 echarts 5.0及以上的版本; 2. echarts 5.0没有内置中国地图了。点击下载 china.json&#xff1b; 3. 一共使用了四层地图。 &#xff08;1&#xff09;第一层是中国地图各省细边框和展示南海诸岛&#xff1b; &#xff08;2&#xff09;第二层是…