Nacos简介—1.Nacos使用简介

大纲

1.Nacos的在服务注册中心 + 配置中心中的应用

2.Nacos 2.x最新版本下载与目录结构

3.Nacos 2.x的数据库存储与日志存储

4.Nacos 2.x服务端的startup.sh启动脚本

5.Dubbo + Nacos微服务RPC调用开发示例

6.Nacos对临时与持久化服务实例的健康检查机制

7.Nacos保护阈值机制防止高并发下出现服务雪崩

8.Nacos保护阈值机制开启后的CAP问题

9.集成Nacos注册中心和配置中心的项目演示

1.Nacos的在服务注册中心 + 配置中心中的应用

(1)Nacos作为服务注册中心

(2)Nacos作为配置中心

Nacos的两大应用场景分别是:

一.微服务技术体系下的服务注册中心

二.配置中心

(1)Nacos作为服务注册中心

(2)Nacos作为配置中心

每个系统都会有很多配置信息。比如数据库连接池的配置、RocketMQ的配置、Redis的配置,都会写在Spring Boot项目下的application.yml静态配置文件。如果需要修改配置信息,就需要重新打包、重启系统进行重新部署发布。

所以,可以将这些配置信息写到Nacos中进行存储,然后各个系统监听Nacos中的数据变化。这样当需要修改配置信息时,只需要到Nacos中修改对应的数据即可。

2.Nacos 2.x最新版本下载与目录结构

下载地址:

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

如下是nacos-server-2.1.2.zip的目录结构:

如下是对应的Source code(zip)的目录结构:

3.Nacos 2.x服务端的数据库存储与日志存储

数据库初始化的脚本和日志存储的配置文件位于如下位置:

4.Nacos 2.x服务端的startup.sh启动脚本

(1)服务端的startup.sh启动脚本与JVM参数

(2)Nacos 2.x服务端的单机模式启动命令

(3)Nacos 2.x服务端的三节点集群化部署

(1)服务端的startup.sh启动脚本与JVM参数

通过如下命令启动Nacos服务端。

$ java -jar ${BASE_DIR}/target/${SERVER}.jar
#!/bin/bash

# Copyright 1999-2018 Alibaba Group Holding Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at

#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

cygwin=false
darwin=false
os400=false
case "`uname`" in
CYGWIN*) cygwin=true;;
Darwin*) darwin=true;;
OS400*) os400=true;;
esac
error_exit ()
{
    echo "ERROR: $1 !!"
    exit 1
}
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=$HOME/jdk/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/usr/java
[ ! -e "$JAVA_HOME/bin/java" ] && JAVA_HOME=/opt/taobao/java
[ 
### 解决方案 Nacos 默认配置中的 `token.secret.key` 和 `server.identity.key` 如果未正确设置,可能导致权限绕过漏洞。以下是针对该问题的具体解决方案。 #### 修改配置文件 为了修复此问题,需编辑 Nacos 的配置文件(通常位于 `conf/application.properties` 或其他指定路径),并将以下参数添加到配置中: ```properties nacos.core.auth.system.type=nacos nacos.core.auth.enabled=true nacos.core.auth.server.identity.key=serverIdentity nacos.core.auth.server.identity.value=security nacos.core.auth.plugin.nacos.token.secret.key=<自定义的Base64编码字符串> ``` 其中 `<自定义的Base64编码字符串>` 是一个长度超过32字符的随机字符串,并经过 Base64 编码处理[^2]。例如,可以通过 Python 生成这样的字符串: ```python import base64 import os random_bytes = os.urandom(24) # 生成24字节的随机数据 base64_encoded_key = base64.b64encode(random_bytes).decode('utf-8')[:32] print(base64_encoded_key) ``` 上述脚本生成了一个适合用于替换默认值的新密钥。将其作为新的 `nacos.core.auth.plugin.nacos.token.secret.key` 值写入配置文件。 #### 参数说明 - **`nacos.core.auth.system.type=nacos`**: 设置身份验证系统的类型为 Nacos 自身的身份验证机制。 - **`nacos.core.auth.enabled=true`**: 开启身份验证功能。 - **`nacos.core.auth.server.identity.key=serverIdentity`**: 定义服务器端的身份标识键名。 - **`nacos.core.auth.server.identity.value=security`**: 定义服务器端的身份标识具体值。 - **`nacos.core.auth.plugin.nacos.token.secret.key`**: 替换默认的 Secret Key 以防止被利用[^1]。 完成以上更改后保存配置文件并重新启动 Nacos 服务。 对于集群环境下的部署,建议先停止从节点的服务,在主节点上应用新配置并重启成功之后再逐一更新从节点上的配置并分别重启它们,从而避免因配置不一致而导致的问题[^4]。 ### 注意事项 如果未能正确设置这些参数,则可能面临未经授权访问的风险,这已被确认为高危漏洞[^3]。因此强烈推荐按照上述方法调整您的生产环境中使用Nacos 实例的安全性设定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值