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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] ### 背景說明 ***** 前段時間對當前微服務中較流行的兩款開源分布式tracing系統:Zipkin和Jaeger分別進行了調研。 **Zipkin**([github](https://github.com/openzipkin/zipkin),[homepage](https://zipkin.io/)),是一款由[java](http://www.codercto.com/category/java.html)開發的分布式追蹤系統。在微服務架構下,它用于幫助收集排查潛在問題的時序數據,同時管理數據收集和數據查詢。 **Jaeger**([github](https://github.com/jaegertracing/jaeger),[homepage](https://jaegertracing.io/)),則是受Dapper和OpenZipkin啟發,由Uber使用golang開發的分布式跟蹤系統。由于我們項目的技術棧為golang,所以重點調研了Jaeger并在此列出。 ` ` ### OpenTracing ***** 一句話總結,[OpenTracing](http://opentracing.io/)是一套標準,它通過提供平臺無關、廠商無關的API,使得開發人員能夠方便的添加(或更換)追蹤系統的實現(我們在測試使用中是基本上通過兩行代碼的更改就可以在Zipkin和Jaeger之間切換)。 當Zipkin和Jaeger,都是支持OpenTracing標準的。 ### Jaeger介紹 ***** Jaeger的完整的概覽設計。從中我們會發現Jaeger有5個模塊元素,如下所列出,接下來我們來分別解釋這五個模塊的作用: ``` 1.Jaeger-client 2.Agent 3.Collector 4.Data Store 5.UI ``` ### Jaeger 服務 ##### Agent(客戶端代理) ***** jaeger的agent,是一個監聽在 UDP 端口上接收 span 數據的網絡守護進程。?如同大多數分布式系統都擁有一個Agent一樣,Jaeger的Agent有以下幾類特點: agent收集并匯聚這些span信息到collector; agent的被設計成一個基礎組件,旨在**作為基礎架構組件部署到所有**[**宿主機**](https://cloud.tencent.com/product/cdh?from=10680); agent將client library 和 collector 解耦,為 client library 屏蔽了路由和發現 collector 的細節; ##### Collector(數據收集處理) collector,顧名思義,從agent收集traces信息,并通過處理管道處理他們,再寫入后端存儲(backends)。? 當前的collector工作主要是管理trace,建立索引,執行相關轉換,并最終存儲它們。 Collector中運行著sampling邏輯,根據我們設定的sampling方式對數據進行收集和處理。 ##### Data Store(數據存儲) jaeger的data store是組件的方式。? 當前可以支持 Cassandra和ElasticSearch(當然也支持純內存方式,但是不適用于生產環境). ##### Query & UI(數據查詢與前端界面展示) Query查詢是一種從存儲中檢索trace,并提供UI以顯示它們的服務。上圖中就展示了一次Trace的數據流向,作為一次系統作用的數據傳播/執行圖,即可以在Jaeger UI上展示出來。 #### 部署Jaeger服務 ##### docker 方式 ``` docker run -d -e \ COLLECTOR_ZIPKIN_HTTP_PORT=9411 \ -p 5775:5775/udp \ -p 6831:6831/udp \ -p 6832:6832/udp \ -p 5778:5778 \ -p 16686:16686 \ -p 14268:14268 \ -p 9411:9411 \ jaegertracing/all-in-one:latest ``` ?一旦啟動成功后,就可以去http://localhost:16686看到Jaeger UI了,如下所示: ![UTOOLS1586400317129.png](https://user-gold-cdn.xitu.io/2020/4/9/1715cd3cef5f62ea?w=1636&h=937&f=png&s=84578) 注:在All in one模式下,Data Store使用的是內存,因此若重啟dockre容器后就看不到之前的數據了。所以,該模式僅可用于前期demo或者驗證,不可在生產環境中這樣部署。 ##### 獨立部署 當然我們更推薦的方式是獨立部署,獨立部署也可以分為docker鏡像方式和binary 方式,官網有詳細的[docker鏡像方式啟動命令介紹](https://www.jaegertracing.io/docs/deployment/) 關于**binary**方式部署,可以參看github上的[Jaeger的二進制包](https://github.com/jaegertracing/jaeger/releases)。地址提供了mac、linux和windows的三大操作系統的binary包。以linux為例,解壓后我們可以發現有以下幾個bin包,分別清晰地對應了我們之前說的幾個模塊: ``` drwxrwxr-x 3 2000 2000 4.0K May 28 23:29 jaeger-ui-build -rwxrwxr-x 1 2000 2000 27M May 28 23:29 jaeger-standalone -rwxrwxr-x 1 2000 2000 22M May 28 23:29 jaeger-query -rwxrwxr-x 1 2000 2000 25M May 28 23:29 jaeger-collector -rwxrwxr-x 1 2000 2000 16M May 28 23:29 jaeger-agent ``` 注:Jaeger同時也提供可Kubernetes and OpenShift的模板。可參考github地址有詳細介紹 ##### 端口說明 通過上述All in one啟動方式,我們直接發現了Jaeger啟動時占據了很多端口,當然,并不是所有的端口都是必需的,這兒簡單列出這些端口的說明如下: ``` 端口 協議 所屬模塊 功能 5775 UDP agent 通過兼容性Thrift協議,接收Zipkin thrift類型數據 6831 UDP agent 通過兼容性Thrift協議,接收Jaeger thrift類型數據 6832 UDP agent 通過二進制Thrift協議,接收Jaeger thrift類型數據 5778 HTTP agent 配置控制服務接口 16686 HTTP query 客戶端前端界面展示端口 14268 HTTP collector 接收客戶端Zipkin thrift類型數據 14267 HTTP collector 接收客戶端Jaeger thrift類型數據 9411 HTTP collector Zipkin兼容endpoint ```
                  <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>

                              哎呀哎呀视频在线观看