前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Nacos 学习笔记2 - 搭建 Nacos 集群

Nacos 学习笔记2 - 搭建 Nacos 集群

作者头像
张云飞Vir
发布2021-12-06 17:00:31
2.1K0
发布2021-12-06 17:00:31
举报
文章被收录于专栏:写代码和思考写代码和思考

1. 背景

生产环境中往往采用集群的方式保证Nacos的高可用,本文记录了搭建的过程。

Nacos集群的搭建时要注意:1.xx 版本和 2.xx 版本有区别。从2.0开始Nacos使用了 gRPC ,需要开放额外的端口。我就遇到了 各个 Nacos 节点无法互相复制,注册的服务不一致的情况。

2. 安装Nacos

集群模式部署 这个快速开始手册是帮忙您快速在你的电脑上,下载安装并使用Nacos,部署生产使用的集群模式。

集群部署架构图

image.png

因此开源的时候推荐用户把所有服务列表放到一个vip下面,然后挂到一个域名下面

http://ip1:port/openAPI 直连ip模式,机器挂则需要修改ip才可以使用。

http://SLB:port/openAPI 挂载SLB模式(内网SLB,不可暴露到公网,以免带来安全风险),直连SLB即可,下面挂server真实ip,可读性不好。

http://nacos.com:port/openAPI 域名 + SLB模式(内网SLB,不可暴露到公网,以免带来安全风险),可读性好,而且换ip方便,推荐模式

2.1. 预备环境准备

请确保是在环境中安装使用:

64 bit OS Linux/Unix/Mac,推荐使用Linux系统。 64 bit JDK 1.8+;下载.配置。 Maven 3.2.x+;下载.配置。 3个或3个以上Nacos节点才能构成集群。

2.2. 下载安装包

下载编译后压缩包方式

unzip nacos-server-1.3.0.zip 或者 tar -xvf nacos-server-1.3.0.tar.gz cd nacos/bin

2.3. 配置集群配置文件

在nacos的解压目录nacos/的conf目录下,有配置文件 cluster.conf,请每行配置成ip:port。(请配置3个或3个以上节点)

修改 cluster.conf ,命令如下:

代码语言:javascript
复制
vi cluster.conf

内容如下:

代码语言:javascript
复制
# ip:port
200.8.9.16:8848
200.8.9.17:8848
200.8.9.18:8848

2.4. 确定数据源

使用外置数据源 生产使用建议至少主备模式,或者采用高可用数据库。

(1) 初始化 MySQL 数据库

● 进入nacos/conf目录,找到nacos-mysql.sql。 ● 登入数据库,创建一个新的数据库,比如叫做 nacos_config。 ● 并在 mysql 中执行刚刚的找到的 nacos-mysql.sql 文件的语句来创建表。

(2) application.properties 配置 修改 application.properties配置文件中的数据源描述

spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://ip:3306/nacos_config?characterEncoding=u tf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&serverTimezone=UTC db.user=root db.password=数据库密码

2.5. 启动服务器

在 Linux/Unix/Mac 下安装 (1) 单机模式 Stand-alone mode

代码语言:javascript
复制
sh startup.sh -m standalone

(2) 集群模式

代码语言:javascript
复制
sh startup.sh

6. 配置 Nginx 代理

编辑文件nginx.conf, 命令:

代码语言:javascript
复制
$ cd /usr/local/nginx/conf
$ vi nginx.conf

内容修改:

代码语言:javascript
复制
upstream serverList {
server 172.17.0.112:8847;
server 172.17.0.111:8847;
server 172.17.0.110:8847;
}

server {
  location / {
     proxy_pass  http://serverList;
  }
}

3. Nacos 开机自启的设置

编辑一个服务文件

命名为 start-nacos.sh 文件,内容如下:

代码语言:javascript
复制
#!/bin/bash
export JAVA_HOME=/opt/data/jdk1.8/jdk1.8.0_161   
nohup nacos_home/bin/startup.sh -m standalone &

在操作系统启动后 /etc/profile 还未加载,所以这里要先 设置 JAVA_HOME 的环境变量,改成你实际的java jdk 路径。 然后正常启动 nacos 即可。

在 /etc/rc.local 文件的尾部加上下面的内容即可。

代码语言:javascript
复制
sh start-nacos.sh 

4. Nacos 2.0.0 和 1.x 的区别

注意 开放gRPC端口

Nacos2.0版本相比1.X新增了gRPC的通信方式,因此需要增加2个端口。新增端口是在配置的主端口(server.port)基础上,进行一定偏移量自动生成。

端口

与主端口的偏移量

描述

9848

1000

客户端gRPC请求服务端端口,用于客户端向服务端发起连接和请求

9849

1001

服务端gRPC请求服务端端口,用于服务间同步等

使用VIP/nginx请求时,需要配置成TCP转发,不能配置http2转发,否则连接会被nginx断开。

5.参考

https://nacos.io/zh-cn/docs/2.0.0-compatibility.html

https://blog.csdn.net/lzzyok/article/details/118057217?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_aggregation-1-118057217.pc_agg_rank_aggregation&utm_term=nacos%E9%9B%86%E7%BE%A4+%E6%9C%8D%E5%8A%A1%E5%88%97%E8%A1%A8%E4%B8%8D%E4%B8%80%E8%87%B4&spm=1000.2123.3001.4430

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021/9/13 下,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 背景
  • 2. 安装Nacos
    • 2.1. 预备环境准备
      • 2.2. 下载安装包
        • 2.3. 配置集群配置文件
          • 2.4. 确定数据源
            • 2.5. 启动服务器
              • 6. 配置 Nginx 代理
          • 3. Nacos 开机自启的设置
          • 4. Nacos 2.0.0 和 1.x 的区别
          • 5.参考
          相关产品与服务
          对象存储
          对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档