[發明專利]一種實現搜索引擎節點自動擴展與切換的方法在審
| 申請號: | 201711102057.2 | 申請日: | 2017-11-10 |
| 公開(公告)號: | CN109787787A | 公開(公告)日: | 2019-05-21 |
| 發明(設計)人: | 不公告發明人 | 申請(專利權)人: | 南京白牙智能科技有限公司 |
| 主分類號: | H04L12/24 | 分類號: | H04L12/24;H04L29/08;G06F11/30 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 211135 江蘇省南京*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 自動擴展 搜索引擎 數據量比較 查詢請求 工作效率 活動節點 搜索服務 應用程序 監聽 查詢 撰寫 服務 維護 | ||
一種實現搜索引擎節點自動擴展與切換的方法,基于Zookeeper實現多個Solr Shards自動擴展與切換。當數據量比較大時,利用Solr Sharding作為擴展策略,但當多個Shards當中的某一個宕掉時,整個服務將無法使用。本文撰寫的方法就是對每一個活動的Shards都在Zookeeper上注冊,應用程序維護一個Zookeeper上活動節點的列表并監聽Zookeeper的消息,一旦有新的Shard加入或者有Shard宕掉,該列表會相應變化,在查詢請求Solr服務時根據該列表,獲取活動的Shards進行查詢,實現了Solr Shards的自動擴展,避免了因為某一個Shard宕掉致使搜索服務無法工作的情況,也提供了自動擴展的功能,提高工作效率。
技術領域
本發明方法屬于信息技術領域,是一種優化方法,該方法可以提高搜索服務的可靠性和擴展性。
背景技術
Solr作為一個開源的搜索引擎框架,得到廣范的應用,它對外提供服務接口以供應用程序調用。Solr的Sharding技術提供了一種解決數據量大時的分布式解決策略,通過Solr的配置文件來指定相應的Shards。但當有新的Shard加入時,需要修改配置文件并重啟Solr服務才能生效;并且當有Shard宕掉時,出于保護數據完整性的目的,整個Solr無法正常工作。關于Solr的相關信息可參考其官方網站http://lucene.apache.org/solr/。而目前多數方法都是為解決數據備份與完整性的解決方案,如Replication等方法,但還沒有一種方法能實現Shard的自動擴展與切換功能。
發明內容
該發明主要為解決由于Shards中的某個宕掉致使整個搜索服務無法正常工作以及Solr無法自動識別新加入Shard的問題。
本方法主要有以下幾個步驟:
a)注冊節點。修改Solr服務,使Solr服務在啟動時自動將自身地址注冊為Zookeeper節點。
b)監聽Zookeeper。修改應用程序,在啟動時開始監聽Zookeeper消息,獲取在Zookeeper中注冊的Shards節點。
c)維護Shards列表。監聽程序維護一個活動的Shards列表,在收到Zookeeper節點變動的消息時,重新生成Shards列表。
d)生成請求地址。修改應用程序,在查詢時要據Shards列表生成所請求的Solr服務地址。
在實際應用中,有應用服務A,Solr搜索服務B、C、D。
未使用本方法前,在Solr配置文件中配置了Shards為B和C,A向Solr發起請求查詢時,B和C分別查詢,結果合并處理后統一返回給A。此時D服務也啟動了,并且D擁有額外的索引,A查詢時需要從B、C、D中一起查詢,這時需要修改Solr配置文件,將D加到配置文件中,并得啟Solr服務;接著服務B宕機了,Solr出于保護數據完整性,A查詢不到任何數據,只能等待B重啟或者修改配置文件,將Shards改為C和D方能正常工作。
使用本方法后,這兩個問題都得以解決。新加的Shards能自動識別;有Shards宕機也能自動切換,不影響正常工作。
所以,本方法大大提高了Solr服務的工作效率和可靠穩定性。
附圖說明
圖1是未使用本方法時的基本應用示意圖。
圖2是使用本方法時的典型應用示意圖。
具體實施方式
下面將結合附圖以及具體實施例來詳細說明本發明,在此本發明的示意性實施例以及說明用來解釋本發明, 但并不作為對本發明的限定。
實施例:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于南京白牙智能科技有限公司,未經南京白牙智能科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201711102057.2/2.html,轉載請聲明來源鉆瓜專利網。





