zoukankan      html  css  js  c++  java
  • 配置中心Nacas版本升级

    简介

    此文介绍配置管理中心 Nacos 的升级问题。

    升级目标

    Nacos版本:v1.2.1 -> v.1.3.0-beta

    版本升级原因:Nacos服务器端版本1.2.1版本中出现配置项的内容md5化后,会出现少一位的现象,少的一位大部分是0这个字符串,这个bug会引起客户端的配置不断刷新本地配置,继而导致对应项目的配置不断刷新。

    服务器配置信息

    主机名 IP 配置
    nacos01 192.168.17.37 4C8G100G
    nacos02 192.168.17.38 4C8G100G
    nacos03 192.168.17.39 4C8G100G

    两个版本之间主配置文件异同

    Nacos v1.2.1主配置文件:application.properties

    # egrep -v "^$|#" conf/application.properties
    server.servlet.contextPath=/nacos
    server.port=8848
    spring.datasource.platform=mysql
    db.num=1
    db.url.0=jdbc:mysql://192.168.14.2:23306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=root
    db.password=********
    nacos.naming.empty-service.auto-clean=false
    nacos.naming.empty-service.clean.initial-delay-ms=60000
    nacos.naming.empty-service.clean.period-time-ms=20000
    management.endpoints.web.exposure.include=*
    management.metrics.export.elastic.enabled=false
    management.metrics.export.influx.enabled=false
    server.tomcat.accesslog.enabled=true
    server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
    server.tomcat.basedir=
    nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**
    nacos.core.auth.system.type=nacos
    nacos.core.auth.enabled=true
    nacos.core.auth.default.token.expire.seconds=18000
    nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
    nacos.core.auth.caching.enabled=false
    nacos.istio.mcp.server.enabled=false
    

    Nacos v.1.3.0-beta主配置文件新增加内容

    ###*************** Add from 1.3.0-BETA ***************###
    
    
    #*************** Core Related Configurations ***************#
    
    ### set the WorkerID manually
    # nacos.core.snowflake.worker-id=
    
    ### Member-MetaData
    # nacos.core.member.meta.site=
    # nacos.core.member.meta.adweight=
    # nacos.core.member.meta.weight=
    
    ### MemberLookup
    ### Addressing pattern category, If set, the priority is highest
    # nacos.core.member.lookup.type=[file,address-server,discovery]
    ## Set the cluster list with a configuration file or command-line argument
    # nacos.member.list=192.168.16.101:8847?raft_port=8807,192.168.16.101?raft_port=8808,192.168.16.101:8849?raft_port=8809
    ## for DiscoveryMemberLookup
    # If you want to use cluster node self-discovery, turn this parameter on
    # nacos.member.discovery=false
    ## for AddressServerMemberLookup
    # Maximum number of retries to query the address server upon initialization
    # nacos.core.address-server.retry=5
    
    #*************** JRaft Related Configurations ***************#
    
    ## 集群一致性相关配置 ##
    
    ### Sets the Raft cluster election timeout, default value is 5 second
    
    # 选举超时时间
    # nacos.core.protocol.raft.data.election_timeout_ms=5000
    
    # 集群以中性数据快照间隔时间
    ### Sets the amount of time the Raft snapshot will execute periodically, default is 30 minute
    # nacos.core.protocol.raft.data.snapshot_interval_secs=30
    
    # 请求失败尝试次数
    ### Requested retries, default value is 1
    # nacos.core.protocol.raft.data.request_failoverRetries=1
    
    # 线程个数
    ### raft internal worker threads
    # nacos.core.protocol.raft.data.core_thread_num=8
    
    # 客户端线程请求数
    ### Number of threads required for raft business request processing
    # nacos.core.protocol.raft.data.cli_service_thread_num=4
    
    # 一致性线性读策略
    ### raft linear read strategy, defaults to index
    # nacos.core.protocol.raft.data.read_index_type=ReadOnlySafe
    
    # RPC 请求超时时间
    ### rpc request timeout, default 5 seconds
    # nacos.core.protocol.raft.data.rpc_request_timeout_ms=5000
    

    版本升级后默认修改的参数

    注意:以下版本升级仅针对1.2.1v.1.3.0-beta

    1. 版本升级后:nacos.naming.empty-service.auto-clean参数由false改为true
    ### If enable the empty service auto clean, services with an empty instance are automatically cleared
    nacos.naming.empty-service.auto-clean=false
    ->
    nacos.naming.empty-service.auto-clean=true
    
    1. 版本升级后:nacos.naming.empty-service.clean.initial-delay-ms参数由60000改为50000
    ### The empty service cleanup task delays startup time in milliseconds
    nacos.naming.empty-service.clean.initial-delay-ms=60000 
    ->
    nacos.naming.empty-service.clean.initial-delay-ms=50000
    
    1. 版本升级后:nacos.naming.empty-service.clean.period-time-ms参数由20000该为30000
    ### The empty service cleanup task cycle execution time in milliseconds
    nacos.naming.empty-service.clean.period-time-ms=20000
    ->
    nacos.naming.empty-service.clean.period-time-ms=30000
    
    1. 版本升级后:nacos.core.auth.caching.enabled参数由false改为true
    ### Turn on/off caching of auth information. By turning on this switch, the update of auth information would have a 15 seconds delay.
    nacos.core.auth.caching.enabled=false
    ->
    nacos.core.auth.caching.enabled=true
    

    升级策略

    目前nacos采用三节点方式部署,升级过程中选择逐台升级

    注意事项

    由于版本不同导致配置文件都有差异,因此,需要将原v1.2.1的配置全部配置到v.1.3.0-beta,使用新版本的配置文件。

    1. 由于数据库已配置主主,Nacas通过配置文件中的相关配置读取数据库,因此,需要修改数据库相关配置;
    2. 开启配置文件中的prometheus监控选项:management.endpoints.web.exposure.include=*
    3. 需要将bin/conf/application.propertiestarget/nacos-server.jar更换为新的配置。

    升级

    1. 准备安装包

    1. 准备 Nacos v.1.3.0-beta 安装包
    # cd /opt
    # wget https://github.com/alibaba/nacos/releases/download/1.3.0-beta/nacos-server-1.3.0-BETA.tar.gz
    # tar -xf nacos-server-1.3.0-BETA.tar.gz
    
    1. 查看解压后的安装包有哪些文件
    # tree /opt/nacos
    /opt/nacos
    ├── bin
    │   ├── shutdown.cmd
    │   ├── shutdown.sh
    │   ├── startup.cmd
    │   └── startup.sh
    ├── conf
    │   ├── application.properties
    │   ├── application.properties.example
    │   ├── cluster.conf.example
    │   ├── nacos-logback.xml
    │   ├── nacos-mysql.sql
    │   └── schema.sql
    ├── LICENSE
    ├── NOTICE
    └── target
        └── nacos-server.jar
    
    3 directories, 13 files
    

    2.提前配置好新版本的配置文件

    # egrep -v "^$|#" /opt/nacos/conf/application.properties
    server.servlet.contextPath=/nacos
    server.port=8848
    spring.datasource.platform=mysql
    db.num=1
    db.url.0=jdbc:mysql://192.168.14.2:23306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
    db.user=root
    db.password=********
    nacos.naming.empty-service.auto-clean=true
    nacos.naming.empty-service.clean.initial-delay-ms=50000
    nacos.naming.empty-service.clean.period-time-ms=30000
    management.endpoints.web.exposure.include=*
    management.metrics.export.elastic.enabled=false
    management.metrics.export.influx.enabled=false
    server.tomcat.accesslog.enabled=true
    server.tomcat.accesslog.pattern=%h %l %u %t "%r" %s %b %D %{User-Agent}i
    server.tomcat.basedir=
    nacos.security.ignore.urls=/,/error,/**/*.css,/**/*.js,/**/*.html,/**/*.map,/**/*.svg,/**/*.png,/**/*.ico,/console-fe/public/**,/v1/auth/**,/v1/console/health/**,/actuator/**,/v1/console/server/**
    nacos.core.auth.system.type=nacos
    nacos.core.auth.enabled=true
    nacos.core.auth.default.token.expire.seconds=18000
    nacos.core.auth.default.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
    nacos.core.auth.caching.enabled=true
    nacos.istio.mcp.server.enabled=false
    

    3. 停止服务

    # systemctl stop nacos
    

    4. 备份目前 v1.2.1 的配置

    # cd /usr/local/nacos
    # tar -cvzf nacos.backup.1.2.1.tar.gz bin/ conf/ target/
    

    5. 更换配置

    1. 更换服务启停脚本
    # cp /opt/nacos/bin/shutdown.sh /usr/local/nacos/bin/shutdown.sh 
    # cp /opt/nacos/bin/startup.sh /usr/local/nacos/bin/startup.sh 
    
    1. 更换主配置文件
    # cp /opt/nacos/conf/application.properties /usr/local/nacos/conf/application.properties
    
    1. 更换库文件
    # cp /opt/nacos/target/nacos-server.jar /usr/local/nacos/target/nacos-server.jar 
    

    6. 启动服务

    # systemctl start nacos
    
  • 相关阅读:
    关闭编辑easyui datagrid table
    sql 保留两位小数+四舍五入
    easyui DataGrid 工具类之 util js
    easyui DataGrid 工具类之 后台生成列
    easyui DataGrid 工具类之 WorkbookUtil class
    easyui DataGrid 工具类之 TableUtil class
    easyui DataGrid 工具类之 Utils class
    easyui DataGrid 工具类之 列属性class
    oracle 卸载
    “云时代架构”经典文章阅读感想七
  • 原文地址:https://www.cnblogs.com/mcsiberiawolf/p/12926722.html
Copyright © 2011-2022 走看看