• nacos集群配置笔记


    一、安装

    1.1 下载

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

    1.2 解压

    tar -zxvf nacos-server-2.0.2.tar.gz
    

    1.3 集群配置

    进入安装目录中conf目录,复制cluster.conf.example为cluster.conf

    cp cluster.conf.example cluster.conf
    

    编辑cluster.conf,加入所有集群设备

    vim cluster.conf
    
    192.168.44.10:8848
    192.168.44.11:8848
    192.168.44.12:8848
    

    1.4 调整nacos启动时虚拟机内存参数

    进入安装目录中bin目录,编辑startup.sh

    vim startup.sh
    
    找到集群JAVA参数内存配置
    JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"
    
    根据需要调整堆内存和元数据空间的大小,如果在测试环境中,可以考虑降低内存配置,例如:
    JAVA_OPT="${JAVA_OPT} -server -Xms512m -Xmx512m -Xmn128m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=256m"
    

    1.5 使用内置数据源启动集群

    nacos会自动同步集群中的数据,即使这三份数据分别存在不同的数据库中,缺省的数据库是derby.

    sh startup.sh -p embedded
    

    关闭服务器

    sh shutdown.sh
    

    1.6 使用外置数据源启动集群

    使用conf目录下的nacos-mysql.sql脚本初始化nacos数据库。

    1. 数据库名称可以随意,最终要配置到url里。
    2. 最好为数据库独立创建用户。
    3. mysql数据库可以并行多个实例。nacos应该可以同步写入,未测试。
    4. 如果是单数据库实例,建议做好主从备份。
    

    数据库配置支持多数据源。通过db.num来指定数据源个数,db.url.index为对应的数据库的链接。db.user以及db.password没有设置index时,所有的链接都以db.userdb.password用作认证。如果不同数据源的用户名称或者用户密码不一样时,可以通过符号,来进行切割,或者指定db.user.index,db.user.password来设置对应数据库链接的用户或者密码。需要注意的是,当db.userdb.password没有指定下标时,因为当前机制会根据,进行切割。所以当用户名或者密码存在,时,会把,切割后前面的值当成最后的值进行认证,会导致认证失败。

    修改application.properties

    #*************** Config Module Related Configurations ***************#
    ### If use MySQL as datasource:
    spring.datasource.platform=mysql
    
    ### Count of DB:
    db.num=1
    
    ### Connect URL of DB:
    db.url.0=jdbc:mysql://192.168.48.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
    db.user.0=nacos
    db.password.0=nacos
    
    

    二、使用nginx做负载均衡

    参考官方的说明:https://nacos.io/zh-cn/docs/cluster-mode-quick-start.html

    客户端连接nacos的时候只能指向一个IP,所以需要额外套一次代理,可以使用任意SLB或VIP的方式。

    这里使用nginx,可以考虑nginx做keepalived。

    2.1 nginx的基本配置

    
    #user  nobody;
    worker_processes  1;
    
    
    #pid        logs/nginx.pid;
    
    
    events {
        worker_connections  1024;
    }
    
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
       
        keepalive_timeout  65;
    	  
    
    	upstream balancer {				
    		server 192.168.44.10:8848 weight=1 max_fails=2 fail_timeout=10s; 
    		server 192.168.44.11:8848 weight=1 max_fails=2 fail_timeout=10s; 
    		server 192.168.44.12:8848 weight=1 max_fails=2 fail_timeout=10s; 
    	}
    	
        server {
           listen       8848;
           server_name  localhost;       
            location / {			
    			proxy_pass http://balancer;
    			proxy_http_version 1.1;
    			proxy_next_upstream http_502 http_504 error timeout invalid_header;							
            }  					
        }
    
    }
    

    2.2 nginx高可用配置

    参考
    https://www.cnblogs.com/asker009/p/15010773.html

  • 相关阅读:
    Android兼容性测试CTS
    Tkinter
    初探socket
    性能监控2
    HTTP
    python实现接口自动化1
    pip安装超时问题
    一行 Python
    Python 面向对象进阶
    Python 面向对象编程基础
  • 原文地址:https://www.cnblogs.com/asker009/p/15010803.html
Copyright © 2020-2023  润新知