nacos高可用(图解+秒懂+史上最全)

本文深入探讨了Nacos的高可用性特性,包括客户端的重试机制、本地缓存Failover、健康检查模式以及服务端的AP和CP模式。Nacos通过配置多个服务器地址、本地缓存服务快照和心跳机制确保在服务端宕机时仍能维持系统运行。此外,详细介绍了Nacos的两种一致性协议:AP模式下的distro协议和CP模式下的raft协议,以及集群部署策略,强调了在服务注册发现场景中的可用性优势。

文章很长,建议收藏起来,慢慢读! Java 高并发 发烧友社群:疯狂创客圈 奉上以下珍贵的学习资源:


推荐:入大厂 、做架构、大力提升Java 内功 的 精彩博文

入大厂 、做架构、大力提升Java 内功 必备的精彩博文 2021 秋招涨薪1W + 必备的精彩博文
1:Redis 分布式锁 (图解-秒懂-史上最全) 2:Zookeeper 分布式锁 (图解-秒懂-史上最全)
3: Redis与MySQL双写一致性如何保证? (面试必备) 4: 面试必备:秒杀超卖 解决方案 (史上最全)
5:面试必备之:Reactor模式 6: 10分钟看懂, Java NIO 底层原理
7:TCP/IP(图解+秒懂+史上最全) 8:Feign原理 (图解)
9:DNS图解(秒懂 + 史上最全 + 高薪必备) 10:CDN图解(秒懂 + 史上最全 + 高薪必备)
11: 分布式事务( 图解 + 史上最全 + 吐血推荐 ) 12:seata AT模式实战(图解+秒懂+史上最全)
13:seata 源码解读(图解+秒懂+史上最全) 14:seata TCC模式实战(图解+秒懂+史上最全)

Java 面试题 30个专题 , 史上最全 , 面试必刷 阿里、京东、美团… 随意挑、横着走!!!
1: JVM面试题(史上最强、持续更新、吐血推荐) 2:Java基础面试题(史上最全、持续更新、吐血推荐
3:架构设计面试题 (史上最全、持续更新、吐血推荐) 4:设计模式面试题 (史上最全、持续更新、吐血推荐)
[root@localhost cloud-demo]# docker-compose logs nacos Attaching to cloud-demo_nacos_1 nacos_1 | + export 'CUSTOM_SEARCH_NAMES=application' nacos_1 | + export 'CUSTOM_SEARCH_LOCATIONS=file:/home/nacos/conf/' nacos_1 | + export 'MEMBER_LIST=' nacos_1 | + PLUGINS_DIR=/home/nacos/plugins/peer-finder nacos_1 | + join_if_exist -Xms 256m nacos_1 | + '[' -n 256m ] nacos_1 | + echo -Xms256m nacos_1 | + Xms=-Xms256m nacos_1 | + join_if_exist -Xmx 256m nacos_1 | + '[' -n 256m ] nacos_1 | + echo -Xmx256m nacos_1 | + Xmx=-Xmx256m nacos_1 | + join_if_exist -Xmn 128m nacos_1 | + '[' -n 128m ] nacos_1 | + echo -Xmn128m nacos_1 | + Xmn=-Xmn128m nacos_1 | + join_if_exist '-XX:MetaspaceSize=' 64m nacos_1 | + '[' -n 64m ] nacos_1 | + echo '-XX:MetaspaceSize=64m' nacos_1 | + XX_MS='-XX:MetaspaceSize=64m' nacos_1 | + join_if_exist '-XX:MaxMetaspaceSize=' 128m nacos_1 | + '[' -n 128m ] nacos_1 | + echo '-XX:MaxMetaspaceSize=128m' nacos_1 | + XX_MMS='-XX:MaxMetaspaceSize=128m' nacos_1 | + '[[' standalone '==' standalone ]] nacos_1 | + JAVA_OPT=' -Xms256m -Xmx256m -Xmn128m' nacos_1 | + JAVA_OPT=' -Xms256m -Xmx256m -Xmn128m -Dnacos.standalone=true' nacos_1 | + '[[' all '==' config ]] nacos_1 | + '[[' all '==' naming ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' -z ]] nacos_1 | + echo 'env NACOS_AUTH_TOKEN must be set with Base64 String.' nacos_1 | + exit 255 nacos_1 | env NACOS_AUTH_TOKEN must be set with Base64 String. nacos_1 | + export 'CUSTOM_SEARCH_NAMES=application' nacos_1 | + export 'CUSTOM_SEARCH_LOCATIONS=file:/home/nacos/conf/' nacos_1 | + export 'MEMBER_LIST=' nacos_1 | + PLUGINS_DIR=/home/nacos/plugins/peer-finder nacos_1 | + join_if_exist -Xms 256m nacos_1 | + '[' -n 256m ] nacos_1 | + echo -Xms256m nacos_1 | + Xms=-Xms256m nacos_1 | + join_if_exist -Xmx 256m nacos_1 | + '[' -n 256m ] nacos_1 | + echo -Xmx256m nacos_1 | + Xmx=-Xmx256m nacos_1 | + join_if_exist -Xmn 128m nacos_1 | + '[' -n 128m ] nacos_1 | + echo -Xmn128m nacos_1 | + Xmn=-Xmn128m nacos_1 | + join_if_exist '-XX:MetaspaceSize=' 64m nacos_1 | + '[' -n 64m ] nacos_1 | + echo '-XX:MetaspaceSize=64m' nacos_1 | + XX_MS='-XX:MetaspaceSize=64m' nacos_1 | + join_if_exist '-XX:MaxMetaspaceSize=' 128m nacos_1 | + '[' -n 128m ] nacos_1 | + echo '-XX:MaxMetaspaceSize=128m' nacos_1 | + XX_MMS='-XX:MaxMetaspaceSize=128m' nacos_1 | + '[[' standalone '==' standalone ]] nacos_1 | + JAVA_OPT=' -Xms256m -Xmx256m -Xmn128m' nacos_1 | + JAVA_OPT=' -Xms256m -Xmx256m -Xmn128m -Dnacos.standalone=true' nacos_1 | + '[[' all '==' config ]] nacos_1 | + '[[' all '==' naming ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' -z ]] nacos_1 | + echo 'env NACOS_AUTH_TOKEN must be set with Base64 String.' nacos_1 | + exit 255 nacos_1 | env NACOS_AUTH_TOKEN must be set with Base64 String. nacos_1 | + export 'CUSTOM_SEARCH_NAMES=application' nacos_1 | + export 'CUSTOM_SEARCH_LOCATIONS=file:/home/nacos/conf/' nacos_1 | + export 'MEMBER_LIST=' nacos_1 | + PLUGINS_DIR=/home/nacos/plugins/peer-finder nacos_1 | + join_if_exist -Xms 256m nacos_1 | + '[' -n 256m ] nacos_1 | + echo -Xms256m nacos_1 | + Xms=-Xms256m nacos_1 | + join_if_exist -Xmx 256m nacos_1 | + '[' -n 256m ] nacos_1 | + echo -Xmx256m nacos_1 | + Xmx=-Xmx256m nacos_1 | + join_if_exist -Xmn 128m nacos_1 | + '[' -n 128m ] nacos_1 | + echo -Xmn128m nacos_1 | + Xmn=-Xmn128m nacos_1 | + join_if_exist '-XX:MetaspaceSize=' 64m nacos_1 | + '[' -n 64m ] nacos_1 | + echo '-XX:MetaspaceSize=64m' nacos_1 | + XX_MS='-XX:MetaspaceSize=64m' nacos_1 | + join_if_exist '-XX:MaxMetaspaceSize=' 128m nacos_1 | + '[' -n 128m ] nacos_1 | + echo '-XX:MaxMetaspaceSize=128m' nacos_1 | + XX_MMS='-XX:MaxMetaspaceSize=128m' nacos_1 | + '[[' standalone '==' standalone ]] nacos_1 | + JAVA_OPT=' -Xms256m -Xmx256m -Xmn128m' nacos_1 | + JAVA_OPT=' -Xms256m -Xmx256m -Xmn128m -Dnacos.standalone=true' nacos_1 | + '[[' all '==' config ]] nacos_1 | + '[[' all '==' naming ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' '!' -z ]] nacos_1 | + '[[' -z ]] nacos_1 | + echo 'env NACOS_AUTH_TOKEN must be set with Base64 String.' nacos_1 | + exit 255 nacos_1 | env NACOS_AUTH_TOKEN must be set with Base64 String.
最新发布
11-05
Nacos 容器启动报错 `env NACOS_AUTH_TOKEN must be set with Base64 String.` 是因为需要设置一个 Base64 编码的字符串作为 `NACOS_AUTH_TOKEN` 环境变量。解决办法如下: ### 生成 Base64 编码的令牌 可以使用 Python 脚本或者 Linux 命令行工具生成 Base64 编码的字符串。 #### 使用 Python 脚本 ```python import base64 # 原始令牌 raw_token = "your_token_here" # 编码为 Base64 encoded_token = base64.b64encode(raw_token.encode('utf-8')).decode('utf-8') print(encoded_token) ``` 将 `your_token_here` 替换为实际想要使用的令牌,运行脚本后会输出对应的 Base64 编码字符串。 #### 使用 Linux 命令行 ```bash echo -n "your_token_here" | base64 ``` 同样,将 `your_token_here` 替换为实际令牌,命令会输出 Base64 编码结果。 ### 在 Docker Compose 文件中设置环境变量 #### 使用 `env_file` 在 `nacos.env` 文件中添加: ```plaintext NACOS_AUTH_TOKEN=your_base64_encoded_token ``` 将 `your_base64_encoded_token` 替换为上一步生成的 Base64 编码字符串。 #### 直接在 `environment` 字段中设置 修改 `docker-compose.yml` 文件: ```yaml nacos: image: nacos-server:v2.4.2 container_name: nacos0 restart: always network_mode: host hostname: nacos0 environment: - NACOS_AUTH_TOKEN=your_base64_encoded_token volumes: - ./nacos/logs:/home/nacos/logs logging: driver: "json-file" options: max-size: "100m" max-file: "5" ``` 将 `your_base64_encoded_token` 替换为生成的 Base64 编码字符串。 ### 重新启动 Nacos 容器 使用以下命令重新启动 Nacos 容器: ```bash docker-compose down docker-compose up -d ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值