Nacos的搭建和使用——SpringCloud Alibaba

1. 概要说明

在使用Nacos之前,请在你的虚拟机中下载好Nacos,再进行连接本机使用

port:8848

本机访问地址:http://{虚拟机ip}:8848/nacos/

访问账号密码:nacos/nacos

2. Nacos的作用

2.1 服务发现中心

微服务将自身注册至Nacos,从Nacos获取微服务列表。

下图为注册的微服务列表

在这里插入图片描述

2.2 配置中心

微服务众多,它们的配置信息也非常复杂,为了提供系统的可维护性,微服务的配置信息统一在Nacos配置。

下图为配置中心的配置列表

在这里插入图片描述

3. Nacos的使用

3.1 服务注册中心

在搭建Nacos服务发现中心之前需要搞清楚两个概念:namespace和group

namespace:用于区分环境、比如:开发环境、测试环境、生产环境。
group:用于区分项目,若是同一个微服务项目就用用一个group名称

3.1.1 创建命名空间

登录成功之后,首先创建一个命名空间

在这里插入图片描述
在这里插入图片描述

如果使用dev命名空间,在下边的配置中对namespace配置为dev

3.1.2 进行服务注册

(1)在父依赖中添加SpringCloud alibaba依赖

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope>
</dependency>

(2)然后在相关模块中配置服务注册依赖

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

(3)在相关模块的配置文件中进行配置Nacos的地址以及模块的微服务注册信息

#微服务配置
spring:application:name: 模块名cloud:nacos:server-addr: IP地址:8848discovery:namespace: dev   //命名空间group: project    //模块项目名称或所属项目名称

(4)重启服务,观察服务注册列表
在这里插入图片描述

3.2 配置中心

3.2.1 配置概要

目的就是通过Nacos去管理项目的所有配置。

先将项目中的配置文件分分类:
(1)每个项目特有的配置

是指该配置只在有些项目中需要配置,或者该配置在每个项目中配置的值不同。比如:spring.application.name每个项目都需要配置但值不一样,以及有些项目需要连接数据库而有些项目不需要,有些项目需要配置消息队列而有些项目不需要。

spring:application:name: content-api  #1-1

(2)项目所公用的配置

指在若干项目中配置内容相同的配置,比如说,logging日志swagger接口集成服务

##日志文件配置路径
logging:config: classpath:log4j2-dev.xml#swagger-ui.html
swagger:title: "系统"description: "相关信息进行管理"base-package: com.xuecheng.contentenabled: trueversion: 1.0.0

3.2.1 配置三要素

需要知道nacos如何去定位一个具体的配置文件,即:namespacegroupdataid

通过namespacegroup找到具体的环境和具体的项目。

通过dataid找到具体的配置文件,dataid有三部分组成

比如:content-service-dev.yaml配置文件 由(content-service)-(dev). (yaml)三部分组成
content-service:第一部分,它是在application.yaml中配置的应用名,即spring.application.name的值
dev:第二部分,它是环境名,通过spring.profiles.active指定
Yaml: 第三部分,它是配置文件 的后缀,目前nacos支持properties、yaml等格式类型,本项目选择yaml格式类型。

我们启动项目中传入spring.profiles.active的参数决定引用哪个环境的配置文件,例如:传入spring.profiles.active=dev表示使用dev环境的配置文件即content-service-dev.yaml

3.2.2 下列实例对content-service进行配置

点击添加配置
在这里插入图片描述

在这里插入图片描述
对于content-service,sevice层主要进行与数据库的交互,因此在Nacos配置中应放入数据库的配置信息
在这里插入图片描述
在本地项目配置文件中进行配置以及添加配置依赖

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

#1-1、#2-2、#3-3代表配置三要素,配置三要素一定配置在本地配置文件中,不然运行时,项目无法定位Nacos中的配置文件

#微服务配置      content-service-dev.yaml
spring:application:name: content-service  #1-1cloud:nacos:server-addr: 192.168.101.65:8848config:  #配置文件的相关配置namespace: dev402group: xuecheng-plus-projectfile-extension: yaml      #3-3refresh-enabled: true#环境名profiles:active: dev   #2-2

在微服务项目中,api模块会依赖service模块,因此,所以这里使用extension-configs扩展配置文件的方式引用service模块所用到的配置文件

spring:application:name: content-apicloud:nacos:server-addr: IP地址:8848discovery:namespace: devgroup: xuecheng-plus-projectconfig:namespace: devgroup: xuecheng-plus-projectfile-extension: yamlrefresh-enabled: trueextension-configs:- data-id: content-service-${spring.profiles.active}.yamlgroup: xuecheng-plus-projectrefresh: trueprofiles:active: dev

记住,每向Nacos添加一个配置文件,最好重新运行一次本地项目!!!

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

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

相关文章

Linux(centos7)部署hive

前提环境: 已部署完hadoop(HDFS 、MapReduce 、YARN) 1、安装元数据服务MySQL 切换root用户 # 更新密钥 rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysqL-2022 # 安装Mysql yum库 rpm -Uvh http://repo.mysql.com//mysql57-community-release-el7-7.noarch.rpm # yu…

Netty服务端基本启动流程源码刨析

前言: 希望看这篇文章之前对Java Nio编程比较熟悉&#xff0c;并有用过Netty开发简单代码 服务端代码 先大致说一下NioEventLoopGroup组件的作用&#xff0c;可以把它看是作内部维护了一个NioEventLoop数组的对象&#xff0c;它的构造方法的参数用来指定维护数组的大小。NioEve…

【Flutter 面试题】 Dart 是不是单线程模型?是如何运行的?

【Flutter 面试题】 Dart 是不是单线程模型&#xff1f;是如何运行的&#xff1f; 文章目录 写在前面口述回答补充说明示例&#xff1a;异步编程示例&#xff1a;使用 Isolates 处理计算密集型任务总结 写在前面 &#x1f64b; 关于我 &#xff0c;小雨青年 &#x1f449; CSD…

Echarts之x轴,Y轴配置项大全

ECharts是一个强大的数据可视化库&#xff0c;提供了丰富的配置项来定制图表的x轴和y轴。下面是ECharts中x轴和y轴的配置项大全&#xff1a; xAxis配置项&#xff1a; type&#xff1a;轴类型&#xff0c;可选值有&#xff1a;“value”&#xff08;数值轴&#xff09;, “cat…

C++经典面试题目(二)

1. C中&#xff0c;static关键字有什么作用&#xff1f; 在C中&#xff0c;static关键字有多种作用&#xff0c;包括限定作用域、保持变量内容持久化和修饰类成员等。以下是static关键字在C中的主要作用&#xff1a; 限定作用域&#xff1a;当变量、函数或类成员被声明为stat…

数据库表名和字段名,为什么忽略大小写?为什么采用下换线分割单词?

数据库表名和字段名&#xff0c;为什么忽略大小写 在数据库设计和使用中&#xff0c;表名和字段名的大小写敏感性是由数据库管理系统&#xff08;DBMS&#xff09;的配置和操作系统决定的。有些数据库系统默认是区分大小写的&#xff0c;而有些则不区分。 在实际操作中&#x…

docker 的网络管理

docker应用自带了三种类型的网络&#xff0c;然后我们自己也能自定义网络 roottest-virtual-machine:~# docker network ls NETWORK ID NAME DRIVER SCOPE 4c3e28760cff bridge bridge local afd1493dc119 host host local 5f200e2eaf22 n…

政安晨:【Keras机器学习实践要点】(六)—— 使用内置方法进行训练和评估

政安晨的个人主页&#xff1a;政安晨 欢迎 &#x1f44d;点赞✍评论⭐收藏 收录专栏: TensorFlow与Keras实战演绎机器学习 希望政安晨的博客能够对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff01; 本文涵盖使用内置 API 进行训练和验证&#…

01-DBA自学课-安装部署MySQL

一、安装包下载 1&#xff0c;登录官网 MySQL :: MySQL Downloads 2&#xff0c;点击社区版下载 3&#xff0c;找到社区服务版 4&#xff0c;点击“档案”Archives 就是找到历史版本&#xff1b; 5&#xff0c;选择版本进行下载 本次学习&#xff0c;我们使用MySQL-8.0.26版本…

ES6 常用知识点英文单词总结

通过记忆ES6这些关键词及其中文含义,可以帮助更好地理解和掌握ES6带来的新特性。 以下前一篇文章ES6(ECMAScript 6)中常用的知识点总结&#xff08;包含示例代码&#xff09;提到的ES6常用知识点的关键词及中文含义: let, const - 声明变量,常量箭头函数 - Arrow Function模板…

sonar扫描bug及对应修复

##1.Use isEmpty() to check whether the collection is empty or not. 解释&#xff1a; 建议使用list.isEmpty()方法 替代list.size()0 或者 !list.isEmpty() 替代 list.size() >0 修改前&#xff1a; if(attachedColumns.size() > 0) 修改后&#xff1a; if(attache…

菜鸟笔记-15arange函数学习

arange函数是Python中Numpy库的一个函数&#xff0c;主要用于生成一个等差数列。这个函数非常适用于创建指定范围内的数字序列&#xff0c;用于数值计算、数据分析等多种场景。 arange函数的语法如下&#xff1a; numpy.arange([start,] stop[, step,], dtypeNone) 参数说明…

机器学习 | 期望最大化(EM)算法介绍和实现

在现实世界的机器学习应用中&#xff0c;通常有许多相关的特征&#xff0c;但只有其中的一个子集是可观察的。当处理有时可观察而有时不可观察的变量时&#xff0c;确实可以利用该变量可见或可观察的实例&#xff0c;以便学习和预测不可观察的实例。这种方法通常被称为处理缺失…

vue2高德地图选点

<template><el-dialog :title"!dataForm.id ? 新建 : isDetail ? 详情 : 编辑" :close-on-click-modal"false" :visible.sync"show" class"rv-dialog rv-dialog_center" lock-scroll width"74%" :before-close&q…

Vue.js概述

一、概述 数据驱动的响应式框架&#xff0c;我们只关注Vue对象里面设置的数据即可&#xff0c;数据发生改变时&#xff0c;页面自动重新渲染 最典型的MVVM框架 二、挂载点 什么是“挂载点”&#xff1f;一个标签 作用&#xff1a;被Vue实例接收后&#xff0c;实例中设置的各…

boot整合xfire

最近换了项目组&#xff0c;框架使用的boot整合的xfire&#xff0c;之前没使用过xfire&#xff0c;所以写个例子记录下&#xff0c;看 前辈的帖子 整理下 pom文件 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot…

Java | 日期天数计算

大家可以关注一下专栏&#xff0c;方便大家需要的时候直接查找&#xff0c;专栏将持续更新~ 题目描述 编写一个Java程序&#xff0c;用于输入一个日期&#xff08;包括年、月、日&#xff09;&#xff0c;然后判断这一天是这一年的第几天。 程序需要接收一个表示日期的字符…

Python爬虫入门:从网站爬取文章内容并保存到本地文件

目录 前言 准备工作 简单爬虫实现 注意事项 爬虫伦理与合法性 总结 前言 在互联网时代&#xff0c;数据是宝贵的资源。然而&#xff0c;当需要从海量网站中抓取数据时&#xff0c;手动操作显然不切实际。这时&#xff0c;爬虫技术应运而生&#xff0c;成为我们获取数据的…

OSG编程指南<二十一>:OSG视图与相机视点更新设置及OSG宽屏变形

1、概述 什么是视图?在《OpenGL 编程指南》中有下面的比喻,从笔者开始学习图形学就影响深刻,相信对读者学习场景管理也会非常有帮助。 产生目标场景视图的变换过程类似于用相机进行拍照,主要有如下的步骤: (1)把照相机固定在三脚架上,让它对准场景(视图变换)。 (2)…

详细分析java.io.EOFException: readObject: unexpected end of file的解决方法

目录 前言1. 问题所示2. 原理分析3. 解决方法4. 彩蛋前言 以下问题涉及知识点推荐阅读 详细分析Java中的分布式任务调度框架 XXL-Job出现 Caused by: java.lang.NumberFormatException: For input string: “Error“ 解决方法(全)java框架 零基础从入门到精通的学习路线 附开…