<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>

                ## 分布式跟蹤系統設計目標 1. 低侵入性 2. 靈活的應用策略;(可以 [最好隨時] 決定所收集數據的范圍和粒度) 3. 時效性;從agent采樣,到collect、storage和display盡可能快 4. 決策支持; 5. 可視化是王道;(豐富的數據報表) 6. 低消耗;在web請求鏈路中,對請求的響應影響盡可能小 7. 延展性;隨著業務量暴增,分布式跟蹤系統的高可用、和高性能表現依然好 ## 分布式跟蹤系統標準——[OpenTracing](http://opentracing.io/) 為了規范業界的分布式跟蹤系統產品的統一范式,CNCF(大名鼎鼎的Cloud Native Computing Foundation)設計了trace標準,目前uber、apple等知名公司完全遵循該標準設計trace系統。 ## 各大廠商trace系統對比 分布式跟蹤系統各類產品,根據設計目標和標準形成綜合對比: 產品名稱 | 廠商 | 開源 | OpenTracing標準 | 侵入性 | 應用策略 | 時效性 | 決策支持 | 可視化 | 低消耗 | 延展性 ---|---|---|---|---|---|---|---|---|---|--- [jaeger](https://github.com/jaegertracing/jaeger) | uber | 開源 | 完全支持 | 部分侵入 | 策略靈活 | 時效性高, UDP協議傳輸數據(在Uber任意給定的一個Jaeger安裝可以很容易地每天處理幾十億spans) | 決策支持較好,并且底層支持metrics指標 | 報表不豐富,UI比較簡單 | 消耗低 | jaeger比較復雜,使用框架較多,比如:rpc框架采用thrift協議,不支持pb協議之類。后端存儲比較復雜。但經過uber大規模使用,延展性好 [zipkin](https://github.com/openzipkin/zipkin) | twitter | 開源 | 部分支持 | 侵入性強 | 策略靈活 | 時效性好 | 決策一般(功能單一,監控維度和監控信息不夠豐富。沒有告警功能) | 豐富的數據報表 | 系統開銷小 | 延展性好 [CAT](https://github.com/dianping/cat) | 大眾點評 [吳其敏](http://www.infoq.com/cn/presentations/the-practice-of-open-source-distributed-monitoring-cat-system?utm_source=infoq&utm_medium=videos_homepage&utm_campaign=videos_row3) | 開源 | - | 侵入性強 | 策略靈活 | 時效性較好,rpc框架采用tcp傳輸數據| 決策好 | 報表豐富,滿足各種需求 | 消耗較低 , 國內很多大廠都在使用 | - [Appdash](https://github.com/sourcegraph/appdash) | sourcegraph | 開源 | 完全支持 | 侵入性較弱 | 采樣率支持(粒度:不能根據流量采樣,只能依賴于請求數量);沒有trace開關 | 時效性高 | 決策支持低 | 可視化太弱,無報表分析 | 消耗方面。不支持大規模部署, 因為appdash主要依賴于memory,雖然可以持久化到磁盤,以及內存存儲支持hash存儲、帶有效期的map存儲、以及不加限制的內存存儲,前者存儲量過小、后者單機內存存儲無法滿足 | 延展性差 [MTrace](https://tech.meituan.com/mt-mtrace.html) | 美團 | 不開源 | - | - | - | - CallGraph | 京東 | 不開源 | - [Watchman](http://www.infoq.com/cn/articles/weibo-watchman) | sina微博 | 不開源 | - | EagleEye | 淘寶 | 不開源 | - [skywalking](https://github.com/apache/incubator-skywalking) | 華為 吳晟 | 開源 | 完全支持 | 侵入性很低 | 策略靈活 | 時效性較好 | 由于調用鏈路的更細化, 但是作者在性能和追蹤細粒度之間保持了比較好的平衡。決策好 | 豐富的數據報表 | 消耗較低 | 延展性非常好,水平理論上無限擴展 綜合來說, ```shell 1. jaeger對于go開發者來說,可能比較合適一些,但是入手比較困難。它的rpc框架采用thrift協議,現在主流grpc并不支持。后端豐富存儲,社區正在積極適配 2. appdash對于go開發者想搭建一個小型的trace比較合適,不適合大規模使用 3. zipkin項目,github很活躍,star數量很多,屬于java系。很多大廠使用 4. CAT項目也屬于java系, github不活躍,已不太更新了。不過很多大廠使用,平安、大眾點評、攜程... 5. skywalking項目, 也屬于java系。目前已成為Apache下的項目了,github活躍,作者也非常活躍,當當、華為正在使用。 6. appdash項目,go語言開發,因為可視化過于簡單、且完全內存存儲,不太適合大規模項目使用。 所以選擇的話,可以從skywalking、cat、jaeger和zipkin中選擇。 ``` ## 參考資料 [當當11·11:高可用移動入口與搜索新架構實踐](http://www.uml.org.cn/zjjs/201711161.asp) [分布式調用跟蹤系統調研筆記](http://ginobefunny.com/post/learning_distributed_systems_tracing/) [京東分布式服務跟蹤系統-CallGraph](http://kuaibao.qq.com/s/20180228B0W70I00?refer=spider) [全鏈路監控(一):方案概述與比較](https://juejin.im/post/5a7a9e0af265da4e914b46f1) [各大廠分布式鏈路跟蹤系統架構對比](https://cloud.tencent.com/developer/article/1137651) [skywalking](http://skywalking.io/)
                  <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>

                              哎呀哎呀视频在线观看