用於本地 STANDALONE 叢集的 Init SolrJ 客戶端與使用 Kerberos 的遠端 CLOUD
基於配置屬性初始化 SolrJ 客戶端的方便方法;
private void initSolrClient() {
if (conf.kerberos().isEnabled()) {
System.setProperty("java.security.auth.login.config", conf.kerberos().confPath());
HttpClientUtil.addConfigurer(new Krb5HttpClientConfigurer());
}
if (conf.solr().getMode() == SolrProperties.Mode.STANDALONE) {
this.solr = new HttpSolrClient.Builder(conf.solr().url()).build();
}
if (conf.solr().getMode() == SolrProperties.Mode.CLOUD) {
this.solr = new CloudSolrClient.Builder().withZkHost(conf.solr().zookeepers()).build();
}
}
使用 Kerberos 進行遠端操作:
solr.conf.mode=CLOUD
solr.conf.zookepers=zookeeper-01.mydomain.com:2181,zookeeper-02.mydomain.com:2181,zookeeper-03.mydomain.com:2181/solr
kerberos.enabled=true
kerberos.confPath=/my/path/to/krb5/jaas-client.conf
本地開發:
solr.conf.mode=STANDALONE
solr.conf.url=http://localhost:8983/solr
kerberos.enabled=false