<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 實時搜索系統設 ## 一、背景 傳統的關系型數據庫在存儲大數據量時需要進行分庫分表,但是分庫分表后又很難實現復雜查詢的需求,所以這個時候就需要引入異構數據源來做OLAP的場景 ## 二、搜索系統的目標 * **海量請求**:支持億級請求 * **秒級響應**:復雜查詢秒級內出結果 * **實時搜索**:數據被修改后,能實時搜索到最新數據 ## 三、總體架構如下 ![](https://box.kancloud.cn/cfbd8a3b001bbcb0455aeb0663598c1d_798x769.png) ### 1\. 海量請求和秒級響應 使用ElasticSearch來實現這個目標,是一個基于Lucene的搜索服務器。它提供了一個分布式多用戶能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java開發的,并作為Apache許可條款下的開放源碼發布,是當前流行的企業級搜索引擎。能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。關于ES的安裝部署可查看 [非docker安裝部署](http://www.hmoore.net/zlt2000/microservices-platform/961675) ### 2\. 實時增量同步 阿里的開源項目`Canal`,就是用來解決這個問題的,`Canal`項目利用了`MySQL`數據庫主從同步的原理,將`Canal Server`模擬成一臺需要同步的從庫,從而讓主庫將`binlog`日志流發送到`Canal Server`接口。`Canal`項目對`binlog`日志的解析進行了封裝,我們可以直接得到解析后的數據,而不需要理會`binlog`的日志格式。而且`Canal`項目整合了`zookeeper`,整體實現了高可用,可伸縮性強;關于`Canal`的原理詳細介紹和安裝部署可查看 [Canal介紹](http://www.hmoore.net/zlt2000/microservices-platform/1036866) ### 3\. MQ `Canal`收集的`binlog`數據支持直接發送到MQ中目前支持`RocketMQ`和`Kafka`,用于**削峰填谷**;關于`RocketMQ`的安裝部署可查看 [安裝部署](http://www.hmoore.net/zlt2000/microservices-platform/1023349) > 如果并發不大的情況下可以省略這一層 ### 4\. Adapter `Canal`提供各種`Adapter`組件用于binlog轉換,這里利用`Adapter`實現消費MQ的`binlog信息`自動轉換為索引數據存到`ES`中,關于`Adapter`的安裝和用法可查看 [實時同步數據到ElasticSearch](http://www.hmoore.net/zlt2000/microservices-platform/1050447) > 在同步之前需要先創建`ES`的索引 ### 5\. 搜索服務 es客戶端的api比較復雜難懂,通過通用的`搜索服務`對外提供`restful`的`API`接口供業務系統使用,屏蔽底層的復雜性
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看