阿里巴巴NACOS(3)- 部署Nacos的生产集群环境

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 上一篇文章介绍了如何在Spring Cloud中使用Nacos,让我感觉是无缝支持Spring Cloud,可惜的是阿里云的MSE暂时只支持Nacos的服务注册和发现,配置中心还是需要用阿里云的ACM来完成,本文将介绍如何部署Nacos的生产集群环境。

作者:阿里云 MVP郦强

1、集群部署

相比较 Nacos 的单机部署方式(第一篇文章中有介绍),集群部署方式稍显麻烦一些,当然为了用于生产环境,必须确保 Nacos 的高可用性,所以还是有必要使用集群部署。

准备环境跟第一篇文章中说的相同,额外的要求就是 Nacos 需要 3个或3个以上Nacos节点才能构成集群,而且要使用 MySQL 作为数据源,主要用于服务配置的数据持久化。

下图是官方推荐的集群方案,通过域名 + VIP模式的方式来实现,我的理解VIP模式就用 Nginx 就行,用它来负载多个 Nacos 节点 IP,外部客户端直接通过域名访问就可,不仅可读性好,而且更换 IP 方便,最为推荐采用。
郦3-1.png

官方集群方案图

2、添加集群配置文件

nacos的conf目录下有配置文件cluster.conf,请每行配置成ip:port

如果您只有一台机器,可以创建3个或3个以上的Nacos文件夹,改一下端口号,也可以实现2.png

cluster.conf配置

3、配置MySQL数据库

Nacos 推荐生产环境中数据库使用建议至少主备模式,或者采用高可用数据库。

这里为了简化只采用了一个数据库,首先创建一个名为 nacos_config 的数据库,然后找到nacos/conf下的 nacos-mysql.sql 文件执行即可。

3.png

nacos_config数据库

在nacos的conf目录下的application.properties,添加以下配置4.png

application.properties配置

4、启动Nacos集群模式

在没有参数模式,是集群模式

sh startup.sh

输出信息看start.out,如果最后提示: INFO Nacos started successfully in cluster mode.这样就表示集群模式启动成功,然后打开任何一个Nacos控制台都能看到节点列表
列表.png

集群节点列表

可以从上面看到,集群下的 Nacos 节点状态分为LEADER 和 FOLLOWER 两种,跟我们熟悉的主从架构相似。如果您想简单的话,推荐使用阿里云的MSE,3分钟帮您搞定Nacos集群模式
MSE的Nacos集群模式.png

MSE的Nacos集群模式

5、Nginx配置

我是Mac电脑,所以使用brew的方式安装Nginx,然后在Nginx中进行配置
Nginx中的配置.png

Nginx中的配置

注意:server_name 就是 直接改成域名就行。

然后Nginx -s reload 重新加载配置后即可,我把nacos官方Spring Cloud Nacos Example的示例打开,Provider和Consumer两个项目中的application.properties文件的nacos server地址都改成了 Nginx中配置的server_name。

指定nacos的server地址.png

指定nacos的server地址

启动项目,就可以在nacos集群的任何一个节点的服务管理列表中看到里面已经有服务注册成功了
服务列表页.png

服务列表页

然后在浏览器中输入 http://localhost:8080/echo/强哥 ,看到返回 Hello Nacos Discovery 强哥,这样就表示成功了,其实这个Example就是微服务和微服务之间的调用,所有nacos示例代码下载
执行Consumer服务,成功请求到Provider服务.png

执行Consumer服务,成功请求到Provider服务

6、总结

如果是开发环境建议单节点就行了,测试和生产环境用集群模式,而且MySQL数据库也建议使用阿里云的RDS服务,主从架构。下一篇我们将介绍 几个主流微服务框架配置中心产品比较 Spring Cloud Config、阿里云ACM、Nacos等。

首发简书。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
Kubernetes Nacos 数据库
k8s快速部署nacos单机版
k8s快速部署nacos单机版
|
25天前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
95 1
|
3月前
|
Kubernetes 关系型数据库 MySQL
k8s部署nacos集群
k8s部署nacos集群
|
3月前
|
应用服务中间件 Nacos 数据库
Nacos 1.2.1 集群搭建(三) Nginx 配置 集群
Nacos 1.2.1 集群搭建(三) Nginx 配置 集群
64 1
|
3月前
|
SQL 关系型数据库 MySQL
Nacos 1.2.1 集群搭建(二)MySQL、cluster 配置
Nacos 1.2.1 集群搭建(二)MySQL、cluster 配置
95 1
|
3月前
|
Java Nacos Docker
"揭秘!Docker部署Seata遇上Nacos,注册成功却报错?这些坑你不得不防!一网打尽解决秘籍,让你的分布式事务稳如老狗!"
【8月更文挑战第15天】在微服务架构中,Nacos搭配Seata确保数据一致性时,Docker部署Seata后可能出现客户端连接错误,如“can not connect to services-server”。此问题多由网络配置不当、配置文件错误或版本不兼容引起。解决策略包括:调整Docker网络设置确保可达性;检查并修正`file.conf`和`registry.conf`中的Nacos地址和端口;验证Seata与Nacos版本兼容性;修改配置后重启服务;参考官方文档和最佳实践进行配置。通过这些步骤,能有效排除故障,保障服务稳定运行。
267 0
|
3月前
|
Kubernetes Nacos 数据安全/隐私保护
疯了!Nacos 用 Helm 部署开启授权认证频频出错?别急,秘籍在此!
【8月更文挑战第15天】本文指导您通过Helm部署Nacos并开启授权认证,解决途中遇到的问题。首先确认已安装Helm并了解Kubernetes基础。示例`values.yaml`文件启用认证并设置凭据。运行Helm命令完成部署。若认证失败,请复查用户名及密码准确性。面对权限不足错误,可配置权限策略,示例代码展示基于请求头的简单验证逻辑。Nacos启动异常时,利用`kubectl logs`命令分析Pod日志定位问题。遵循本文步骤与示例,助您成功部署并配置Nacos。
89 0
|
3月前
|
关系型数据库 MySQL Nacos
Nacos 1.2.1 集群搭建(一)环境准备
Nacos 1.2.1 集群搭建(一)环境准备
81 0
|
12天前
|
负载均衡 应用服务中间件 Nacos
Nacos配置中心
Nacos配置中心
42 1
Nacos配置中心
|
8天前
|
监控 Java 测试技术
Nacos 配置中心变更利器:自定义标签灰度
本文是对 MSE Nacos 应用自定义标签灰度的功能介绍,欢迎大家升级版本进行试用。