SpringCloud全系列知识(2)—— Nacos配置和集群

news2024/11/24 10:26:38

Nacos配置和集群

一 统一配置管理

Nacos官方文档

1.配置热更新

在这里插入图片描述

1.新建配置文件

在Nacos的配置列表中新建一个配置文件。
在这里插入图片描述

注意事项:

Data ID 命名规则:一般情况下使用使用 “微服务名称+运行环境” 作为DataID,后缀名建议使用文件后缀全名,例如:yaml

Group:分组名称,根据事情需求修改。

配置内容:按照所选配置格式编写即可。尽可能的配置一些有热更新需求的参数。一般用于服务中的开关配置或模板配置。

2.读取配置文件

在这里插入图片描述

1.引入Nacos的配置管理客户端config依赖

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

或者在通过 Spring Ini创建项目时直接勾选

在这里插入图片描述

2.创建 bootstrap.yml

在 项目中的resources文件夹下创建bootstrap.yml文件,bootstrap.yml 叫做引导文件,先于application.yml 执行。

spring:
  application:
    name: alibaba-order  # 服务名称
  profiles:
    active: dev  #运行环境
  cloud:
    nacos:
      server-addr: http://localhost:8848  # nacos地址
      config:
        file-extension: yaml # 文件后缀名

配置完成之后,本地配置文件中的相同配置即可直接去掉。

3.设置细节

配置文件名(Data ID)一般以微服务名称为准,在多环境时,则以"微服务名-环境名"作为配置文件名。

例如配置文件名为"alibaba-order-dev.yaml",则配置文件内容应该如下:

spring:
  application:
    name: alibaba-order  # 服务名称
  profiles:
    active: dev  #运行环境
  cloud:
    nacos:
      server-addr: http://localhost:8848  # nacos地址
      config:
        file-extension: yaml # 文件后缀名
      discovery:
        namespace: public
        username: nacos
        password: nacos
        cluster-name: xian
        # 设置该实例为非临时实例
        #ephemeral: false

3.配置自动刷新

Nacos中的统一配置管理文件修改以后,无需重启服务即可实现自动更新。需要通过一下两种方式实现。

1.在使用了相关值的控制器类上添加 @RefreshScope 注解

2.使用 @ConfigurationProperties 注解

@Component
@Data
@ConfigurationProperties("systems")
public class YamlConfig {
    private String os;
}

然后在控制器类中使用依赖注入即可

@RestController
@RequestMapping("/test")
public class TestController {
    @Autowired
    private YamlConfig yamlConfig;

    @GetMapping
    public String get(){
        //return "123";
        return yamlConfig.getOs();
    }
}

推荐使用 @ConfigurationProperties 注解的方式实现配置自动刷新

4.多环境配置共享

无论环境如何变化,以服务名称命名的配置文件总是被多个环境共享。

例如 alibaba-order-dev.yaml 和 alibaba-order.yaml。alibaba-order-dev.yaml仅在dev环境下生效,而 alibaba-order.yaml 在全部环境下均有效。
在这里插入图片描述

开发环境中使用多环境测试时,可通过修改服务的配置信息来实现多环境的模拟。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1QijWAHG-1669706854488)(C:\Users\01\AppData\Roaming\Typora\typora-user-images\image-20221129101508618.png)]

5.配置文件优先级

统一配置管理中,若存在相同的配置属性,则它们是按照一定的优先级来实现加载。

指定环境 > 环境共享 > 本地

二 Nacos集群搭建

1.Nacos集群框架图

在这里插入图片描述

2.Nacos集群实现

1.初始化数据库

创建一个名为 nacos 的数据库,编码格式为 utf8。

下载nacos,在nacos根目录下的conf文件夹内,找到 nacos-mysql.sql 文件,运行至mysql。

2.编辑配置文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6I6kuHI5-1669706854488)(C:\Users\01\AppData\Roaming\Typora\typora-user-images\image-20221129115608818.png)]

更改 cluster.conf.example 文件名为 cluster.conf

编辑 cluster.conf 文件,模拟3台服务器的Nacos地址

192.168.16.191:8845
192.168.16.191:8846
192.168.16.191:8847

编辑 application.properties 文件,设置数据库相关信息及服务端口信息

server.port=8845
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?characterEncoding=utf8&serverTimezone=UTC
db.user.0=root
db.password.0=123456

然后将nacos复制3份,分别修改 server.port 的端口值为 cluster.conf 文件中设置的端口值,如果服务器不一样时,端口号则可以保持一致。

最后分别启动Nacos服务,启动成功以后,配置Nginx。

#配置nacos集群
upstream nacos-cluster {
	server 127.0.0.1:8845;
	server 127.0.0.1:8846;
	server 127.0.0.1:8847;
}
server {
    listen       8848;
    server_name  localhost;
	
	location /nacos {
	    proxy_pass http://nacos-cluster;
	}
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

最后运行Nginx,在浏览器访问即可。

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

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

相关文章

集成一个以官网(微信,QQ,微博)为标准的登录分享功能

Hello&#xff0c;各位老铁&#xff0c;今天要分享的是一个老生常谈的一个功能&#xff0c;也是网上一搜一大片的技术点&#xff0c;没什么技术含量&#xff0c;就是整合一下&#xff0c;提供一下方便&#xff0c;相对于友盟&#xff0c;ShareSdk中夹杂着一些别的功能&#xff…

Python编程 集合

作者简介&#xff1a;一名在校计算机学生、每天分享Python的学习经验、和学习笔记。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 目录 前言 一.集合 1.集合介绍(掌握) 2.集合创建(掌握) 3.添加元素(熟悉) 4.集合…

区域治理杂志区域治理杂志社区域治理编辑部2022年第40期目录

政策 乡村振兴人才发展战略分析 (1) 高庸江 声音《区域治理》投稿&#xff1a;cnqikantg126.com 迈向智能党建&#xff1a;智能媒体在党建工作中的创新运用 (5) 申娟 经验 北京市昌平区节水问题及水资源利用对策研究 (9) 彭聪 重庆市低碳创新政策优化研究 (13) 林芳 …

怎么把Word翻译成中文?建议收藏这些方法

相信不少小伙伴在撰写论文的时候&#xff0c;都有查阅大量的国内外文献吧。有时由于国外文献里面会含有大量的深奥词汇&#xff0c;我们一时半会儿没法马上理解文献的内容。其实我们可以使用软件直接翻译Word文档&#xff0c;那你们知道Word文档怎么翻译吗&#xff1f;有需要对…

【Android App】实战项目之仿抖音的短视频分享App(附源码和演示视频 超详细必看)

需要全部代码请点赞关注收藏后评论区留言私信~~~ 与传统的影视行业相比&#xff0c;诞生于移动互联网时代的短视频是个全新行业&#xff0c;它制作方便又容易传播&#xff0c;一出现就成为大街小巷的时髦潮流。 各行各业的人们均可通过短视频展示自己&#xff0c;短小精悍的视频…

网络面试-0x12 UDP和TCP的区别以及应用场景

一、 UDP &#xff08;user datagram protocol&#xff09;用户数据报协议 ①&#xff1a; 一种简单的面向数据报的通讯协议&#xff0c;即&#xff1a;应用层传下来的报文&#xff0c;不合并&#xff0c;不拆分&#xff0c;只是在其上面加上首部后就交给了下面的网络层。无论应…

Github优秀项目-使用Python基于CPM文本自动生成

基于CPM模型的中文文本生成项目,可用于作文、小说、新闻、古诗等中文生成任务。 虽然说开源的,但是实际部署应用的过程中很多小伙伴还遇见了不少的问题,这里我用自己的方式部署应用,如果还没有实现该功能的小伙伴可以跟我一起来操作。 如果有不了解的小伙伴先来看一下实验…

【多目标进化优化】多目标进化算法的收敛性

0 前言 \quad\quad对 MOEAMOEAMOEA 收敛性的研究是 MOEAMOEAMOEA 研究的重要内容&#xff0c;但目前这方面的研究结果比较少。 一个 MOEAMOEAMOEA 的收敛性可以从两个方面考虑&#xff1b;一是有限时间内的收敛&#xff1b;二是当时间趋向于无穷大时的收敛。第一类收敛是最理想…

Kotlin高仿微信-第9篇-单聊-文本

Kotlin高仿微信-项目实践58篇详细讲解了各个功能点&#xff0c;包括&#xff1a;注册、登录、主页、单聊(文本、表情、语音、图片、小视频、视频通话、语音通话、红包、转账)、群聊、个人信息、朋友圈、支付服务、扫一扫、搜索好友、添加好友、开通VIP等众多功能。 Kotlin高仿…

麦芽糖-阿奇霉素 maltose-Azithromycin 阿奇霉素-PEG-麦芽糖

麦芽糖-阿奇霉素 maltose-Azithromycin 阿奇霉素-PEG-麦芽糖 中文名称&#xff1a;麦芽糖-阿奇霉素 英文名称&#xff1a;maltose-Azithromycin 别称&#xff1a;阿奇霉素修饰麦芽糖&#xff0c;阿奇霉素-麦芽糖 纯度&#xff1a;95% 存储条件&#xff1a;-20C&#xff0c…

webscoket学习

webscoket基本使用 WebSocket - Web API 接口参考 | MDN 使用node编写webscoket服务 nodejs-webscoket 在github的地址↓ GitHub - sitegui/nodejs-websocket: A node.js module for websocket server and client ws和socket.io 是wbscket的两个库 仓库地址&#xff1a;l…

Scala系列-5、scala中的泛型、actor、akka

版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 传送门&#xff1a;大数据系列文章目录 目录scala的 泛型给方法定义泛型给类定义泛型泛型的上下界泛型中 非变 协变 和 逆变scala中actor相关内…

echarts中tooltip设为渐变色与模糊背景滤镜

关于echarts各项内容&#xff08;包括图表面积区域&#xff09;设为渐变色已在上篇文章里全部阐述&#xff1a; echarts折线图与柱状图等绘成渐变色的方法 单独将tooltip拉出来再写一篇&#xff0c;是因为用formatter配合超文本的形式在echarts的配置项中&#xff0c;于自定义样…

Python使用magic判断文件MIME类型

文章目录官网安装使用判断文件的MIME类型支持中文的代码问题官网 GitHub - ahupp/python-magic: A python wrapper for libmagic 安装 pip install python-magic pip install python-magic-bin使用 判断文件的MIME类型 代码 # encodingutf-8 import magic #pip install pyt…

希尔贝壳受邀参加IEEE自动语音识别与理解研讨会-ASRU 2021

ASRU 2021 IEEE Automatic Speech Recognition and Understanding Workshop&#xff08;2021年IEEE自动语音识别与理解研讨会&#xff0c;以下简称ASRU&#xff09;&#xff0c;将于2021年12月13日至17日在哥伦比亚卡塔赫纳举行。 ASRU 研讨会是IEEE语音和语言处理技术委员会(…

领悟《信号与系统》之 周期信号的傅里叶变换计算

周期信号的傅里叶变换计算一、周期信号的傅里叶变换存在的条件二、周期信号的傅里叶变换例题&#xff1a;一、周期信号的傅里叶变换存在的条件 典型非周期信号&#xff08;如指数信号&#xff0c;矩形信号等&#xff09;都是满足绝对可积&#xff08;或绝对可和&#xff09;条…

IDEA的日常快捷键大全

更多内容在&#xff1a;https://javaxiaobear.gitee.io/ ​​​​​​第1组&#xff1a;通用型 说明 快捷键 复制代码-copy ctrl c 粘贴-paste ctrl v 剪切-cut ctrl x 撤销-undo ctrl z 反撤销-redo ctrl shift z 保存-save all ctrl s 全选-select all …

(2)点云库处理学习——剔除点云值

1、主要参考 1.1参考地址 (1) 点云离群点剔除 — open3d python_Coding的叶子的博客-CSDN博客_离群点去除 (2) open3d之点云异常值去除&#xff08;笔记5&#xff09;_Satellite_H的博客-CSDN博客 (3)斯坦福经典兔子的点云数据下载地址 下载地址 Model : Bunny 1.2兔子…

3D视觉识别案例:3D无序棒料抓取,阀体圆环上下料,电机定子上料

3D无序棒料抓取 某知名汽车行业 项目背景 长春某知名汽车行业&#xff0c;需求3D视觉实现圆形棒材的上料自动化。 作业流程 钢棒依次经过剪切/锯切下料&#xff0c;从深筐中抓取&#xff0c;先放置在V型二次定位平台上&#xff0c;再从平台抓到输送线上&#xff0c;目标工…

[附源码]SSM计算机毕业设计新冠疫苗线上预约系统JAVA

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…