IT袋

当前位置:主页 > 经验教程 > 建站编程 >

SkyWalking的原理及架构设计

SkyWalking的原理及架构设计(2)

时间:2023-09-23 14:35:26 来源:IT袋 作者:苏晓敏
导读:SkyWalking的原理及架构设计,不过 snowflake 算法有一个众所周知的问题: 时间回拨 ,这个问题可能会导致生成的 id 重复。那么 SkyWalking 是如何解决时间回拨问题的呢。 每生成一个 i

SkyWalking的原理及架构设计

SkyWalking的原理及架构设计

不过 snowflake 算法有一个众所周知的问题:时间回拨,这个问题可能会导致生成的 id 重复。那么 SkyWalking 是如何解决时间回拨问题的呢。

SkyWalking的原理及架构设计

每生成一个 id,都会记录一下生成 id 的时间(lastTimestamp),如果发现当前时间比上一次生成 id 的时间(lastTimestamp)还小,那说明发生了时间回拨,此时会生成一个随机数来作为 traceId。这里可能就有同学要较真了,可能会觉得生成的这个随机数也会和已生成的全局 id 重复,是否再加一层校验会好点。

这里要说一下系统设计上的方案取舍问题了,首先如果针对产生的这个随机数作唯一性校验无疑会多一层调用,会有一定的性能损耗,但其实时间回拨发生的概率很小(发生之后由于机器时间紊乱,业务会受到很大影响,所以机器时间的调整必然要慎之又慎),再加上生成的随机数重合的概率也很小,综合考虑这里确实没有必要再加一层全局惟一性校验。对于技术方案的选型,一定要避免过度设计,过犹不及。

请求量这么多,全部采集会不会影响性能?

如果对每个请求调用都采集,那毫无疑问数据量会非常大,但反过来想一下,是否真的有必要对每个请求都采集呢,其实没有必要,我们可以设置采样频率,只采样部分数据,SkyWalking 默认设置了 3 秒采样 3 次,其余请求不采样,如图示

SkyWalking的原理及架构设计

这样的采样频率其实足够我们分析组件的性能了,按 3 秒采样 3 次这样的频率来采样数据会有啥问题呢。理想情况下,每个服务调用都在同一个时间点(如下图示)这样的话每次都在同一时间点采样确实没问题

相关阅读

  • 怎么搭建ssr服务器 ssr一键搭建脚本最新

    怎么搭建ssr服务器 ssr一键搭建脚本最新

    IT电脑小知识篇,关于怎么搭建ssr服务器和ssr一键搭建脚本最新的IT知识,一起来看看吧! 看了vue 官方的文档,还是有点懵的。百度了一堆东西,终于成功的配置出基于vue-cli3的vue-ssr 服务端预

  • 网站建设制作步骤 制作网页链接了解

    网站建设制作步骤 制作网页链接了解

    您可能不了解网站建设制作步骤和制作网页链接了解方面的知识,接下来IT袋小编为大家介绍。 受互联网的影响使实体店越来越难,为适应时代,企业将由线下转向线上拓展业务。下面知网科

  • 包装设计平台有哪些 优秀包装设计网站推荐

    包装设计平台有哪些 优秀包装设计网站推荐

    今天为网友们详解包装设计平台有哪些和优秀包装设计网站推荐IT技巧方面的经验,具体内容如下: 作为品牌的第一道形象,包装设计是重要的营销工具,它决定了消费者对品牌的第一印象,

  • ping是哪个端口号 Ping命令用的是ICMP协议不是端口号

    ping是哪个端口号 Ping命令用的是ICMP协议不是端口号

    有很多网友在问: ping是哪个端口号?ping命令用的是什么端口? 下面IT袋小编就给大家解答下这个问题,帮助大家解疑! 疑问解答: Ping命令使用的是ICMP协议,不是端口号。 ICMP不像http、htt