全部产品
云市场

Solr公网访问

更新时间:2019-07-22 10:31:42

Solr公网访问

SolrCloud模式访问如同HBase一样,使用zookeeer进行进行获取可用的Solr Server进行访问。不同的是,Solr的访问不是在客户端路由,CloudSolrClient也只是封装load balance的http client循环访问不通的Solr Server进行负载均衡。真正发生路由是在一个Solr Server上,针对这点,就表明我们所有的访问都可以发送到一个Solr Server上。
另外,Solr使用http的方式访问,有大量的开源工具、代码库可以使用,当然也可以使用官网的各种语言的客户端。为了保持所有客户端都是和开源同步,为了公网访问Solr集群,我们只需要访问固定某个开好公网的Server进行访问即可,这样既可以满足开发测试阶段需求,也可以使用各种开源的http访问工具进行开发测试。
大致流程如下:solr公网访问

公网开放

Solr的公网开放和HBase的公网开放一样,当用户申请公网访问时,在“数据库链接”中显示如下:公网访问申请申请完成后,可以看到,公网zk地址有3个,我们获取最后一个master3中缀的链接节点,即为我们可以进行公网访问的链接。如:

  1. hb-proxy-pub-xxxxxxxxxxx-master3-001.hbase.singapore.rds.aliyuncs.com

进行公网访问

拿到了上面的master3的solr server公网地址后,可以使用这个链接进行访问solr。下面介绍两种访问方式时,设置的链接地址如何设置。

curl方式

node的hostname为上面拿到的公网master3地址,端口使用solr专用的8983

  1. curl "http://hb-proxy-pub-xxxxxxxxxxx-master3-001.hbase.singapore.rds.aliyuncs.com:8983/solr/solrdemo/query?q=*:*"
注:如果上述curl无法访问,请确认是否白名单设置完成,详见hbase公网访问中的白名单设置
如果还不能访问,确认是否在开solr之前已经开过公网,如果是,可以尝试关闭公网再开启公网后验证一下。
SolrJ代码方式

代码构造SolrClient的时候,使用HttpSolrClient即可,如下:

  1. HttpSolrClient solrClient = new HttpSolrClient.Builder("http://hb-proxy-pub-xxxxxxxxxxx-master3-001.hbase.singapore.rds.aliyuncs.com:8983/solr").build();
  2. SolrQuery solrQuery = new SolrQuery("*:*");
  3. QueryResponse response = solrClient.query("solrdemo", solrQuery);
  4. //do something
注:开发测试使用如上方式进行公网访问,当上生产环境时,请使用CloudSolrClient 客户端进行构建应用。