master-slave自动切换

时间:2022-03-29 16:27:06

如果一台slave服务器同时还有备份master的功能,即当真正的master宕机时,此slave就充当master使用。一种将slave切换成master的方式是修改配置文件,另外还可以在配置文件中利用环境变量,启动时由环境变量决定服务器本次的角色。

修改solrconfig.xml

<requestHandler name="/replication" class="solr.ReplicationHandler" >?
    <lst name="master">???
        <str name="enable">${enable.master:false}</str> ????
        <str name="replicateAfter">commit</str>???
        <str name="confFiles">schema.xml,stopwords.txt</str>
    </lst>

    <lst name="slave">???
        <str name="enable">${enable.slave:false}</str> ???
        <str name="masterUrl">http://master_host:8983/solr/replication</str>??
        <str name="pollInterval">00:00:60</str>
    </lst>
</requestHandler>

需要以主节点启动时,在jvm的启动参数中使用-Denable.master=true
需要以子节点启动时,在jvm的启动参数中使用-Denable.slave=true


也可以在solrcore.properties配置启动参数
主节点启动时,使用下面的配置
#solrcore.properties 启动主节点
enable.master = true
enable.slave = false


以子节点启动是,使用下面的配置
#solrcore.properties启动子节点
enable.master = false
enable.slave = true

${enable.master:false}/${enable.slave:false}
引用变量,其中enable.master或enable.slave是变量名,可以从jvm启动参数或properties文件中指定,当没有配置相应的变量时,就使用冒号(:)后面的值。