SpringCloudAlibaba-----Nacos(最全学习笔记 单体--集群)

本文详细介绍了Nacos在Windows和Linux环境下的下载安装、启动过程,包括解决启动时可能遇到的问题,如数据库配置和Tomcat启动错误。接着,讲解了服务注册与发现的配置步骤,并展示了在Nacos控制台创建配置文件的方法。对于Nacos集群模式的搭建,文章提供了详细的步骤,包括MySQL数据库的配置、集群配置文件的编辑以及启动命令的修改。最后,介绍了如何通过Nginx进行负载均衡的配置,以及项目中如何配置Nacos地址。整个教程旨在帮助读者理解并实践Nacos的使用和集群部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、下载安装

进入官网,下载zip包,这里演示windows下的运行及启动

二、启动

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

进入bin目录,输入cmd,回车,然后执行命令startup.smd 命令进行启动。
启动成功后,在页面输入localhost:8848/nacos ,登录名和密码都是nacos

在这里插入图片描述
注意:这里可能会报错,下面是解决办法
错误1:db.num is null
解决方法:在本地mysql创建一个名为 nacos的数据库,然后执行 conf文件下的 nacos-mysql.sql文件。
修改application.properties文件,主要修改用户名和密码
在这里插入图片描述
错误2:Unable to start embedded Tomcat
解决方法:修改bin目录下startup.cmd文件,改为单机版启动
在这里插入图片描述

三、引入依赖

四、服务注册与发现

1.配置bootstrap.yml文件
server:
  port: 3377

spring:
  application:
  # 服务名
    name: nacos-config-client
  cloud:
    nacos:
      discovery:
      #nacos地址
        server-addr: localhost:8848
      config:
        server-addr: localhost:8848
        file-extension: yml

2.配置application.yml文件
spring:
  profiles:
    active: dev
3.在nacos创建配置文件

命名规范:$ {prefix}-$ {spring.profiles.active}.${file-extension}
例:下面这个就会去nacos找名为 nacos-config-client-dev.yml 的配置文件
在这里插入图片描述在nacos控制台,localhost:8848/nacos,创建配置文件
在这里插入图片描述
上面使用的是默认的命名规范来找配置文件的,也可以指定查找,方法如下

1.可以设置分组名,设置后,就会在该分组下查找默认命名规范的配置文件,不设置分组名就会去默认分组(DEFAULT_GROUP)下查找

在这里插入图片描述

2.可以设置namespace

默认是只有一个public命名空间的,也可以自己新增,每个命名空间都有自己唯一的ID,在yml中配置该ID即可指定是哪个命名空间下的。
在这里插入图片描述
在这里插入图片描述

// A code block
var foo = 'bar';
4.启动

启动后可观察控制台信息
在这里插入图片描述

Nacos集群和持久化配置

Nacos支持三种部署模式
1.单机模式
2.集群模式 - 用于生产环境,确保高可用
3.多集群模式 - 用于多数据中心场景

1.单机模式
上面演示的就是单机模式,不再概述

2.集群模式
注意:上面我们自己配了mysql数据源,如果不配置的话,nacos会使用内嵌的derby数据库来存储信息的

集群模式搭建

1 下载tar包

https://github.com/alibaba/nacos/releases/tag/1.1.4

2 在linux上解压并安装Nacos

cd /opt
tar -zxvf tar包
解压后有一个nacos文件夹
在这里插入图片描述

这里我copy到一个文件夹中进行操做
cp -r nacos /mynacos/nacos1

3.下载并安装mysql

这里就引用别人的博客了
链接: 安装及步骤地址.
注意:该博客中到下面一步可能会报错,下面这个博客是解决办法
在这里插入图片描述
链接: 报错解决地址.

4.执行nacos/conf下的nacos-mysql.sql 脚本文件到mysql下的nacos_config数据库里

执行后可看到库里有这些表:
在这里插入图片描述

5.修改nacos/conf/ applicaytion.properties文件

在修改前一般都要保存一份原始的
cd /mynacos/nacos1/conf
cp application.properties application.properties.bk
vi application.properties
在该文件里面添加下面这些信息

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_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true
&useSSL=false&serverTimezone=UTCdb.user.0=root
db.password.0=123456
6.配置集群配置文件

conf目录下自带这一个文件cluster.conf.example ,这个就是用来做集群配置用的
我们copy一份进行操作,自带的文件保留
cp cluster.conf.example cluster.conf
在这里插入图片描述
这里面主要配置nacos集群的ip及端口,这里的ip不能写127.0.0.1必须是linux命令能识别的ip
可以用这个命令查看 hostname -i
在这里插入图片描述
执行命令并填入下面这些值,vi cluster.conf
在这里插入图片描述

7.修改配置集群命令启动

修改这个文件是为了能够用 startup.sh -p 3333 startup.sh -p 4444 startup.sh -p 5555 这种形式启动
进入bin目录,老规矩保存原来的文件
copy startup.sh startup.sh.bk
修改下图标出来的内容 vi startup.sh
在这里插入图片描述在这里插入图片描述
看不清的话内容如下在这里插入图片描述

8.启动,及查看是否启动成功

注意:需要配有java环境

./startup.sh -p 3333

./startup.sh -p 4444

./startup.sh -p 5555

检查是否启动成功可以去 log/start.out 日志进行查看

tail -f /logs/start.out

启动成功:
在这里插入图片描述

这里可能会报错,下面是报错及解决方法
1.运行内存不足
在这里插入图片描述
解决方法:修改jvm参数
vi /bin/start.sh
修改前:
在这里插入图片描述
修改后:
在这里插入图片描述
:wq 退出保存
然后重新启动

9.进入控制台进行查看

ip是你自己虚拟机的ip,查看是 hostname -i
ip:3333/nacos
用户名和密码都是 nacos
在这里插入图片描述

到这里集群的配置就完成了!但是!你的项目的配置文件怎么去指呢?指到3333?4444?5555?不行!这样还是相当于是单机版,所以这里就要通过nginx去进行转发,从而达到负载均衡的效果

在这里插入图片描述

来整起!

一、配置nginx转发
1.安装nginx

具体安装参考其他博客啊,这里就不写了

2.修改nginx.conf文件

在这里插入图片描述
在这里插入图片描述
这里主要是配置转发,配置如下,增加如下内容:
在这里插入图片描述
3.启动nginx
./ nginx
4.浏览器输入 ip:80 检查nginx是否正常启动
在这里插入图片描述

二、项目中配置nacos地址

注意:这里配的地址就是nginx里配置的地址ip:1111
修改上面windows时候讲的项目里的配置进行测试:
在这里插入图片描述

三、启动项目观察结果

访问ip:1111/nacos ,可以看到服务成功的注册进来了!
在这里插入图片描述

到这里就学完啦!还有一些概念我就放到最下面了,面试会用到哦~

概念篇:

1.Nacos由三个值来定位,NameSpece,Group, DataId

2.Nacos支持AP和CP模式的切换

3.在项目初始化的时候,要保住先从配置中心进行配置拉取,拉取配置之后,才能保证项目的正常启动,因此要写在bootstrap.yml文件中。
springboot中配置文件的加载是存在优先级顺序的,bootstrap优先级高于application

4.心跳机制:在微服务框架中,我们利用注册中心统一对各个服务进行管理,这时,就需要知道各个服务的健康状态,也就是各个服务定时发送一个自定义的结构体(心跳包)到注册中心,让对方知道自己还活着,以确保连接的有效性的机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

宝藏-程序男孩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值