【Nacos篇】Nacos基本操作及配置
官方文档:https://nacos.io/zh-cn/docs/v2/ecology/use-nacos-with-spring-cloud.html
前置条件:SpringCloud脚手架

单机模式下的Nacos控制台:
<dependencies><!-- Registry 注册中心相关 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!-- Config 配置中心相关 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId></dependency><!--服务间的远程调用--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency></dependencies>
Nacos服务注册与发现

GitHub官方注册中心实例:https://github.com/alibaba/spring-cloud-alibaba/wiki/Nacos-discovery
作为注册中心的nacos主要有三种角色:
- 服务提供者
- 服务消费者
- 服务注册中心
Nacos配置
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
实现使用openFeign的负载均衡:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
Nacos之前的默认的负载均衡是Ribbon,现版本Nacos 2021已经没有自带Ribbon的整合,所以无法通过修改Ribbon负载均衡的模式来实现Nacos提供的负载均衡模式;
启动类增加注解开关:配置文件在最后
@EnableFeignClients //openfeign 负载均衡及服务调用
@EnableDiscoveryClient //nacos 注册中心
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class LotteryRpc {public static void main(String[] args) {SpringApplication.run(LotteryRpc.class, args);}
}
启动效果:

启动两个服务:

OpenFeign使用
在微服务下,每个模块的主启动类都要设置上述的相关的配置。
lottery-activity--------请求-------->lottery-strategy
Lottery-Cloud
└── lottery-activity└── lottery-activity-facade└── IActivityToStrategyIntegration
└── lottery-strategy└── lottery-strategy-controller└── StrategyController.java
IActivityToStrategyIntegrationn内容
@Service
@FeignClient(value = "lottery-strategy")
public interface IActivityToStrategyIntegration {/*** 添加活动策略* @param strategyDtos*/@PostMapping("/facade/addStrategy")void addStrategy(@RequestBody StrategyDto strategyDtos);
}
strategy服务中正常的接口实现,但是请求的地址、数据类型等需要保持一致。
@PostMapping("/facade/addStrategy")
public void addStrategy(@RequestBody StrategyDto strategyDtos){log.info("活动模块请求策略模块,请求参数:{}",strategyDtos);
}
Nacos的配置中心
公共配置
在微服务项目中,多个模块在MySQL、Redis、RocketMQ等有些配置上是相同的,可以将相同的配置抽取出来,通过nacos的扩展进行引入,实现配置共享。
在nacos对应的空间中创建公共yaml。

我将mysql、druid、mybatis-plus等配置抽取了。

启动项目,看到一下内容则表示配置完成:
2023-08-06 16:50:37.162 INFO 17508 --- [ main] c.a.c.n.refresh.NacosContextRefresher : [Nacos Config] Listening config: dataId=lottery-common-dev.yaml, group=DEFAULT_GROUP
单独配置
在开发过程中不免有需要自定义的参数获取,在nacos可以通过编写配置文件来获取nacos中自定义参数。
我们新建一个yaml文件:lottery-strategy-dev.yaml文件,里面添加MaxTimes=1参数.

在对应的模块当中新建StrategyConfig
/*** @author xbhog* @describe:* @date 2023/8/5*/
@Getter
@Configuration
@RefreshScope //自动刷新
public class StrategyConfig {@Value("${MaxTimes}")private String maxTimes;
}
设置测试请求:
@Autowired
private StrategyConfig strategyConfig;
//--------------------------------------
@GetMapping("/test")
public ResponseResult<String> test(){log.info("============获取的值:{}",strategyConfig.getMaxTimes());return ResponseResult.success(null);
}
测试数据:
2023-08-06 17:01:25.328 [http-nio-8001-exec-3] INFO o.a.c.c.C.[Tomcat].[localhost].[/]: Initializing Spring DispatcherServlet 'dispatcherServlet'
2023-08-06 17:01:25.328 [http-nio-8001-exec-3] INFO o.s.web.servlet.DispatcherServlet: Initializing Servlet 'dispatcherServlet'
2023-08-06 17:01:25.330 [http-nio-8001-exec-3] INFO o.s.web.servlet.DispatcherServlet: Completed initialization in 1 ms
2023-08-06 17:01:25.384 [http-nio-8001-exec-3] INFO c.x.controller.StrategyController: ============获取的值:1
当修改完参数值,发布后,Springboot开始监听到并更新。在请求,数据就变成了2.

配置文件:bootstrap.yaml
spring:#在nacos中对应的dataID名application:#应用名称name: lottery-activityprofiles:# 环境配置active: @profiles.active@
--- # nacos 配置
spring:cloud:config:override-none: trueallow-override: trueoverride-system-properties: falsenacos:# 注册地址server-addr: @nacos.server@discovery:# 注册组group: @nacos.discovery.group@namespace: ${spring.profiles.active}config:# 配置组group: @nacos.config.group@namespace: ${spring.profiles.active}file-extension: yaml#引入公共配置文件,开启自动刷新shared-configs:- data-id: lottery-common-dev.yamlrefresh: truerefresh-enabled: true
Nacos的持久化
基于MySQL的持久化,主要修改nacos\conf\application.properties,该版本是MySQL5.6.
数据库名字、账号、密码需要自己设置。

重启nacos,查看数据库中的nacos配置。

相关文章:
【Nacos篇】Nacos基本操作及配置
官方文档:https://nacos.io/zh-cn/docs/v2/ecology/use-nacos-with-spring-cloud.html 前置条件:SpringCloud脚手架 单机模式下的Nacos控制台: <dependencies><!-- Registry 注册中心相关 --><dependency><groupId>…...
Dockerfile构建Tomcat镜像
准备apache包和jdk并解压 [rootlocalhost tomcat]# ll 总用量 196728 -rw-r--r--. 1 root root 9690027 7月 17 2020 apache-tomcat-8.5.40.tar.gz -rw-r--r--. 1 root root 674 8月 2 20:19 Dockerfile -rw-r--r--. 1 root root 191753373 7月 17 2020 jdk-8u191-…...
k8s的介绍
简介 Kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用, K8s的目标是让部署容器化的应用简单并且高效,K8s提供了应用部署,规划,更新,维护的一种机制。 K8s是Google开源的一个容器编排引…...
mysql sql语句 需要使用like 场景,解决方案
mysql 多重like 解决方案 方案一、使用like 方案二、使用REGEXP 正则匹配 方案三、使用group_concat多重模糊匹配 方案一、使用like 查询user包含小李并且小王的相关数据 SELECT * FROM user WHERE name LIKE %小王% or name like %小王% 方案二、使用REGEXP 正则匹配 查询use…...
通过C语言设计的贪吃蛇游戏(控制台终端)
一、项目介绍 当前通过控制台终端实现一个贪吃蛇小游戏,实现游戏的绘制、更新、控制等功能。 二、实现效果 三、完整代码 下面贴出的代码在Windows系统上编译运行,需要使用conio.h头文件中的getch()函数来获取键盘输入,用于控制蛇的移动。…...
c++实现Qt信号和槽机制
文章目录 简介信号槽信号与槽的连接 特点观察者模式定义观察者模式结构图 实现简单的信号和槽 简介 信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁。 信号和槽机制是 Qt 的核心…...
【Linux】五、进程
一、冯诺依曼体系结构 存储器:指的是内存; 输入设备:键盘、摄像头、话筒,磁盘,网卡; 输出设备:显示器、音响、磁盘、网卡; 中央处理器(CPU):运算器…...
使用 OpenCV 和 Python 卡通化图像-附源码
介绍 在本文中,我们将构建一个有趣的应用程序,它将卡通化提供给它的图像。为了构建这个卡通化器应用程序,我们将使用 python 和 OpenCV。这是机器学习令人兴奋的应用之一。在构建此应用程序时,我们还将了解如何使用 easygui、Tkinter 等库。在这里,您必须选择图像,然后应…...
GitLab不同角色对应的权限
Owner(拥有者): 拥有者是项目或组的创建者,拥有最高级别的权限。他们可以添加、删除项目成员,修改项目设置,管理访问权限,并进行项目转让。在组级别,他们还可以添加或删除子组和项目…...
手写一个简易的布隆过滤器
1.什么是布隆过滤器 布隆过滤器(Bloom Filter)是1970年由布隆(人名)提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。布隆过滤器可以用于检索一个元素是否在一个集合中。它的优点是空间效率和查询时间都比一般的算法要好的多,…...
阿里云快速部署开发环境 (Apache + Mysql8.0)
本文章的内容截取于云服务器管理控制台提供的安装步骤,再整合前人思路而成,文章末端会提供原文连接 ApacheMysql 8.0部署MySQL数据库(Linux)步骤一:安装MySQL步骤二:配置MySQL步骤三:远程访问My…...
侧边栏的打开与收起
侧边栏的打开与收起 <template><div class"box"><div class"sideBar" :class"showBox ? : controller-box-hide"><div class"showBnt" click"showBox!showBox"><i class"el-icon-arrow-r…...
贝叶斯学习
贝叶斯 贝叶斯学习的背景贝叶斯定理举例 概览选择假设— MAPMAP举例 选择假设 — 极大似然 MLML 举例: 抛硬币问题 极大似然 & 最小二乘Nave Bayesian Classifier (朴素贝叶斯分类器)举例1:词义消歧 (Word Sense Disambiguation)举例 2: 垃圾邮件过滤 从垃圾邮件…...
Java并发系列之六:CountDownLatch
CountDownLatch作为开发中最常用的组件,今天我们来聊聊它的作用以及内部构造。 首先尝试用一句话对CountDownLatch进行概括: CountDownLatch基于AQS,它实现了闩锁,在开发中可以将其用作任务计数器。 若想要较为系统地去理解这些特性ÿ…...
24数据结构-图的基本概念与存储结构
目录 第六章 图6.1 图的基本概念知识回顾 6.2 图的储存结构(邻接矩阵法)1. 数组表示法(1) 有向图,无向图的邻接矩阵 2. 定义邻接矩阵的结构3. 定义图的结构4. 构造图G5. 特点 第六章 图 6.1 图的基本概念 图是一种非线性结构 图的特点&am…...
自然语言处理学习笔记(三)————HanLP安装与使用
目录 1.HanLP安装 2.HanLP使用 (1)预下载 (2)测试 (3)命令行 (4)测试样例 3.pyhanlp可视化 4. HanLP词性表 1.HanLP安装 HanLP的 Python接口由 pyhanlp包提供,其安装…...
CS 144 Lab Five -- the network interface
CS 144 Lab Five -- the network interface TCP报文的数据传输方式地址解析协议 ARPARP攻击科普 Network Interface 具体实现测试tcp_ip_ethernet.ccTCPOverIPv4OverEthernetAdapterTCPOverIPv4OverEthernetSpongeSocket通信过程 对应课程视频: 【计算机网络】 斯坦福大学CS144…...
Mecha
一、Mecha Mecha 是一个开源的多云 Kubernetes 管理平台,旨在简化和统一在多个云提供商上运行 Kubernetes 集群的管理和操作。它是由阿里巴巴集团开发和维护的项目。 Mecha 的主要目标是提供一个统一的界面和工具,使用户能够更轻松地在不同的云提供商上…...
Apache RocketMQ之集成RocketMQ_MQTT 安装部署协议
Apache RocketMQ 安装说明 安装步骤 参考快速开始 https://rocketmq.apache.org/zh/docs/quickStart/01quickstart 安装可视化rocketmq_dashboard下载地址 https://rocketmq.apache.org/zh/docs/4.x/deployment/03Dashboard/ 安装rocketmq_mqtt https://rocketmq.apache.o…...
Oracle多行数据合并为一行数据,并将列数据转为字段名
Oracle多行数据合并为一行数据 实现查询效果原数据 方式一:MAX()数据效果SQL 方式二:LISTAGG()数据效果 方式三:WM_CONCAT()数据效果 实现查询效果 原数据 FZPROJECTVALUE1电脑$16001手机$121导管$12电脑$22手机$22 方式一:MAX…...
5分钟掌握B站评论区智能成分检测:免费高效的互动神器
5分钟掌握B站评论区智能成分检测:免费高效的互动神器 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分,支持动态和关注识别以及手动输入 UID 识别 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-comment-checker B站成…...
2025届学术党必备的五大降AI率网站实测分析
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 于学术写作跟成果发表进程之中,文本重复率的把控乃是一项关键之处。降重网站当作…...
HoRain云--RESTful API设计全指南
🎬 HoRain 云小助手:个人主页 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …...
快速上手ms-swift:图形界面操作大模型全流程,保姆级指导
快速上手ms-swift:图形界面操作大模型全流程,保姆级指导 1. 为什么选择ms-swift? 在人工智能领域,大模型的训练和部署一直是个技术门槛较高的工作。传统方式需要处理复杂的命令行参数、环境配置和代码调试,这让很多非…...
`claude code --print` 核心含义与用法指南
claude code --print 核心含义与用法指南 --print(简写为-p)是Claude Code CLI的非交互模式参数,用于执行单个查询后直接输出结果并退出,不进入交互式会话。这是自动化脚本、管道操作和CI/CD集成的核心工具。 一、核心定义与作用 特性 说明 全称/简写 --print / -p 核心功…...
Pixel Epic · Wisdom Terminal 处理403 Forbidden等HTTP错误:智能诊断与修复建议
Pixel Epic Wisdom Terminal 处理403 Forbidden等HTTP错误:智能诊断与修复建议 1. 引言:HTTP错误的困扰与解决方案 每个Web开发者和运维人员都遇到过这样的场景:用户反馈页面打不开,你打开开发者工具一看,赫然显示4…...
ChatGPT_JCM深色模式实现:保护眼睛的界面显示方案
ChatGPT_JCM深色模式实现:保护眼睛的界面显示方案 【免费下载链接】ChatGPT_JCM 项目地址: https://gitcode.com/gh_mirrors/ch/ChatGPT_JCM ChatGPT_JCM是一款功能强大的AI交互工具,其深色模式实现为用户提供了舒适的夜间使用体验,有…...
Python原生AOT编译2026架构设计图(含C-API二进制兼容性矩阵+GC停顿压缩至≤80μs实证)
第一章:Python原生AOT编译2026架构全景概览Python原生AOT(Ahead-of-Time)编译在2026年已演进为一套融合语言语义、运行时契约与硬件感知能力的系统级基础设施。它不再依赖传统解释器或JIT中间态,而是通过静态类型推导、控制流图全…...
Excel 根据A列标签拆分为多个列数据
举例:如下图所示将AB列内容拆分为红色框内的格式方便绘制图表Sub SplitCategoriesToColumns()Dim ws As WorksheetDim lastRow As LongDim startRow As LongDim dict As ObjectDim keyOrder As New CollectionDim i As Long, j As LongDim key As VariantDim val As…...
IQR四分位数法是什么?
一、核心概念:四分位数与IQR1. 四分位数(Quartiles)将一组有序数据(从小到大排列)划分为4个相等部分的三个关键分割点,分别记为:Q1(第一四分位数,25%分位数)&…...
