【Spring Cloud Alibaba】003-Nacos 概述与单机搭建
【Spring Cloud Alibaba】003-Nacos 概述与单机搭建
文章目录
- 【Spring Cloud Alibaba】003-Nacos 概述与单机搭建
- 一、Nacos 概述
- 0、新技术学习思路推荐
- 1、什么是 Nacos
- 2、架构图
- 架构图
- 架构图信息
- 二、Nacos 单机搭建
- 1、下载与启动
- 下载地址
- 编辑 startup.cmd 文件
- 下面对两种模式的判断
- 其他配置说明
- 启动
- 访问
- 2、修改项目
- 第一步:在两个子项目的 pom.xml 文件下加入依赖
- 第二步:设置两个子项目的应用名
- 第三步:启动两个子项目
- 第四步:访问 nacos 查看服务列表
- 第五步:测试停掉 stock 服务
- 第六步:远程调用演示
一、Nacos 概述
0、新技术学习思路推荐
- 先找到对应
官方文档,看看官方介绍; - 然后找到
核心架构图,架构图是能够很直观看出核心理念的; - 紧接着
动手实战一波,加深理解; - 最后思考实现原理,尝试通过
源码分析,找到答案。
1、什么是 Nacos
在早期 Spring Cloud 开始流行的时候,Eureka 使用得比较广泛,后来这个项目在 2018 年 7 月份的时候,官方宣布不再维护 Eureka 2.0 了,再来后阿里推出全新 Spring Cloud Alibaba 系列,其中 Nacos 就是一员。
官网地址:https://nacos.io/zh-cn/index.html
github 地址:https://github.com/alibaba/nacos
open-api 地址:https://nacos.io/zh-cn/docs/open-api.html
官方:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
动态服务发现:当新增一个微服务实例,Nacos 它能够感知到,也就是服务治理,这也是作为注册中心最基本的功能。
配置管理:Nacos 它不仅仅是一款注册中心,它还提供了配置管理一大特点,不仅是对服务进行管理,而且还可以管理你项目中对应的配置文件,让你整个微服务项目配置中心化,统一全部放在 Nacos 配置管理中;除此之外,它还是动态化的。那什么是动态化?举个例子,在 Spring Boot 项目中,会包含 properties、yml 配置文件,在项目启动中,如果想要修改对应的配置文件,是需要重启应用,更改后的配置文件才能生效。而 Nacos 的配置管理,它可以让你在更改配置文件后,无需重启应用,即可生效。
服务管理平台:Nacos 它提供了一套 Web 管理后台,在这个后台中,我们可以监控整个服务运行状态以及对配置管理进行操作。
Nacos 解决了微服务实例之间调用关系错综复杂、难以维护的问题!
2、架构图
架构图

架构图信息
从最上层开始看,首先就是 Provider(提供者)、Consumer(消费者),都需要借助于 Name(服务名称、服务地址),这是最外层。Provider、Consumer 都是需要依赖 Nacos Server。
接着往下看,Nacos Server 最上层,有一层 OpenAPI,对外提供服务。那对外提供什么服务呢?
Naming Service:注册服务,我们微服务实例的注册、注销、服务管理都是在这一块进行实现的。Config Service:配置服务,它提供了在微服务架构中,统一配置中心的功能。 Nacos 配置中心为服务配置提供了编辑、存储、分发、变更管理、历史版本管理等功能,并且支持在实例运行中,更改配置。
除此之外,Naming Service、Config Service 也是依赖于 Nacos Core 核心来完成的,并且在 Nacos Core 核心中还包含了Consistency Protocol(一致性协议),这一块就涉及到分布式一致性协议的内容,包括 CAP 理论、Raft 协议,这些也都是我们在使用微服务架构中需要考虑的问题。
至于 Nacos Console,这一整块相当于服务管理平台,也是依赖于 Nacos 提供的 OpenAPI 来进行扩展的额外功能。
重点:Config Server 对应配置管理中心、Naming Service 对应注册中心。
二、Nacos 单机搭建
1、下载与启动
下载地址
下载我们选择的 spring cloud alibba 版本对应的 nacos 版本,在这里可以看到:https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E
我这里下载这个(windows系统):nacos-server-2.0.4.zip
https://github.com/alibaba/nacos/releases
编辑 startup.cmd 文件
从解压后得到的目录里面找到
nacos\bin\startup.cmd文件,由于默认配置是集群,我们改成单机模式!**不修改配置的启动方法:**单机:
startup.cmd -m standalone集群:startup.cmd -m cluster其他系统类似!
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kYRyoyne-1676962815399)(https://gudu2019.oss-cn-beijing.aliyuncs.com/mdimg/image-20230221135142353.png)]
下面对两种模式的判断

其他配置说明
数据源,如果没有配置,则默认存在内存里。
启动
在这里
提醒一点,Nacos 建议在内部隔离网络环境中部署,强烈建议不要部署在公共网络环境中。Nacos 属于微服务内部所使用的组件,是没有必要暴露在公网当中。

访问

2、修改项目
第一步:在两个子项目的 pom.xml 文件下加入依赖
<!-- nacos -->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
第二步:设置两个子项目的应用名
server:port: 8081
spring:application:name: stock-servicecloud:nacos:server-addr: localhost:8848discovery:username: nacospassword: nacosnamespace: publicserver:port: 8080
spring:application:name: order-servicecloud:nacos:server-addr: localhost:8848discovery:username: nacospassword: nacosnamespace: public
第三步:启动两个子项目

第四步:访问 nacos 查看服务列表

第五步:测试停掉 stock 服务
停止服务

查看 nacos 服务列表

第六步:远程调用演示
修改代码

加依赖到订单服务
<!-- loadbalancer -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
加负载均衡注解

重启并访问测试

相关文章:
【Spring Cloud Alibaba】003-Nacos 概述与单机搭建
【Spring Cloud Alibaba】003-Nacos 概述与单机搭建 文章目录【Spring Cloud Alibaba】003-Nacos 概述与单机搭建一、Nacos 概述0、新技术学习思路推荐1、什么是 Nacos2、架构图架构图架构图信息二、Nacos 单机搭建1、下载与启动下载地址编辑 startup.cmd 文件下面对两种模式的…...
如何使用 API 工具做 Websocket 测试
在 API 测试中,对 Websocket 协议的支持呼声越来越高,今天给大家推荐一款 开源的 API 管理工具——Postcat,以及教教大家,如何利用 API 管理工具做 Websocket 测试。 在线 Demo 链接:Postcat - Open Source API Ecosys…...
90%的人都理解错了HTTP中GET与POST的区别
Get和Post是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。 最直观的区别就是Get把参数包含在URL中,Post通过request body传递参数。 你可能自己写过无数个Get和Post请求,或者已经看过很多权威网站总结…...
【C++】秋招实习面经汇总篇
C面经汇总 系列综述: 目的:本系列是个人整理为了秋招和实习面试的,整理期间苛求每个知识点,平衡背诵量与深入程度。 来源:材料主要源于阿秀的笔记和《王道考研复习指导》进行的,每个知识点的修正和深入主要…...
干货分享:2023欧美市场分析与机会
1、2023年欧美市场分析美国是⼀个消费大国,正常情况下做外贸不可忽略的市场。如何找客户:专注产业链 。产业链对接,其上游是什么,那么他就是我的客户 ( 原材料-⼯⼚)南美洲是北美的经济殖民地(矿产资源农产品),非洲仍然…...
介绍Kadence Elements元素模板:按您的方式设计网站
随着 Kadence Pro 1.0.4 和 Kadence Blocks Pro 1.5.8 的发布,Kadence 团队很高兴地宣布推出最强大的新方法,帮助网站所有者使用 Kadence Elements Templates 创建动态和高度定制的 WordPress 网站。如果您曾经创建过 WordPress 网站,并且发现…...
物联网发展的重要通信技术Wi-Fi
Wi-Fi 可以适应各种场景的联网需求 Wi-Fi 在实现物联网创新方面发挥了基础性作用,提供了广泛的连接性,将各种“事物”相互连接、连接到互联网,以及连接到全球使用的 180 亿台 Wi-Fi 设备。物联网的经济潜力是无限的,Wi-Fi 为智能…...
OSS上传(Java和Js)
OSS上传(Java和Js)准备工作创建RAM用户创建角色创建权限策略给角色授予权限策略获取临时访问凭证Java普通上传OSSJava分片上传OSSJS普通上传OSSJS分片上传OSS使用RAM用户或STS方式访问 由于阿里云账号AccessKey拥有所有API访问权限,建议遵循阿…...
【虚拟机】VirtualBox Host-Only + 主机网络共享配置
文章目录创建Host-Only虚拟机配置主机配置其它工作中经常会使用到虚拟机进行各种技术的试验,之前为了省事常用桥接模式,可是我经常变换办公地点,每个办公地点的局域网网段并不一样,所以我采取了仅主机模式网络共享这种方式&#x…...
小公司“混”的3年,我认真做了5件事,真的受益终生
小公司“混”的3年,我认真做了5件事,真的受益终生 目录:导读 功能测试很重要但不值钱 自动化测试在小公司没市场,但是你得会 给自己的一些忠告 第一件事:分清阶段,制定计划 第二件事:梳理…...
Linux Crontab命令定时任务基本语法与操作教程
Linux Crontab命令定时任务基本语法与操作教程 一、Crontab查看编辑重启 1、查看crontab定时执行任务列表 crontab -l 2、编辑crontab定时执行任务 crontab -e 3、删除crontab定时任务 crontab -r 4、相关命令: sudo service crond start #启动服务 sudo …...
文档测试要测什么,如何进行测试?
文档测试要测什么,如何进行测试? 对于交付用户文档来说,以需求、用户手册、安装手册等为主,检查用户文档是否和实际的存在差别,主要从以下几个方面来考虑: 阅读者:文档面向的读者定位要清晰&…...
.net 6 引入EFCore
这里默认使用sql server数据库 DBFirst nuget引入程序集 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityFrameworkCore.Design Microsoft.EntityFrameworkCore.Tools Microsoft.Extensions.Logging.Console 执行脚本 设置DAL…...
MySQL------自定义排序
1、MySQL函数 field() 实现自定义 语法: SELECT * from table_name ORDER BY FIELD(str,str1,str2,str3,…) str: 字段名, str1,str2,str3: 自定义排序的数值 例1排序-所有值: 先姓名排序后出生日期排序 SELECT * from name_info ORDER BY FIELD(name…...
FFMPEG自学二 ⾳频编码实战
一、FFmpeg编码流程二、流程关键函数avcodec_find_encoder:根据指定的AVCodecID查找注册的编码器。 avcodec_alloc_context3:为AVCodecContext分配内存。 avcodec_open2:打开编码器。 avcodec_send_frame:将AVFrame⾮压缩数据给…...
一致魔芋在北交所上市:市值突破11亿元,吴平夫妇为实控人
2月21日,湖北一致魔芋生物科技股份有限公司(下称“一致魔芋”,BJ:839273)在北京证券交易所上市。本次上市,一致魔芋的发行价为11.38元/股,发行1350万股,募资总额约为1.54亿元。 本次发行后&…...
进程或线程终止是否会释放锁
线程锁的必要性比如一个多线程抢票程序,tickets作为临界资源,所有的线程都要对它进行判断ticket是否大于0,以及ticket–的操作。用ticket–操作举例,虽然他看起来是一行C语言的代码,但是实际上它的底层汇编经历了三个阶…...
mysql复制表提示某些为null字段无效
sql_mode‘ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION’ explicit_defaults_for_timestamp ON 1、方式1、 首先用下面的命令看下sql_mode show variables like ‘sql_mode’; 如果查询的结果如下&#…...
【数据库】redis 配置文件与发布订阅
目录 配置文件 一,Units 二, INCLUDE 三,NETWORK 1, bind 2, tcp-backlog 3,timeout 4, tcp-keepalive 四,GENERAL 1,daemonize 2, pidfile 3&…...
ChatGPT来了,英语不能丢,但我不想上班
文 / 谷雨(微信公众号:王不留) 好久没写文,可能大伙已把我忘了。春节之后,状态一直不太好。我在2月1号时从老家直接来到了深圳出差,而后以996的工作状态疲于应付工作中的各种问题。 终于这周末休息了两天&a…...
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明
LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造,完美适配AGV和无人叉车。同时,集成以太网与语音合成技术,为各类高级系统(如MES、调度系统、库位管理、立库等)提供高效便捷的语音交互体验。 L…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
NFT模式:数字资产确权与链游经济系统构建
NFT模式:数字资产确权与链游经济系统构建 ——从技术架构到可持续生态的范式革命 一、确权技术革新:构建可信数字资产基石 1. 区块链底层架构的进化 跨链互操作协议:基于LayerZero协议实现以太坊、Solana等公链资产互通,通过零知…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
