Nacos集群启动注意事项

nacos,集群,启动,注意事项 · 浏览次数 : 207

小编点评

## Nacos集群测试概述 1. **资源下载和安装** - 从 Github 中下载最新版本 Nacos 2.2 压缩包。 - 创建一个独立的 Java 环境,并运行 `bin/startup.sh` 进行配置。 2. **数据库初始化** - 使用 `mysql` 命令初始化数据库。 - 修改 `application.properties` 文件中的数据库连接信息。 3. **配置nginx** - 配置 `nginx.conf` 文件,设置代理服务器。 - 配置 `worker_processes` 变量,设置服务器数量为 4。 4. **测试应用连接** - 使用 `application.yaml` 配置应用程序连接到 Nacos 服务。 - 验证应用程序是否正常连接到 Nacos 服务。 **注意** * 请确保您的应用程序运行在与 Nacos 服务相同的服务器上。 * 请修改 `application.properties` 中的 `spring.datasource.platform` 设置,并根据您的数据库类型进行调整。 * 请在测试之前确保您的数据库已初始化完毕。 **排版** ```bash # 下载资源 wget -O nacos-2.2.tar.gz https://github.com/alibaba/nacos/releases # 解压缩资源 tar -xzvf nacos-2.2.tar.gz # 设置环境变量 export SPARK_HOME=/nacos/spark-2.4.0/ # 初始化数据库 mysql -u root -p -Dnacos -e "create database nacos ; set password for nacos@'%' identified with mysql_native_password by 'Testxxxxxxxx'; grant all on nacos.* to 'nacos'@'%' ;" # 创建数据库表 mysql -u root -p -Dnacos -e "create table if not exists nacos (id INT PRIMARY KEY AUTO_INCREMENT, data TEXT NOT NULL) ;" # 配置Nacos配置文件 cp cluster.conf.example cluster.conf # 修改application.properties配置 sed -i "s/localhost:8845127.0.0.1:8847127.0.0.1:8849/# 127.0.0.1:8845127.0.0.1:8847127.0.0.1:8849/" application.properties # 配置nginx cat nginx.conf > nginx.conf.temp # 配置worker processes cat worker_config.temp > nginx.conf # 编写启动脚本 cat startup.sh > startup.sh # 运行启动脚本 nohup sh startup.sh & # 监控日志 lsof -i:8848 | awk '{print $2}' | xargs kill -9 sleep 3cd $dir/nginx./nginx -c $dir/nginx/nacos.conf ```

正文

简介

Nacos是阿里巴巴开源的一套服务注册发现的应用
使用简单灵活, 是spring Cloud Alibaba的组成部分
现在拆分微服务的部署情况下,极大的需求nacos服务作为支撑
单点情况下存在宕机的危险, 所以最近为了进行测试验证.
所以准备启用一套集群版本的nacos集群进行测试兼容性验证

注意为了方便灵活,本次使用一台虚拟机进行集群的验证.
仅是验证集群的兼容性之的能力,而不是验证集群的高可用.

第一步: 资源下载

2022-12时最新版本的Nacos是2.2的版本
https://github.com/alibaba/nacos
可以直接从github上面下载对应的tar包.
注意里面不带jdk, 需要使用环境单独的jdk进行相应的处理.

第二步: 数据库初始化

创建一个mysql的数据库.
mysql -uroot -p 
登录
create database nacos ;
设置对应的数据库用户密码等:
create user 'nacos'@'%' identified with mysql_native_password by 'Testxxxxxxxx';
grant all on nacos.* to 'nacos'@'%' ; 
然后执行相关的命令:
mysql -unacos -p -Dnacos </nacoscluster/nacosxxxx/conf/mysql-schema.sql
创建对应的数据库

第三步: 参数文件修改

注意主要修改两个配置文件:
位置: /nacos/conf
第一个:
复制cluster.conf.example 改为 cluster.conf
修改最后的IP列表
127.0.0.1:8845
127.0.0.1:8847
127.0.0.1:8849
# 注意最后要修改成外部IP地址 127 好像不行. 
第二个: 
application.properties
主要修改两个地方:
第一个地方是端口
可以按照上一步的描述修改端口
第二个是修改数据库连接信息
### If use MySQL as datasource:
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?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=Testxxxxx

# 注意需要修改掉注释
# 注意需要严格数据库实例的用户密码等信息.

第四步: 编写nginx的配置

worker_processes 2;
user root ;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile on;
    gzip  on;
    access_log off;
    client_max_body_size 3072m;
    client_header_buffer_size 64k;
    large_client_header_buffers 4 64k;
    client_body_buffer_size 100m;
    gzip_buffers 16 8k;
    proxy_buffer_size 1024k;
    proxy_buffers 4 1024k;
    proxy_busy_buffers_size 2048k;
    proxy_temp_file_write_size 2048k;
    keepalive_timeout 6000;
    fastcgi_connect_timeout 600;
    fastcgi_send_timeout 600;
    fastcgi_read_timeout 600;
    proxy_connect_timeout 600s;
    proxy_send_timeout 1200;
    proxy_read_timeout 1200;
    server_tokens off;

 upstream nacos{
     ip_hash;
     server 127.0.0.1:8845 ;
     server 127.0.0.1:8847 ;
     server 127.0.0.1:8849 ;   
   }
    server {
        listen       8848;
        proxy_buffer_size   128k;
        proxy_buffers   4 256k;
        proxy_busy_buffers_size   256k;
        proxy_set_header        Host            $http_host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
       location / {
         proxy_pass http://nacos ;
        }
    }
}


第五步: 编写启动脚本

ps -ef |grep nacos |awk '{print $2}'|xargs kill -9
sleep 3
dir=`pwd`
cd $dir/nacos8845/bin
nohup ./startup.sh &
cd $dir/nacos8847/bin
nohup ./startup.sh &
cd $dir/nacos8849/bin
nohup ./startup.sh &
lsof -i:8848 |awk '{print $2}'|xargs kill -9 
sleep 3
cd $dir/nginx
./nginx -c $dir/nginx/nacos.conf


第六步: 进行应用连接验证

需要springboot的 application.yaml配置文件进行处理.

与Nacos集群启动注意事项相似的内容:

Nacos集群启动注意事项

简介 Nacos是阿里巴巴开源的一套服务注册发现的应用 使用简单灵活, 是spring Cloud Alibaba的组成部分 现在拆分微服务的部署情况下,极大的需求nacos服务作为支撑 单点情况下存在宕机的危险, 所以最近为了进行测试验证. 所以准备启用一套集群版本的nacos集群进行测试兼容性验

[转帖]skywalking配置nacos集群模式

版本: nameversionnacos1.1.0skywalking6.2.0elasticsearch6.3.2 es集群管理工具 cerebro-0.8.3 https://github.com/lmenezes/cerebro 前置: es、nacos至少各有一个 1 开始: 1.将 apa

debian11 使用podman搭建 nacos-server

前言 基于debian11 + podman 搭建 nacos-server 用于简单测试。 nacos-server基于java,如果直接运行还要准备java环境,在docker/podman 镜像中发现了打包好的nacos-server镜像,集成了java和nacos-server。 正文 1.

2023最新nacos的windows 10安装(保姆级)

前景提要 Nacos 致力于帮助您发现、配置和管理微服务.Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理,一个好的工具,文档也很全面,可以学习使用. 一、环境整合 构建工具(参考工具部署方式) | 软件名称 | 版本 | 相关文章推荐 | | |

[转帖]Spring Cloud Alibaba Nacos 注册中心使用教程

一. 什么是Nacos Nacos是一个更易于构建云原生应用的动态服务发现(Nacos Discovery )、服务配置(Nacos Config)和服务管理平台,集注册中心+配置中心+服务管理于一身,基本特性如下: 服务发现和服务健康监测; 动态配置服务; 动态 DNS 服务; 服务及其元数据管理

聊聊Nacos框架功能与原理

Nacos的设计有两点很值得参考;首先是注册中心模块,服务状态动态感知是基于HTTP短链接+UDB通信来实现,其实正确来说,应该是基于UDP通信实现客户端与服务端的服务实例列表数据同步,利用http定时任务来做补偿。其次配置中心模块的配置信息动态监听基于HTTP长轮询实现,最大限度的保证了实时性,在

[转帖]Nacos和Eureka的区别

Eureka架构图: Eureka架构图 1.服务注册(register):Eureka Client会通过发送REST请求的方式,向Eureka Server注册自己的服务。注册时,提供自身的元数据,比如ip地址、端口、运行状况指标、主页地址等信息。Eureka Server接收到注册请求后,就会

[转帖]nacos修改密码

https://www.cnblogs.com/cherish-code/p/14765862.html nacos修改默认的用户名密码 修改配置文件, vim nacos/conf/application.properties 在配置文件加入如下: spring.datasource.platfo

[转帖]Nacos 是什么?

https://my.oschina.net/u/4526289/blog/5605693 摘要:Nacos 是 Dynamic Naming and Configuration Service 的首字母简称,相较之下,它更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 本文分享自华为云

[转帖]nacos开启强鉴权

注意 Nacos是一个内部微服务组件,需要在可信的内部网络中运行,不可暴露在公网环境,防止带来安全风险。 Nacos提供简单的鉴权实现,为防止业务错用的弱鉴权体系,不是防止恶意攻击的强鉴权体系。 如果运行在不可信的网络环境或者有强鉴权诉求,请参考官方简单实现做替换增强。 鉴权 服务端如何开启鉴权 非