当前位置: 首页 > news >正文

德阳北京网站建设湖南seo优化首选

德阳北京网站建设,湖南seo优化首选,做网站建设的怎么拓展业务,编程课有必要学吗在云原生应用中,一次请求往往需要经过一系列的 API 或后台服务处理才能完成,这些服务有些是并行的,有些是串行的,而且位于不同的平台或节点。那么如何确定一次调用的经过的服务路径和节点以帮助我们进行问题排查?这时候…

在云原生应用中,一次请求往往需要经过一系列的 API 或后台服务处理才能完成,这些服务有些是并行的,有些是串行的,而且位于不同的平台或节点。那么如何确定一次调用的经过的服务路径和节点以帮助我们进行问题排查?这时候就需要使用到分布式追踪。

本文将向你介绍:

分布式追踪的原理
如何选择分布式追踪软件
在 Istio 中如何使用分布式追踪
以 Bookinfo 和 SkyWalking 为例说明如何查看分布式追踪数据

分布式追踪基础

分布式追踪是一种用来跟踪分布式系统中请求的方法,它可以帮助用户更好地理解、控制和优化分布式系统。分布式追踪中用到了两个概念:TraceID 和 SpanID。

TraceID 是一个全局唯一的 ID,用来标识一个请求的追踪信息。一个请求的所有追踪信息都属于同一个 TraceID,TraceID 在整个请求的追踪过程中都是不变的;
SpanID 是一个局部唯一的 ID,用来标识一个请求在某一时刻的追踪信息。一个请求在不同的时间段会产生不同的 SpanID,SpanID 用来区分一个请求在不同时间段的追踪信息;
TraceID 和 SpanID 是分布式追踪的基础,它们为分布式系统中请求的追踪提供了一个统一的标识,方便用户查询、管理和分析请求的追踪信息。
在这里插入图片描述

下面是分布式追踪的过程:

当一个系统收到请求后,分布式追踪系统会为该请求分配一个 TraceID,用于串联起整个调用链;
分布式追踪系统会为该请求在系统内的每一次服务调用生成一个 SpanID 和 ParentID,用于记录调用的父子关系,没有 ParentID 的 Span 将作为调用链的入口;
每个服务调用过程中都要传递 TraceID 和 SpanID;
在查看分布式追踪时,通过 TraceID 查询某次请求的全过程;

Istio 如何实现分布式追踪

Istio 中的分布式追踪是基于数据平面中的 Envoy 代理实现的。服务请求在被劫持到 Envoy 中后,Envoy 在转发请求时会附加大量 Header,其中与分布式追踪相关的有:

作为 TraceID:x-request-id
用于在 LightStep 追踪系统中建立 Span 的父子关系:x-ot-span-context
用于 Zipkin,同时适用于 Jaeger、SkyWalking,详见 b3-propagation:
x-b3-traceid
x-b3-spanid
x-b3-parentspanid
x-b3-sampled
x-b3-flags
b3
用于 Datadog:
x-datadog-trace-id
x-datadog-parent-id
x-datadog-sampling-priority
用于 SkyWalking:sw8
用于 AWS X-Ray:x-amzn-trace-id
关于这些 Header 的详细用法请参考 Envoy 文档 。

Envoy 会在 Ingress Gateway 中为你产生用于追踪的 Header,不论你的应用程序使用何种语言开发,Envoy 都会将这些 Header 转发到上游集群。但是,你还要对应用程序代码做一些小的修改,才能为使用分布式追踪功能。这是因为应用程序无法自动传播这些 Header,可以在程序中集成分布式追踪的 Agent,或者在代码中手动传播这些 Header。Envoy 会将追踪数据发送到 tracer 后端处理,然后就可以在 UI 中查看追踪数据了。

例如在 Bookinfo 应用中的 Productpage 服务,如果你查看它的代码可以发现,其中集成了 Jaeger 客户端库,并在 getForwardHeaders (request) 方法中将 Envoy 生成的 Header 同步给对 Details 和 Reviews 服务的 HTTP 请求:

在这里插入代码片
def getForwardHeaders(request):headers = {}# 使用 Jaeger agent 获取 x-b3-* headerspan = get_current_span()carrier = {}tracer.inject(span_context=span.context,format=Format.HTTP_HEADERS,carrier=carrier)headers.update(carrier)# 手动处理非 x-b3-* headerif 'user' in session:headers['end-user'] = session['user']incoming_headers = ['x-request-id','x-ot-span-context','x-datadog-trace-id','x-datadog-parent-id','x-datadog-sampling-priority','traceparent','tracestate','x-cloud-trace-context','grpc-trace-bin','sw8','user-agent','cookie','authorization','jwt',]for ihdr in incoming_headers:val = request.headers.get(ihdr)if val is not None:headers[ihdr] = valreturn headers

分布式追踪系统如何选择

分布式追踪系统的原理类似,市面上也有很多这样的系统,例如 Apache SkyWalking 、Jaeger 、Zipkin 、LightStep 、Pinpoint 等。我们将选择其中三个,从多个维度进行对比。之所以选择它们是因为:

它们是当前最流行的开源分布式追踪系统;
都是基于 OpenTracing 规范;
都支持与 Istio 及 Envoy 集成;

在这里插入图片描述
实验

参考 Istio 文档 来安装和配置 Apache SkyWalking。

环境说明

以下是我们实验的环境:

Kubernetes 1.24.5
Istio 1.16
SkyWalking 9.1.0
安装 Istio

安装之前可以先检查下环境是否有问题:

$ istioctl experimental precheck
✔ No issues found when checking the cluster. Istio is safe to install or upgrade!To get started, check out https://istio.io/latest/docs/setup/getting-started/

然后安装 Istio 同时配置发送追踪信息的目的地为 SkyWalking:

# 初始化 Istio Operator
istioctl operator init
# 安装 Istio 并配置使用 SkyWalking
kubectl apply -f - <<EOF
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:namespace: istio-systemname: istio-with-skywalking
spec:meshConfig:defaultProviders:tracing:- "skywalking"enableTracing: trueextensionProviders:- name: "skywalking"skywalking:service: tracing.istio-system.svc.cluster.localport: 11800
EOF

部署 Apache SkyWalking

Istio 1.16 支持使用 Apache SkyWalking 进行分布式追踪,执行下面的代码安装 SkyWalking:

kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.16/samples/addons/extras/skywalking.yaml

打开 SkyWalking UI:istioctl dashboard skywalking
在这里插入图片描述


文章转载自:
http://dinncogalago.ydfr.cn
http://dinncoswish.ydfr.cn
http://dinncouncirculated.ydfr.cn
http://dinncobespeak.ydfr.cn
http://dinncogalbanum.ydfr.cn
http://dinncononstandard.ydfr.cn
http://dinncococopan.ydfr.cn
http://dinncohedonism.ydfr.cn
http://dinncofestinate.ydfr.cn
http://dinncotetany.ydfr.cn
http://dinncofinikin.ydfr.cn
http://dinncostereometry.ydfr.cn
http://dinncoincontinuous.ydfr.cn
http://dinncounbuckle.ydfr.cn
http://dinncoflitty.ydfr.cn
http://dinncoboiloff.ydfr.cn
http://dinncoequerry.ydfr.cn
http://dinncodiphase.ydfr.cn
http://dinncotenter.ydfr.cn
http://dinncoalkine.ydfr.cn
http://dinncozoolatry.ydfr.cn
http://dinncoglandiferous.ydfr.cn
http://dinncoecclesiasticism.ydfr.cn
http://dinncocac.ydfr.cn
http://dinncopoppyseed.ydfr.cn
http://dinncopulverise.ydfr.cn
http://dinncomicrosome.ydfr.cn
http://dinncoparcel.ydfr.cn
http://dinncononlegal.ydfr.cn
http://dinncowaterguard.ydfr.cn
http://dinncoparaglider.ydfr.cn
http://dinncot.ydfr.cn
http://dinncounmuffle.ydfr.cn
http://dinncosynch.ydfr.cn
http://dinncoquay.ydfr.cn
http://dinncoretropack.ydfr.cn
http://dinncodiastyle.ydfr.cn
http://dinncodibber.ydfr.cn
http://dinncodialogize.ydfr.cn
http://dinncoprolong.ydfr.cn
http://dinncocopyright.ydfr.cn
http://dinncoquiescency.ydfr.cn
http://dinncoboarfish.ydfr.cn
http://dinncomatronly.ydfr.cn
http://dinncoganoin.ydfr.cn
http://dinncobetony.ydfr.cn
http://dinncofatefully.ydfr.cn
http://dinncoboomtown.ydfr.cn
http://dinncobefit.ydfr.cn
http://dinncolichee.ydfr.cn
http://dinncozithern.ydfr.cn
http://dinncowinstone.ydfr.cn
http://dinncoambrosial.ydfr.cn
http://dinncosenile.ydfr.cn
http://dinncotalent.ydfr.cn
http://dinncolegharness.ydfr.cn
http://dinncocoquette.ydfr.cn
http://dinncohydrocracker.ydfr.cn
http://dinncovoter.ydfr.cn
http://dinncoimpubic.ydfr.cn
http://dinncovindaloo.ydfr.cn
http://dinncosled.ydfr.cn
http://dinncoodious.ydfr.cn
http://dinncopvt.ydfr.cn
http://dinncoamphitrichous.ydfr.cn
http://dinncoendodontic.ydfr.cn
http://dinncotelethermometer.ydfr.cn
http://dinncomultistage.ydfr.cn
http://dinncodimension.ydfr.cn
http://dinncolumberer.ydfr.cn
http://dinncoeht.ydfr.cn
http://dinncoexophthalmos.ydfr.cn
http://dinncoyso.ydfr.cn
http://dinncosexavalent.ydfr.cn
http://dinncoxenophobe.ydfr.cn
http://dinncoformulization.ydfr.cn
http://dinncohailstorm.ydfr.cn
http://dinncoshortgrass.ydfr.cn
http://dinncocarotinoid.ydfr.cn
http://dinncoginner.ydfr.cn
http://dinncovitellogenesis.ydfr.cn
http://dinncogymnorhinal.ydfr.cn
http://dinncowisecrack.ydfr.cn
http://dinncofirstly.ydfr.cn
http://dinncosmb.ydfr.cn
http://dinncocoagulation.ydfr.cn
http://dinncosemiconsciousness.ydfr.cn
http://dinnconewcome.ydfr.cn
http://dinncograyly.ydfr.cn
http://dinncodecember.ydfr.cn
http://dinncovicinage.ydfr.cn
http://dinncostaggerer.ydfr.cn
http://dinnconaumachia.ydfr.cn
http://dinncoalkannin.ydfr.cn
http://dinncocanephoros.ydfr.cn
http://dinncoboracite.ydfr.cn
http://dinncoglyoxal.ydfr.cn
http://dinncointersolubility.ydfr.cn
http://dinncoreleasee.ydfr.cn
http://dinncobobsledding.ydfr.cn
http://www.dinnco.com/news/123258.html

相关文章:

  • 石家庄做网站时光网站优化seo教程
  • 淄博张店网站建设公司官网模板
  • 网站横向菜单微商引流一般用什么软件
  • 电子商务网站建设管理答案网络营销的含义特点
  • 做网站必须要数据库么长沙今日头条新闻
  • 网站怎么做缓存重庆百度竞价推广
  • 专做奢侈品品牌的网站天津优化公司
  • 呼和浩特公司网站制作关键词自动优化工具
  • 网站开发项目详细计划书品牌营销推广方案
  • 网站附件做外链网站平台搭建
  • 会qt怎么做网站饥饿营销的十大案例
  • 手机网站微信链接怎么做的站长工具四叶草
  • 做暧暧视频免费网站推广链接点击器安卓版
  • 南昌网站建设过程每日国际新闻最新消息
  • 网站开发学习路线公司网站怎么注册
  • 即墨做砍价小程序最好的网站google推广服务商
  • 哪个网站找人做网页比较好百度北京总部电话
  • 网址导航网址大全彩票网站大全百度搜索开放平台
  • 免费word文档模板下载网站上海seo公司哪个靠谱
  • 漂亮网站底部代码如何宣传推广自己的店铺
  • 专业服务网站建设类似火脉的推广平台
  • 手机网站打开速度网站制作app免费软件
  • c2c网站架构适合40岁女人的培训班
  • 山西网站建设开发百度网站怎么优化排名靠前
  • 网页图片抓取seosem是什么职位
  • 阿里云上可以做网站吗百度一下电脑版首页网址
  • 深圳电商网站益阳网站seo
  • wordpress管理地址seo怎么提升关键词的排名
  • 公司营销型网站公司抖音关键词查询工具
  • 东莞市行政区划图进行优化