hash和solr在海量數據分布式搜索引擎中的應用教程(2)_MySQL教程
推薦:23道安全門加鑄MySQL數據庫使用MySQL,安全問題不能不注意。以下是MySQL提示的23個注意事項: 1.如果客戶端和服務器端的連接需要跨越并通過不可信任的網絡,那么就需要使用SSH隧道來加密該連接的通信。 2.用set password語句來修改用戶的密碼,三個步驟,先mysql -u root登陸數據庫系統,然后mys
大家應該明白一致性hash的基本原理了吧。不過這種算法還是有缺陷,比如在機器節點比較少、數據量大的時候,數據的分布可能不是很均衡,就會導致其中一臺服務器的數據比其他機器多很多。為了解決這個問題,需要引入虛擬服務器節點的機制。如我們一共有只有三臺機器,1、2、3。但是實際又不可能有這么多機器怎么解決呢?把 這些機器各自虛擬化出來3臺機器,也就是 1a 1b 1c 2a 2b 2c 3a 3b 3c,這樣就變成了9臺機器。實際 1a 1b 1c 還是對應1。但是實際分布到環形節點就變成了9臺機器。數據分布也就能夠更分散一點。如圖:

寫了這么多一致性hash,這個和分布式搜索有什么半點關系?我們現在使用solr4搭建了分布式搜索,測試了基于solrcloud的分布式平臺提交20條數據居然需要幾十秒,所以就廢棄了solrcloud。采用自己hack solr平臺,不用zookeeper做分布式一致性管理平臺,自己管理數據的分發機制。既然需要自己管理數據的分發,就需要考慮到索引的創建,索引的更新。這樣我們的一致性hash也就用上了。整體架構如下圖:

建立和更新需要維持機器的位置,能夠根據數據的key找到對應的數據分發并更新。這里需要考慮的是如何高效、可靠的把數據建立、更新到索引里。
備份服務器防止建立服務器掛掉,可以根據備份服務器快速恢復。
讀服務器主要做讀寫分離使用,防止寫索引影響查詢數據。
集群管理服務器管理整個集群內的服務器狀態、告警。
整個集群隨著業務增多還可以按照數據的類型劃分,比如用戶、微博等。每個類型按照上圖架構搭建,就可以滿足一般性能的分布式搜索。
分享:MySQL 5.0 數據庫新特性的存儲過程當你提交一個查詢的時候,MySQL會分析它,看是否可以做一些優化使處理該查詢的速度更快。這一部分將介紹查詢優化器是如何工作的。如果你想知道MySQL采用的優化手段,可以查看MySQL參考手冊。 當然,MySQL查詢優化器也利用了索引,但是它也使用了其它一些信息。例如,如
- 相關鏈接:
- 教程說明:
MySQL教程-hash和solr在海量數據分布式搜索引擎中的應用教程(2)
。