CentOS下用Tomcat+Zookeeper+Nginx+Solr完美搭建SolrCloud平台(四)

2019-03-27 01:16|来源: 网路

  五、部署 Nginx 1.4.3 实现负载均衡

  用Nginx做为负载均衡器,配置简单。而且通过Nginx访问到无响应的主机时,Nginx会自动将客户的请转到另一台主机,而无需客户重新提交请求。因此对于客户来讲,只要Nginx指向的主机中有一台有响应,客户就能访问到相应的数据。

  1、安装 nginx 1.4.3

[root@nginx 桌面]# rpm -ivh nginx-1.4.3-1.e16.ngx.x86_64.rpm
warning nginx-1.4.3-1.el6.ngx.x86_64.rpm:Header V4 RSA/SHA1 Signature, key ID 7bd9bf62: NOKEY
Preparing...            #####################################[100%]
   1:nginx              #####################################[100%]
------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* http://nginx.org/en/docs/

Commercial subscriptions for nginx are available on:
* http://nginx.com/products/

------------------------------------------------------------

  2、修改配置文件 /etc/nginx/conf.d/default.conf 使得来自 80 端口的请求转发到5台solr主机的 80 端口(即项目的网址),来自 9888 端口的请求转发至5台solr主机的9888端口(即SolrCloud的网址)

[root@nginx 桌面]# vi /etc/nginx/conf.d/default.conf

upstream SolrCloud{
	server solr1.jyga.com:9998 max_fails=3 fail_timeout=5h;
	server solr2.jyga.com:9998 max_fails=3 fail_timeout=5h;
	server solr3.jyga.com:9998 max_fails=3 fail_timeout=5h;
	server solr4.jyga.com:9998 max_fails=3 fail_timeout=5h;
	server solr5.jyga.com:9998 max_fails=3 fail_timeout=5h;
}

upstream JYGA{
	server solr1.jyga.com:80 max_fails=3 fail_timeout=5h;
	server solr2.jyga.com:80 max_fails=3 fail_timeout=5h;
	server solr3.jyga.com:80 max_fails=3 fail_timeout=5h;
	server solr4.jyga.com:80 max_fails=3 fail_timeout=5h;
	server solr5.jyga.com:80 max_fails=3 fail_timeout=5h;
}

server {
    listen       9998;
    server_name  localhost;

    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        proxy_pass http://SolrCloud;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

server {
    listen       80;
    server_name  localhost;

    #access_log  /var/log/nginx/log/host.access.log  main;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        proxy_pass http://JYGA;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

  3、启动 nginx
[root@nginx 桌面]# nginx

  4、访问项目和SolrCloud的网址

    http://nginx.jyga.com/jyga         #项目的网址,实际是哪台服务器在提示Web服务,不得而知

    http://nginx.jyga.com:9998/solr    #SolrCloud的访问网址




转自:http://blog.csdn.net/xiaojian/article/details/16831153

相关问答

更多
  • 你可能已经解决了它 - 使用所有节点的相同数据目录将无法工作(或者你发现,它会给出奇怪的错误)。 如果您要运行多个节点,则必须为每个节点提供不同的solr.home目录。 您可以在启动Solr时设置此项: -s 设置solr.solr.home系统属性; Solr将在此目录下创建核心目录。 这允许您在同一主机上运行多个Solr实例,同时重用使用-d参数设置的相同服务器目录。 如果设置,则指定的目录应包含solr.xml文件,除非ZooKeeper中存在solr.xml。 默认值为server / ...
  • 请尝试“collection.configName =”。 大写的N显然很重要。 Try "collection.configName=" instead. The uppercase N is apparently important.
  • Solr使用Zookeeper来保持其集群(哪些服务器具有整个集合的核心/分片/部分)以及配置文件和整个集群中应该可用的任何其他内容。 请求本身是Solr,Solr在后台使用Zookeeper的信息将请求内部路由到正确的位置。 客户端可以是Cloud Aware(例如SolrJ),可以直接查询Zookeeper,然后立即联系正确的Solr服务器,而不是让Solr在内部路由请求。 在SolrJ中,这是作为CloudSolrClient(或者可能在旧版本的SolrJ中命名的CloudSolrServer)实现的 ...
  • 我用过: CloudSolrServer solrServer; ... solrServer.getZkStateReader().getClusterState(); ... I used that: CloudSolrServer solrServer; ... solrServer.getZkStateReader().getClusterState(); ...
  • Zookeepers是solrcloud配置的中央存储库,您可以将其视为分布式文件系统,可以被集群中的所有solr节点访问。因此,如果您更改任何配置文件,您只需要通知或将其上传到zookeeper而不是每个节点上集群。 zookeeper的另一个重要职责是密切关注集群中的所有solr节点,如果任何节点发生故障并且搜索请求来自该节点,则zookeeper将其路由到备用副本节点。 当您在solrcloud中更新任何文档时,其zookeeper会将您的更新请求委派给持有该文档的云中的相应节点 有关详细信息, 请阅 ...
  • 单个节点 Solr实例通常在包含schema.xml , stopwords.txt等文件的conf文件夹中使用它自己的配置文件。但在Solr 云上下文中, 集合是具有一组核心的逻辑索引。 这些核心组需要集中配置( 属于同一集合的核心之间共享相同的配置 )。 ZooKeeper是一种集中式服务,用于维护分布式系统中的配置信息。 您可以上载,下载和编辑配置文件,以便属于同一集合的 所有核心获得相同的配置集。 您可以在此处阅读有关Solr云配置管理的更多信息 A Single node Solr instanc ...
  • 将solr配置文件上传到zookeeper并尝试在这里查看 $ sh zkcli.sh -cmd upconfig -zkhost -confname -solrhome -confdir The problem here was that I was using a version of Zookeeper (3.3.6) that is in ...
  • 得到了Erick Ericson的回答,在lucene论坛上: 这可能不是那么重要的担心。 领导者的额外职责非常小。 当你重新启动服务器等时,领导者无论如何都会转移。真的感觉就像过早的优化。 Got this answer from Erick Ericson, on lucene forum: This is probably not all that important to worry about. The additional duties of a leader are pretty minima ...
  • 用于创建集合的配置信息存储在zk本身中。 一些bash脚本(使用伟大的jq实用程序)足以满足您的需求: 找到给定XXX集合使用的配置: CONFIGNAME=$(curl -L -s "http://localhost:8983/solr/admin/zookeeper?detail=true&path=/collections/XXX" | jq '.znode.data' | cut -d ":" -f2 | tr -d '}"\\') 现在下载配置: /opt/solr/bin/solr zk d ...
  • 云功能是Solr的一部分。 对于生产,您需要将ZooKeeper作为单独的应用程序(它也可以作为Solr的一部分运行,但不建议在生产中执行此操作) https://cwiki.apache.org/confluence/display/solr/SolrCloud Cloud features are a part of Solr. For production you would need to have ZooKeeper as separate application (it's can be run ...