[英]Distribute Solr Using Replication without Using SolrCloud
我想使用Solr复制而不使用SolrCloud。 我有三台Solr服务器,一台是主服务器,其他是从服务器。
如何在不繁忙的Solr服务器上调度搜索查询?
有哪些工具以及如何引导?
您可以使用任何负载均衡器-Solr会使用HTTP,这使得任何现有的负载均衡技术都可用。 HAProxy,清漆,nginx等都可以按预期工作,并且可以使用不同软件包提供的所有高级功能。 它也将独立于客户端,这意味着您不仅限于SolrJ的LBHttpSolrServer类或您的特定客户端提供的产品。 某些LB解决方案还提供活动节点之间的高吞吐量缓存(清漆)或动态实时故障转移。
我们也成功使用的另一个选项是将核心复制到每个Web节点,从而使我们始终可以查询localhost进行搜索。
您已经在主从模式下配置了solr。 我认为您可以使用solrj api中的LBHttpSolrServer来查询solr。 您需要将更新请求显式发送到主节点 。 LBHttpSolrServer将为您提供所有指定节点之间的负载平衡。 在主从模式下,从设备负责保持自身与主设备的更新。
不要使用这个类在主/从方案中,因为文件必须被发送到正确的主索引; 没有进行节点间路由。 在SolrCloud(领导者/副本)方案中,此类可用于更新,因为更新将被转发到适当的领导者。
我希望这将有所帮助。
apache骆驼可用于一般负载均衡器。 像这样:
public class LoadBalancer {
public static void main(String args[]) throws Exception {
CamelContext context = new DefaultCamelContext();
context.addRoutes(new RouteBuilder() {
public void configure() {
from("jetty://http://localhost:8080")
.loadBalance().roundRobin().to("http://172.28.39.138:8080","http://172.168.20.118:8080");
}
});
context.start();
Thread.sleep(100000);
context.stop();
}
}
还有一些其他有用的材料:
基本的Apache Camel LoadBalancer故障转移示例
http://camel.apache.org/load-balancer.html
但是似乎没有直接的方法来实现Solr-camel集成,因为可以使用骆驼来平衡Java“ Beans”组件上的请求
http://camel.apache.org/loadbalancing-mina-example.html
还有另一个有用的例子:
您可以使用骆驼作为客户端和服务器之间的代理
http://camel.apache.org/how-to-use-camel-as-a-http-proxy-between-a-client-and-server.html
有一些介绍以Apache骆驼开头,其方法和体系结构: http : //www.slideshare.net/ieugen222/eip-cu-apache-camel
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.