楼主: dlmxv90851
559 1

轻松入门大数据:一站式完成核心能力构建 [推广有奖]

  • 0关注
  • 0粉丝

禁止发言

硕士生

94%

还不是VIP/贵宾

-

威望
0
论坛币
266 个
通用积分
54.9688
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
1668 点
帖子
98
精华
0
在线时间
65 小时
注册时间
2020-4-17
最后登录
2024-4-26

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
轻松入门大数据:一站式完成核心能力构建
十二年技术老兵,带你操盘企业级项目,打造数据思维
大数据在互联网与工业领域的价值不用赘言,随着人工智能、区块链等技术越来越火热,许多企业也加入了大数据的“抢人大战”。大数据技术栈众多,学习曲线陡峭,为了更好地帮你入门,我们将从大数据基石——Hadoop讲起,过渡到Hive,一步步掌握数仓、数据处理、离线开发等关键技能点,并最终通过一个大型项目的实战,带你进入大数据的世界!
《春云探》的特点
1.上下文传播
使用跟踪头传播从一个服务连接到另一个服务。默认格式是B3。与数据格式类似,如果追踪和范围ID与B3兼容,您也可以配置备用标题格式。最值得注意的是,这意味着跟踪ID和span ID是小写的十六进制,而不是UUID。除了跟踪标识符之外,其他属性(行李)也可以随请求一起传递。远程行李必须预定义,但在其他方面是灵活的。

若要使用提供的默认值,可以设置此属性。该值可以是一个列表,在这种情况下,您将传播更多的跟踪头。spring.sleuth.propagation.type

对于勇敢,我们支持这种交流方式。AWS B3 W3C

您可以在“如何做”一节中了解更多关于如何提供自定义上下文传播的信息。

2.抽样
Cloud sleuth将采样决策下推到跟踪器实现。但是,在某些情况下,您可以在运行时更改采样决策。

其中一种情况是跳过某些客户端范围的报告。为此,您可以将路径模式设置为跳过。另一种选择是提供您自己的自定义实现,并定义何时不应对给定的进行采样。spring . sleuth . web . client . skip-pattern org . spring framework . cloud . sleuth . sampler function http request

3.行李
分布式跟踪通过在服务内部和服务之间传播将跟踪连接在一起的字段来工作:特别是traceId和spanId。保存这些字段的上下文可以选择推送其他需要保持一致的字段,而不管涉及到多少服务。这些额外字段的简单名称是“行李”。

侦探允许您定义跟踪上下文中允许的行李,包括使用哪些标题名称。

目前,对行李物品的数量或尺寸没有限制。请记住,太多可能会降低系统吞吐量或增加RPC延迟。在极端情况下,过多的行李可能会使应用程序崩溃,因为超出了传输层的消息或报头容量。

您可以使用属性来定义没有特殊配置的字段,例如名称映射:

spring . sleuth . baggage . remote-fields是要被接受并传播到远程服务的头名称列表。
spring . sleuth . baggage . local-fields是要在本地传播的名称列表。
这些键没有前缀。你设置的,其实就是你用的。

在这两个属性中设置的名称将导致相同的名称。行李

为了自动将行李值设置为Slf4j的MDC,您必须使用允许的本地或远程键列表来设置属性。例如,将行李的值设置为MDC。spring . sleuth . baggage . correlation-fields spring . sleuth . baggage . correlation-fields = country-code国家代码

请注意,附加字段将从下一个下游跟踪上下文传播并添加到MDC中。要在当前跟踪上下文中立即向MDC添加额外的字段,请配置这些字段以更新
记住,向MDC添加条目会大大降低应用程序的性能!

如果您想添加行李项作为标签,以便您可以按行李项搜索范围,您可以设置允许的行李关键字列表的值。若要禁用此功能,必须传递属性。spring . sleuth . baggage . tag-fields spring . sleuth . propagation . tag . enabled = false

3.1.行李和标签
与跟踪ID一样,行李通常作为标题附加在消息或请求中。标签是span中发送给Zipkin的键值对。默认情况下,行李值不会添加一个跨度,这意味着除非你选择加入,否则你不能按行李进行搜索。

若要标记行李,请使用属性。
4.开放Tsypkin中的勇敢追踪器集成。
Cloudsleuth通过模块中可用的桥梁与OpenZipkin Brave tracker集成。在这一节中,你可以读到具体的勇敢的整合。春天-云-侦探-勇敢

您可以选择在代码中直接使用Sleuth的API或Brave API(例如Sleuth或Brave)。如果你想直接使用这个跟踪器实现的API,请阅读他们的文档以获得更多信息。示踪物

4.1.勇气的基础
以下是您可以使用的核心类型:

勇敢。改变当前正在进行的跨度。
勇敢。tracer-临时开始一个新的跨度
以下是OpenZipkin Brave项目中最相关的链接:

勇敢者的核心图书馆
行李(饲养场)
HTTP跟踪
4.2.勇敢的取样
采样只适用于跟踪后端,比如Zipkin。无论采样率如何,跟踪ID都将显示在日志中。采样是一种防止系统过载的方法,它总是跟踪一些请求,但不是所有的请求。

每秒10个磁道的默认速率是由属性控制的,当我们知道侦探使用它的原因不是为了记录时,就应用该属性。使用超过每秒100行的跟踪速率时要格外小心,因为这会使跟踪系统过载。spring.sleuth .采样器. rate

采样器也可以通过Java配置来设置。
在执行消息传递时,可以将HTTP标头设置为,也可以将标头设置为。这样做将强制对当前请求进行采样,而不管配置如何。b3 1 spanFlags 1

默认情况下,采样器将使用刷新范围机制。这意味着您可以在运行时更改采样属性,刷新应用程序,这些更改将会得到反映。然而,有时在采样器周围创建一个代理,并且过早地调用它(从带注释的方法)可能会导致死锁。在这种情况下,请显式创建采样器Bean,或者设置属性以禁用刷新范围支持。@ post construct spring . sleuth . sampler . refresh . enabled false

4.3.勇敢的行李Java配置
如果您需要执行比上述更高级的操作,请不要定义属性,而是对已用行李字段使用aconfig。@Bean

BaggagePropagationCustomizer设置行李字段。
为添加ato控制题头名称..单个行李
CorrelationScopeCustomizer设置MDC字段
更新刷新时增加aa来改变aor的MDC名称。SingleCorrelationFieldBaggage
4.4.勇敢定制
这个对象完全由侦探管理,所以你很少需要去影响它。也就是说,Sleuth支持多种类型,允许你用自动配置或者属性来配置Sleuth没有完成的任何操作。勇敢。跟踪定制程序

如果您将下列之一定义为,Sleuth将调用它来自定义行为:Bean

RpcTracingCustomizer-用于RPC标记和采样策略
HTTP pacing customizer——用于HTTP标记和采样策略
消息跟踪定制器——用于消息标记和抽样策略。
集成相关的装饰器。
BageCargo Customizer-用于在流程中和标题上传播行李的字段。
相关作用域记录器——用于作用域修改,例如MDC(日志记录)字段关联。
4.4.1.勇敢的取样定制
如果需要客户机/服务器采样,只需注册一种类型的bean,并将客户机采样器和服务器采样器的bean命名为。brave . sampler . sampler function sleuhttpclientsampler sleuhttpserver sampler

为了方便起见,可以使用theandannotation注入正确的bean,或者通过bean的静态字符串字段引用bean名称。@ HttpClientSampler @ http server sampler NAME

查看Brave的代码,了解如何制作基于路径的采样器github . com/openzipkin/Brave/tree/master/instrumentation/http # sampling-policy

如果想要完全重写bean,可以使用接口来检索不应该被采样的URL。
4.5.勇敢的信息传递
Sleuth自动将thebean配置为Kafka或JMS等消息传递工具的基础。短信竞速

如果需要定制消息跟踪的生产者/消费者抽样,只需注册一种类型的bean,并将bean命名为生产者抽样器和消费者抽样器。brave . sampler . sampler function sleuthProducerSampler sleuthConsumerSampler

为了方便起见,可以使用theandannotation注入正确的bean,或者通过bean的静态字符串字段引用bean名称。@ productor sampler @ consumer sampler NAME

《出埃及记》下面是一个每秒跟踪100个用户请求的采样器,除了“报警”通道。其他请求将使用组件提供的全球比率。追踪

4.6.勇敢的公众追踪
你可以通过桥梁与Brave和OpenTracing整合。只需将其添加到类路径中,OpenTracing就会自动设置。io . open tracing . brave:brave-opentracingTracer

5.将跨度发送给Zipkin
Cloud sleuth提供了与OpenZipkin分布式跟踪系统的各种集成。无论选择哪个跟踪器实现,只需添加到类路径中,就可以开始向Zipkin发送spans。您可以选择是通过HTTP还是消息传递来实现这一点。您可以在how to部分阅读更多关于如何做到这一点的信息。春天-云-侦探-齐普金

当span关闭时,它通过HTTP发送到Zipkin。通信是异步的。您可以通过如下方式设置属性来配置URL:spring . zipkin . base URL

如果想通过服务发现找到Zipkin,可以在URL中传递Zipkin的服务ID
1.
若要禁用此功能,只需将设置为。discovery-客户端启用的false

发现客户端功能后,侦探使用查找Zipkin服务器的URL。这意味着您可以设置负载平衡配置。负载平衡客户端

如果类路径中同时有、或,您可能需要选择想要将span发送到zipkin的方法。为此,请设置、或属性。下面的示例演示如何设置发件人类型:web
如果您运行的是非反应式应用程序,我们将使用基于span的发送器。否则,将选择基于范围的发送者。RestTemplate客户端

默认情况下,将根据编码器版本设置api路径。如果要使用自定义api路径,可以用以下属性对其进行配置(空和大写,set ""): API/v2/spanapi/v1/spans。

api-path: v2/path2
1.
对于反应式应用程序,我们将创建一个简单的实例。如果您想提供自己的实例或重用现有的实例,您需要创建一个bean的实例。​​
5.1.自定义服务名称
默认情况下,Sleuth假设当您向Zipkin发送span时,您希望span的服务名等于属性值。然而,情况并非总是如此。在某些情况下,您希望为应用程序中的所有跨度显式地提供不同的服务名称。为此,您可以通过将以下属性传递给应用程序来覆盖该值(此示例适用于名为的服务):spring . application . nameservice。

名称:我的服务
1.
5.2.主机定位器
本节介绍如何通过服务发现来定义主机。这不是通过服务发现找到Zipkin。


如果你对SpringCloud Sleuth的核心功能满意,可以继续阅读Spring Cloud Sleuth的集成。
轻松入门大数据:一站式完成核心能力构建
download链接:https://pan.baidu.com/s/1CZAiXK0GLeTJojfI-_FxsQ?pwd=l8f3
提取码:l8f3
--来自百度网盘超级会员V5的分享

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:核心能力 一站式 大数据 correlations correlation

沙发
三江鸿 发表于 2022-12-2 20:00:16 来自手机 |只看作者 |坛友微信交流群
点赞支持感谢分享

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加JingGuanBbs
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-27 08:52