国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

使用Envoy 作Sidecar Proxy的微服務(wù)模式-3.分布式追蹤

Fundebug / 988人閱讀

摘要:在第三部分中,我們將了解如何在服務(wù)網(wǎng)格中啟用分布式跟蹤。在此部署模型中,被部署為服務(wù)的在本例中為客戶端。會在服務(wù)調(diào)用之間添加一些追蹤,并發(fā)送到或您的跟蹤提供商目前支持和。這些示例的上游服務(wù)是。

本博客是深入研究Envoy Proxy和Istio.io 以及它如何實(shí)現(xiàn)更優(yōu)雅的方式來連接和管理微服務(wù)系列文章的一部分。

這是接下來幾個(gè)部分的想法(將在發(fā)布時(shí)更新鏈接):

斷路器(第一部分)

重試/超時(shí)(第二部分)

分布式跟蹤(第三部分)

Prometheus的指標(biāo)收集(第四部分)

rate limiter(第五部分)

第三部分 - 使用envoy proxy 實(shí)現(xiàn)分布式追蹤

第一篇博文向您介紹了Envoy Proxy的斷路功能實(shí)現(xiàn)。在第二部分中,仔細(xì)研究了如何啟用額外的彈性功能,如超時(shí)和重試。在第三部分中,我們將了解如何在服務(wù)網(wǎng)格中啟用分布式跟蹤。有意進(jìn)行一些簡單的演示,因此我可以多帶帶說明模式和用法。請下載此演示的源代碼并按照說明進(jìn)行操作!

該演示由一個(gè)客戶端和一個(gè)服務(wù)組成。客戶端是一個(gè)Java http應(yīng)用程序,模擬對“上游”服務(wù)進(jìn)行http調(diào)用(注意,我們在這里使用Envoys術(shù)語,并貫穿整個(gè)repo)。客戶端打包在docker.io/ceposta/http-envoy-client:latest的Docker鏡像中。除了http-client Java應(yīng)用程序之外,還有Envoy Proxy的一個(gè)實(shí)例。在此部署模型中,Envoy被部署為服務(wù)的sidercar(在本例中為http客戶端)。當(dāng)http-client進(jìn)行出站調(diào)用(到“上游”服務(wù))時(shí),所有調(diào)用都通過Envoy Proxy sidercar。envoy會在服務(wù)調(diào)用之間添加一些追蹤headers,并發(fā)送到Zipkin(或您的跟蹤提供商...... Envoy目前支持Zipkin和Lightstep)。

這些示例的“上游”服務(wù)是httpbin.org。 httpbin.org允許我們輕松模擬HTTP服務(wù)行為。它很棒,所以如果你沒有看到它,請查看它。

這個(gè)traceing 演示有自己的envoy.json配置文件。我絕對建議您查看配置文件每個(gè)部分的參考文檔,以幫助理解完整配置。 datawire.io的優(yōu)秀人員也為Envoy及其配置提供了一個(gè)很好的介紹,你也應(yīng)該檢查一下。

運(yùn)行 tracing demo

對于跟蹤演示,我們將使用以下如下的配置來配置我們的Envoy(請參閱其余上下文的完整配置):

   "tracing": {
      "operation_name": "egress"
    },
    
    ...
    
      "tracing": {
        "http": {
          "driver": {
            "type": "zipkin",
            "config": {
              "collector_cluster": "zipkin",
              "collector_endpoint": "/api/v1/spans"
            }
          }
        }
      },
      
      ...
      
       {
          "name": "zipkin",
          "connect_timeout_ms": 1000,
          "type": "strict_dns",
          "lb_type": "round_robin",
          "hosts": [
            {
              "url": "tcp://zipkin:9411"
            }
          ]
        }
    

這里我們配置跟蹤驅(qū)動程序和跟蹤集群。在這種情況下,要運(yùn)行此演示,我們需要啟動Zipkin服務(wù)器:

首先我們停止已經(jīng)存在的演示demo:

./docker-stop.sh

啟動zipkin服務(wù):

./tracing/docker-run-zipkin.sh

會將zipkin暴露在端口9411上。如果您使用minikube或類似的東西來運(yùn)行這些演示,您可以直接將minikube端口導(dǎo)出到您的主機(jī),如下所示:

./port-forward-minikube.sh 9411

一旦你啟動并運(yùn)行Zipkin,訪問該服務(wù)(即,在minikube上,在進(jìn)行端口轉(zhuǎn)發(fā)后,它將只是http:// localhost:9411)。你應(yīng)該看看Zipkin:

現(xiàn)在我們已經(jīng)啟動了zipkin服務(wù)器,讓我們啟動我們的跟蹤演示:

/docker-run.sh -d tracing

然后讓我們用客戶端訪問服務(wù):

./curl.sh -vvvv localhost:15001/get

我們將看到如下的輸出:

< HTTP/1.1 200 OK
* Server envoy is not blacklisted
< server: envoy
< date: Thu, 25 May 2017 06:31:02 GMT
< content-type: application/json
< access-control-allow-origin: *
< access-control-allow-credentials: true
< x-powered-by: Flask
< x-processed-time: 0.000982999801636
< content-length: 402
< via: 1.1 vegur
< x-envoy-upstream-service-time: 142
< 
{
  "args": {}, 
  "headers": {
    "Accept": "*/*", 
    "Connection": "close", 
    "Host": "httpbin.org", 
    "User-Agent": "curl/7.35.0", 
    "X-B3-Sampled": "1", 
    "X-B3-Spanid": "0000b825f82b418d", 
    "X-B3-Traceid": "0000b825f82b418d", 
    "X-Ot-Span-Context": "0000b825f82b418d;0000b825f82b418d;0000000000000000;cs"
  }, 
  "origin": "68.3.84.124", 
  "url": "http://httpbin.org/get"
}

現(xiàn)在,如果我們轉(zhuǎn)到Zipkin服務(wù)器,我們應(yīng)該看到此調(diào)用的單個(gè)跨度/跟蹤(注意,您可能需要調(diào)整zipkin過濾器中的開始/停止時(shí)間:

這里我們有一個(gè)只有一個(gè)span的跟蹤(這是我們所期望的,因?yàn)槲覀兊腅nvoy演示客戶端直接與沒有Envoy的外部服務(wù)調(diào)用......如果上游服務(wù)也有啟用了zipkin的Envoy,我們將看到服務(wù)之間的全部span)。

如果我們點(diǎn)擊span以查看更多細(xì)節(jié),我們會看到如下內(nèi)容:

PS

請注意,服務(wù)體系結(jié)構(gòu)中的每個(gè)服務(wù)都應(yīng)該與Envoy一起部署并參與分布式跟蹤。這種方法的優(yōu)點(diǎn)在于跟蹤是從應(yīng)用程序帶外進(jìn)行的。但是,為了跟蹤要正確傳播的上下文,應(yīng)用程序開發(fā)人員有責(zé)任正確傳播正確的header,以便不同的span正確關(guān)聯(lián)。檢查zipkin以獲取更多詳細(xì)信息,但至少要傳播這些header(如上所示):

x-request-id

x-b3-traceid

x-b3-spanid

x-b3-parentspanid

x-b3-sampled

x-b3-flags

x-ot-span-context

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/33139.html

相關(guān)文章

  • 使用Envoy Sidecar Proxy的微服務(wù)模式-1.熔斷

    摘要:我們將直接向發(fā)送流量,以使其幫幫助處理熔斷。讓我們調(diào)用我們的服務(wù)我們將看到以下的輸出我們也能看到我們五次的調(diào)用成功了。 本博客是深入研究Envoy Proxy和Istio.io 以及它如何實(shí)現(xiàn)更優(yōu)雅的方式來連接和管理微服務(wù)系列文章的一部分。 這是接下來幾個(gè)部分的想法(將在發(fā)布時(shí)更新鏈接): 斷路器(第一部分) 重試/超時(shí)(第二部分) 分布式跟蹤(第三部分) Prometheus的指標(biāo)...

    NotFound 評論0 收藏0
  • 使用Envoy Sidecar Proxy的微服務(wù)模式-1.熔斷

    摘要:我們將直接向發(fā)送流量,以使其幫幫助處理熔斷。讓我們調(diào)用我們的服務(wù)我們將看到以下的輸出我們也能看到我們五次的調(diào)用成功了。 本博客是深入研究Envoy Proxy和Istio.io 以及它如何實(shí)現(xiàn)更優(yōu)雅的方式來連接和管理微服務(wù)系列文章的一部分。 這是接下來幾個(gè)部分的想法(將在發(fā)布時(shí)更新鏈接): 斷路器(第一部分) 重試/超時(shí)(第二部分) 分布式跟蹤(第三部分) Prometheus的指標(biāo)...

    Drummor 評論0 收藏0
  • 使用Envoy Sidecar Proxy的微服務(wù)模式-5.rate limiter

    摘要:為安裝過濾器的偵聽器上的每個(gè)新請求調(diào)用服務(wù),路由表指定應(yīng)調(diào)用服務(wù)。使用了令牌桶算法來限流。 本博客是深入研究Envoy Proxy和Istio.io 以及它如何實(shí)現(xiàn)更優(yōu)雅的方式來連接和管理微服務(wù)系列文章的一部分。 這是接下來幾個(gè)部分的想法(將在發(fā)布時(shí)更新鏈接): 斷路器(第一部分) 重試/超時(shí)(第二部分) 分布式跟蹤(第三部分) Prometheus的指標(biāo)收集(第四部分) rate ...

    CocoaChina 評論0 收藏0
  • 使用Envoy Sidecar Proxy的微服務(wù)模式-2.超時(shí)和重試

    摘要:在第二部分中,我們將詳細(xì)介紹如何啟用其他彈性功能,如超時(shí)和重試。在此部署模型中,被部署為服務(wù)的在本例中為客戶端。這些示例的上游服務(wù)是。它們可以幫助傳播故障或?qū)赡苷趻暝膬?nèi)部服務(wù)造成類型攻擊。此延遲應(yīng)足以觸發(fā)超時(shí)。 本博客是深入研究Envoy Proxy和Istio.io 以及它如何實(shí)現(xiàn)更優(yōu)雅的方式來連接和管理微服務(wù)系列文章的一部分。 這是接下來幾個(gè)部分的想法(將在發(fā)布時(shí)更新鏈接):...

    vibiu 評論0 收藏0
  • 華爾街見聞基于istio的服務(wù)網(wǎng)格實(shí)踐

    摘要:,托管于騰訊云容器平臺容器編排工具。適配我們目前的服務(wù)部署在騰訊云托管,節(jié)點(diǎn)使用核的網(wǎng)絡(luò)增強(qiáng)型機(jī)器,所有的后端服務(wù)都以部署,集群外部署高可用支持集群內(nèi)服務(wù)發(fā)現(xiàn),數(shù)據(jù)庫以為主,消息隊(duì)列采用。 距離2017年的見聞技術(shù)架構(gòu)調(diào)整接近2年,隨著業(yè)務(wù)線的發(fā)展,見聞技術(shù)部的項(xiàng)目數(shù)量、項(xiàng)目架構(gòu)類型、基礎(chǔ)設(shè)施規(guī)模、服務(wù)變更頻率都在不斷地增長,帶給SRE的挑戰(zhàn)是如何能更快地助力于開發(fā)人員更快更穩(wěn)定地部署...

    stonezhu 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<