国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

SolrCloud+tomcat7+zookeeper集群配

Pines_Cheng / 448人閱讀

摘要:的主要功能主要功能包括強(qiáng)大的全文搜索,點(diǎn)擊顯示,面搜索,動(dòng)態(tài)聚類,數(shù)據(jù)庫集成,豐富的文件如,處理,和空間搜索而且他具有高度的可擴(kuò)展性,提供容錯(cuò)的分布式搜索和索引。端口分別對(duì)應(yīng)的端口其他同理。這都是不要緊的,三個(gè)啟動(dòng)好了就不會(huì)報(bào)錯(cuò)了。

solrCloud的主要功能:

主要功能包括強(qiáng)大的全文搜索,點(diǎn)擊顯示,面搜索,動(dòng)態(tài)聚類,數(shù)據(jù)庫集成,豐富的文件(如Word,PDF)處理,和空間搜索,而且他具有高度的可擴(kuò)展性,提供容錯(cuò)的分布式搜索和索引。

         1)集中式的配置信息
    
         2)自動(dòng)容錯(cuò)
    
         3)近實(shí)時(shí)搜索
    
         4)查詢時(shí)自動(dòng)負(fù)載均衡

圖1. Collection大致結(jié)構(gòu)圖

![osjp-vertx-fig1-thumb-100159570-orig](http://7xvmgi.com1.z0.glb.clouddn.com/1.png)
    1、下載https://zookeeper.apache.org/ 
    2、下載http://lucene.apache.org/solr/
    3、下載http://tomcat.apache.org/
下面我就開始學(xué)習(xí)之旅:
首先復(fù)制三個(gè)tomcat例如:
tomcat-server_1  端口:8080  
tomcat-server_2  端口:8090  
tomcat-server_3  端口:8100  

一、在分別復(fù)制solr-4.7.0下面的example/webapps的solr.war解壓復(fù)制到tomcat-server_1、tomcat-server_2、tomcat-server_3的webapp下面為solr,分別創(chuàng)建三個(gè)文件夾分別為solr_home_1、solr_home_2、solr_home_3作為存放solr的數(shù)據(jù)。將solr-4.7.0下面example/solr/分別復(fù)制到solr_home_1、solr_home_2、solr_home_3下面。

圖2:

![osjp-vertx-fig1-thumb-100159570-orig](http://7xvmgi.com1.z0.glb.clouddn.com/2.png)

二、分別修改solr_home_1、solr_home_2、solr_home_3下面的solr.xml。

    
            
            ${host:}
            ${jetty.port:8080}//端口分別對(duì)應(yīng)tomcat的端口
            ${hostContext:solr}
            ${zkClientTimeout:30000}
            ${genericCoreNodeNames:true}
            
          
          ${socketTimeout:0}
          ${connTimeout:0}
          
    
    其他solr.xml同理。

三、分別進(jìn)入tomcat-server_1、tomcat-server_2、tomcat-server_3 下面的webapp下面的solr,然后去改WEB-INF下的web.xml,分別為下面的清單:

        
               solr/home
               D:/solrCloud/solr_home_1//定義solr索引所存的地址
               java.lang.String
        
    
        
               solr/home
               D:/solrCloud/solr_home_2//定義solr索引所存的地址
               java.lang.String
           

        
               solr/home
               D:/solrCloud/solr_home_3//定義solr索引所存的地址
               java.lang.String
          

四、分別在tomcat-server_1、tomcat-server_2、tomcat-server_3的bin下面的catalina.bat的添加

    set java_opts=-Dsolr.home=d:/solrCloud/solr_home_1 -Dbootstrap_confdir=D:/solrCloud/solr_home_1/collection1/conf -Dcollection.configName=myconf -DnumShards=2 -DzkHost=127.0.0.1:2181
    set JAVA_OPTS=-Dsolr.home=d:/solrCloud/solr_home_2 -DzkHost=127.0.0.1:2181
    set JAVA_OPTS=-Dsolr.home=d:/solrCloud/solr_home_3 -DzkHost=127.0.0.1:2181

五、復(fù)制三個(gè)zoo例如:

        zk-server_1  端口:2181
        zk-server_2  端口:2182
        zk-server_3  端口:2183
        在zk-server_1、zk-server_2、zk-server_3下面分別建立兩個(gè)文件夾為data和logs用來存儲(chǔ)數(shù)據(jù)和日志。
        分別再data目錄下面創(chuàng)建myid,里面分別寫1、2、3。
        配置D:solrCloudzk-server_1confzoo.cfg如下:
        dataDir=D:/solrCloud/zk-server_1/data
        dataLogDir=D:/solrCloud/zk-server_1/logs
        clientPort=2181
        server.1=127.0.0.1:2888:3888
        server.2=127.0.0.1:2889:3889
        server.3=127.0.0.1:2890:3890
        其他兩個(gè)配置如同上面配置。

圖3:

![osjp-vertx-fig1-thumb-100159570-orig](http://7xvmgi.com1.z0.glb.clouddn.com/3.png)
下面我們啟動(dòng)zk_server1、zk_server2、zk_server3.如下圖:

圖4:

![osjp-vertx-fig1-thumb-100159570-orig](http://7xvmgi.com1.z0.glb.clouddn.com/4.jpeg)
啟動(dòng)時(shí),第一個(gè)報(bào)錯(cuò)是因?yàn)檎也坏狡渌麅蓚€(gè)zk,才會(huì)報(bào)錯(cuò)。這都是不要緊的,三個(gè)啟動(dòng)好了就不會(huì)報(bào)錯(cuò)了。
下面我們?cè)趩?dòng)tomcat-server_1、tomcat-server_2、tomcat-server_3。

圖5:

![osjp-vertx-fig1-thumb-100159570-orig](http://7xvmgi.com1.z0.glb.clouddn.com/5.jpeg)

圖6:

![osjp-vertx-fig1-thumb-100159570-orig](http://7xvmgi.com1.z0.glb.clouddn.com/6.png)
創(chuàng)建
http://127.0.0.1:8080/solr/admin/collections?action=CREATE&name=collection1&numShards=3&replicationFactor=2&maxShardsPerNode=2&collection.configName=myconf
重新加載接口
http://127.0.0.1:8080/solr/admin/collections?action=RELOAD&name=collection1
刪除
http://127.0.0.1:8080s/solr/admin/collections?action=DELETE&name=collection1



清單1. SolrCloud.java

    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.Collection;
    import java.util.Map;
    import org.apache.solr.client.solrj.SolrQuery;
    import org.apache.solr.client.solrj.SolrServer;
    import org.apache.solr.client.solrj.SolrServerException;
    import org.apache.solr.client.solrj.impl.CloudSolrServer;
    import org.apache.solr.client.solrj.response.QueryResponse;
    import org.apache.solr.common.SolrDocument;
    import org.apache.solr.common.SolrDocumentList;
    import org.apache.solr.common.SolrInputDocument;
    public class SolrCloud {
            private static CloudSolrServer cloudSolrServer;
            private static synchronized CloudSolrServer getCloudSolrServer(final String zkHost) {
            if (cloudSolrServer == null) {
                try {
                        cloudSolrServer = new CloudSolrServer(zkHost);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
            }

        return cloudSolrServer;
    }
    //添加索引
    private void addIndex(SolrServer solrServer) {
        try {
            SolrInputDocument doc1 = new SolrInputDocument();
            doc1.addField("id", "421245251215121452521251");
            doc1.addField("title", "張三");
            SolrInputDocument doc2 = new SolrInputDocument();
            doc2.addField("id", "4224558524254245848524243");
            doc2.addField("title", "李四");

            SolrInputDocument doc3 = new SolrInputDocument();
            doc3.addField("id", "4543543458643541324153453");
            doc3.addField("title", "王五");

            Collection docs = new ArrayList();
            docs.add(doc1);
            docs.add(doc2);
            docs.add(doc3);

            solrServer.add(docs);
            solrServer.commit();

        } catch (SolrServerException e) {
            System.out.println("Add docs Exception !!!");
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            System.out.println("Unknowned Exception!!!!!");
            e.printStackTrace();
        }

    }
   // 搜索
    public void search(SolrServer solrServer, String String) {
        SolrQuery query = new SolrQuery();
        query.setQuery(String);
        try {
            QueryResponse response = solrServer.query(query);
            SolrDocumentList docs = response.getResults();
            for (SolrDocument doc : docs) {
                for (Map.Entry entry : doc) {
                    System.out.println(entry.getKey()+"="+entry.getValue());
                } 
            }
        } catch (SolrServerException e) {
            e.printStackTrace();
        } catch (Exception e) {
            System.out.println("Unknowned Exception!!!!");
            e.printStackTrace();
        }
    }
    //刪除
    public void deleteAllIndex(SolrServer solrServer) {
        try {
            solrServer.deleteByQuery("*:*");// delete everything!
            solrServer.commit();
        } catch (SolrServerException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            System.out.println("Unknowned Exception !!!!");
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        final String zkHost = "127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183";
        final String defaultCollection = "collection1";
        final int zkClientTimeout = 20000;
        final int zkConnectTimeout = 1000;

        CloudSolrServer cloudSolrServer = getCloudSolrServer(zkHost);
        System.out.println("The Cloud SolrServer Instance has benn created!");
        cloudSolrServer.setDefaultCollection(defaultCollection);
        cloudSolrServer.setZkClientTimeout(zkClientTimeout);
        cloudSolrServer.setZkConnectTimeout(zkConnectTimeout);
        cloudSolrServer.connect();
        System.out.println("The cloud Server has been connected !!!!");
        SolrCloud test = new SolrCloud();
         test.addIndex(cloudSolrServer);
         test.search(cloudSolrServer, "id:*");
         test.deleteAllIndex(cloudSolrServer);
         test.search(cloudSolrServer, "id:*");
         System.out.println("hashCode"+test.hashCode());
         cloudSolrServer.shutdown();
    }
}

相關(guān)閱讀

使用Vert.x構(gòu)建Web服務(wù)器和消息系統(tǒng)

RABBITMQ在分布式系統(tǒng)的應(yīng)用

作者信息
作者系力譜宿云 LeapCloud 團(tuán)隊(duì)_云服務(wù)研發(fā)成員:JinYang Zhang
首發(fā)地址:https://blog.maxleap.cn/archives/977

歡迎關(guān)注微信訂閱號(hào):從移動(dòng)到云端(MaxLeap - 讓移動(dòng)開發(fā)更快速 )

歡迎加入我們的力譜宿云 LeapCloud 活動(dòng)QQ群:555973817,我們將不定期做技術(shù)分享活動(dòng)。
若有轉(zhuǎn)載需要,請(qǐng)轉(zhuǎn)發(fā)時(shí)注意自帶作者信息一欄并本自媒體公號(hào):力譜宿云 LeapCloud,尊重原創(chuàng)作者的勞動(dòng)成果~ 謝謝配合~

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/64953.html

相關(guān)文章

  • 墻裂推薦:搜云庫技術(shù)團(tuán)隊(duì),面試必備的技術(shù)干貨

    摘要:今天整理了一下近大半年以來的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫過了,這個(gè)記錄的過程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 今天整理了一下近大半年以來的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫過了,這個(gè)記錄的過程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 面試必備 面試必備:深入Spring MVC DispatchServlet 源碼...

    SegmentFault 評(píng)論0 收藏0
  • 墻裂推薦:搜云庫技術(shù)團(tuán)隊(duì),面試必備的技術(shù)干貨

    摘要:今天整理了一下近大半年以來的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫過了,這個(gè)記錄的過程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 今天整理了一下近大半年以來的一些文章,和我的預(yù)期一樣,很多文章我都忘記自己曾經(jīng)寫過了,這個(gè)記錄的過程讓我也有了新的理解。希望大家,收藏,點(diǎn)贊,加轉(zhuǎn)發(fā)。 面試必備 面試必備:深入Spring MVC DispatchServlet 源碼...

    Neilyo 評(píng)論0 收藏0
  • 【推薦】最新200篇:技術(shù)文章整理

    摘要:作為面試官,我是如何甄別應(yīng)聘者的包裝程度語言和等其他語言的對(duì)比分析和主從復(fù)制的原理詳解和持久化的原理是什么面試中經(jīng)常被問到的持久化與恢復(fù)實(shí)現(xiàn)故障恢復(fù)自動(dòng)化詳解哨兵技術(shù)查漏補(bǔ)缺最易錯(cuò)過的技術(shù)要點(diǎn)大掃盲意外宕機(jī)不難解決,但你真的懂?dāng)?shù)據(jù)恢復(fù)嗎每秒 作為面試官,我是如何甄別應(yīng)聘者的包裝程度Go語言和Java、python等其他語言的對(duì)比分析 Redis和MySQL Redis:主從復(fù)制的原理詳...

    BicycleWarrior 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<