蚂蚁金服分布式链路组件 SOFATracer 埋点机制解析 | SOFAChannel#15 直播整理

开源埋点分析系统:洞察用户行为的新视角 ​在数字化浪潮中,了解用户行为和优化用户体验成为企业竞争力的关键。对于希望深入了解客户和推动业务增长的公司来说,埋点分析系统是不可或缺的工具。今天,我们要介绍的不仅是一个ClkLog埋点分析系统,而是一种全新的、开源的洞察方案,它能够帮助您捕捉每一个关键数据点,确保您的决策基于最准确的用户行为分析。 阅读详情

<SOFA:Channel/>,有趣实用的分布式架构频道。 

回顾视频以及 PPT 查看地址见文末。欢迎加入直播互动钉钉群 : 30315793,不错过每场直播。 


本文根据 SOFAChannel#15 直播分享整理,主题:分布式链路组件 SOFATracer 埋点机制解析。

大家好,我是宋国磊,花名卫恒,是 SOFATracer 的开源负责人。今天要和大家分享的是分布式链路组件 SOFATracer 埋点机制解析,将通过具体 Demo 演示快速上手 SOFATracer,同时介绍 SOFATracer 功能点,并详细介绍其核心关键「埋点机制」的原理。

前言

SOFATracer 是蚂蚁金服开源的基于 OpenTracing 规范 的分布式链路跟踪系统,其核心理念就是通过一个全局的 TraceId 将分布在各个服务节点上的同一次请求串联起来。通过统一的 TraceId 将调用链路中的各种网络调用情况以日志的方式记录下来同时也提供远程汇报到 Zipkin 进行展示的能力,以此达到透视化网络调用的目的。

SOFATracer:https://github.com/sofastack/sofa-tracer

SOFATracer 作为 SOFAStack 中的分布式链路组件,也伴随着 SOFAStack 走过了两年的时间,在此首先对两年来对 SOFATracer 保持关注并且参与社区建设的同学表示感谢,也希望大家能够继续关注 SOFAStack 的发展,也欢迎更多的同学加入到 SOFAStack 的社区参与中来。

今天的分享内容主要将会围绕以下三个部分展开:

  • SOFATracer 功能点详细介绍;

  • SOFATracer 埋点机制原理详解;

  • 快速上手 SOFATracer 演示;

关于 SOFATracer 更多的问题也欢迎在 Github 上跟我们交流。

SOFATracer 简介

首先简单介绍一下 SOFATracer。上图展示的是 SOFATracer 目前所包括的基本能力和所支持的插件。下面虚线框中绿色背景部分,是 SOFATracer 提供的基本功能,具体可以参考官方文档描述。上面虚线框中是 SOFATracer 目前所支持的组件,大概分了以下几种类型:客户端、Web、数据存储、消息、RPC、Spring Cloud。

之前社区也发起过 剖析 | SOFATracer 框架 的源码解析系列文章,在此系列中对 SOFATracer 所提供的能力及实现原理都做了比较全面的分析,有兴趣的同学可以看下。

今天主要聊一下埋点机制。不同组件的埋点机制也是有很大的差异,SOFATracer 是如何实现对上述组件进行埋点的,下面就详细分析下不同组件的埋点机制。

埋点机制

目前 SOFATracer 已经支持了对以下开源组件的埋点支持:Spring MVC、RestTemplate、HttpClient、OkHttp3、JDBC、Dubbo(2.6/2.7)、SOFARPC、Redis、MongoDB、Spring Message、Spring Cloud Stream (基于 Spring Message 的埋点)、RocketMQ、Spring Cloud FeignClient、Hystrix。

大多数能力提供在 3.x 版本,2.x 版本从官方 issue 中可以看到后续将不再继续提供新的功能更新;这也是和 SpringBoot 宣布不再继续维护 1.x 版本有关系。

标准 Servlet 规范埋点原理

SOFATracer 支持对标准 Servlet 规范的 Web MVC 埋点,包括普通的 Servlet 和 Spring MVC 等,基本原理就是基于 Servelt 规范所提供的 javax.servlet.Filter 过滤器接口扩展实现。

过滤器位于 Client 和 Web 应用程序之间,用于检查和修改两者之间流过的请求和响应信息。在请求到达 Servlet 之前,过滤器截获请求。在响应送给客户端之前,过滤器截获响应。多个过滤器形成一个 FilterChain,FilterChain 中不同过滤器的先后顺序由部署文件 web.xml 中过滤器映射的顺序决定。最先截获客户端请求的过滤器将最后截获 Servlet 的响应信息。

Web 应用程序一般作为请求的接收方,在 SOFATracer 中应用是作为 Server 存在的,其在解析 SpanContext 时所对应的事件为 sr (server receive)。

SOFATracer 在 sofa-tracer-springmvc-plugin 插件中解析及产生 Span 的过程大致如下:

  • Servlet Filter 拦截到 request 请求;

  • 从请求中解析 SpanContext;

  • 通过 SpanContext 构建当前 MVC 的 Span;

  • 给当前 Span 设置 tag、log;

  • 在 Filter 处理的最后,结束 Span;

当然这里面还会设计到其他很多细节,比如给 Span 设置哪些 tag 属性、如果处理异步线程透传等等。本次分享就不展开细节探讨,有兴趣的同学可以自行阅读代码或者和我们交流。

Dubbo 埋点原理

Dubbo 埋点在 SOFATracer 中实际上提供了两个插件,分别用于支持 Dubbo 2.6.x 和 Dubbo 2.7.x;Dubbo 埋点也是基于 Filter ,此 Filter 是 Dubbo 提供的 SPI 扩展-调用拦截扩展 机制实现。

像 Dubbo 或者 SOFARPC 等 RPC 框架的埋点,通常需要考虑的点比较多。首先, RPC 框架分客户端和服务端,所以在埋点时 RPC 的客户端和服务端必须要有所区分;再者就是 RPC 的调用方式包括很多种,如常见的同步调用、异步调用、oneway 等等,调用方式不同,所对应的 Span 的结束时机也不同,重要的是基本所有的 RPC 框架都会使用线程池用来发起和处理请求,那么如何保证 SOFATracer 在多线程环境下不串也很重要。

另外 Dubbo 2.6.x 和 Dubbo 2.7.x 在异步回调处理上差异比较大,Dubbo 2.7.x 中提供了 onResponse 方法(后面又升级为 Listener,包括 onResponse 和 onError 两个方法);而 Dubbo 2.6.x 中则并未提供相应的机制,只能通过对 Future 的硬编码处理来完成埋点和上报。

这个问题 Zipkin Brave 对 Dubbo 2.6.x 的埋点时其实也没有考虑到,在做 SOFATracer 支持 Dubbo 2.6.x 时发现了这个 bug,并做了修复。

SOFATracer 中提供的 DubboSofaTracerFilter 类:

SOFATracer 中用于处理 Dubbo 2.6.x 版本中异步回调处理的核心代码:

Dubbo 异步处理依赖 ResponseFuture 接口,但是 ResponseFuture 在核心链路上并非是以数据或者 list 的形式存在,所以在链路上只会存在一个 ResponseFuture,因此如果我自定义一个类来实现 ResponseFuture 接口是没法达到预期目的的,因为运行期会存在覆盖 ResponseFuture 的问题。所以在设计上,SOFATracer 会通过 ResponseFuture 构建一个新的 FutureAdapter出来用于传递。

HTTP 客户端埋点原理

HTTP 客户端埋点包括 HttpClient、OkHttp、RestTemplate 等,此类埋点一般都是基于拦截器机制来实现的,如 HttpClient 使用的 HttpRequestInterceptor、HttpResponseInterceptor;OkHttp 使用的 okhttp3.Interceptor;RestTemplate 使用的 ClientHttpRequestInterceptor。

以 OkHttp 为例,简单分析下 HTTP 客户端埋点的实现原理:

DataSource 埋点原理

和标准 Servlet 规范实现一样,所有基于 javax.sql.DataSource 实现的 DataSource 均可以使用 SOFATracer 进行埋点。因为 DataSource 并没有提供像 Servlet 那样的过滤器或者拦截器,所以 SOFATracer 中没法直接通过常规的方式(Filter/SPI 扩展拦截/拦截器等)进行埋点,而是使用了代理模式的方式来实现的。

上图为 SOFATracer 中 DataSource 代理类实现的类继承结构体系;可以看出,SOFATracer 中自定义了一个 BaseDataSource 抽象类,该抽象类继承 javax.sql.DataSource 接口,SmartDataSource 作为 BaseDataSource 的唯一子类,也就是 SOFATracer 中所使用的代理类。所以如果你使用了 sofa-tracer-datasource-plugin 插件的话,可以看到最终运行时的 Datasource 类型是 com.alipay.sofa.tracer.plugins.datasource.SmartDataSource。

Interceptor 主要包括以下三种类型:

以 StatementTracerInterceptor 为例 StatementTracerInterceptor 将将会拦截到所有 PreparedStatement 接口的方法,代码如下:

总体思路是,DataSource 通过组合的方式自定义一个代理类(实际上也可以理解为适配器模式中的对象适配模型方式),对所有目标对象的方式进行代理拦截,在执行具体的 SQL 或者连接操作之前创建 DataSource 的 Span,在操作结束之后结束 Span,并进行上报。

消息埋带点

消息框架组件包括很多,像常见的 RocketMQ、Kafka 等;除了各个组件自己提供的客户端之外,像 Spring 就提供了很多消息组件的封装,包括 Spring Cloud Stream、Spring Integration、Spring Message 等等。SOFATracer 基于 Spring Message 标准实现了对常见消息组件和 Spring Cloud Stream 的埋点支持,同时也提供了基于 RocketMQ 客户端模式的埋点实现。

Spring Messaging 埋点实现原理

spring-messaging 模块为集成 Messaging API 和消息协议提供支持。这里我们先看一个 pipes-and-filters 架构模型:

spring-messaging 的 support 模块中提供了各种不同的 Message Channel 实现和 Channel Interceptor 支持,因此在对 spring-messaging 进行埋点时我们自然就会想到去使用 Channel Interceptor。

可以看到 ChannelInterceptor 实现了消息传递全生命周期的管控,通过暴露出来的方法,可以轻松的实现各个阶段的扩展埋点。

RocketMQ 埋点实现原理

RocketMQ 本身是提供了对 Opentracing 规范支持的,由于其支持的版本较高,与 SOFATracer 所实现的 Opentracing 版本不一致,所以在一定程度上不兼容;因此 SOFATracer(opentracing 0.22.0 版本)自身又单独提供了 RocketMQ  的插件。

RocketMQ 埋点其实是通过两个 hook 接口来完成,实际上在 RocketMQ 的官方文档中貌似并没有提到这两个点。

首先是 SendMessageHook 接口,SendMessageHook 接口提供了两个方法,sendMessageBefore 和 sendMessageAfter,SOFATracer 在实现埋点时,sendMessageBefore 中用来解析和构建 Span,sendMessageAfter 中用于拿到结果然后结束 Span。

同样的,ConsumeMessageHook 中也提供了两个方法(consumeMessageBefore 和 consumeMessageAfter),可以提供给 SOFATracer 来从消息中解析出透传的 SOFATracer 信息然后再将 SOFATracer 信息透传到下游链路中去。

Redis 埋点原理

SOFATracer 中的 Redis 埋点是基于 spring-data-redis 实现的,没有针对具体的 Redis 客户端来埋点。另外  Redis 埋点部分参考的是开源社区 opentracing-spring-cloud-redis-starter 中的实现逻辑。

Redis 的埋点实现与 DataSource 的埋点实现基本思路是一致的,都是通过一层代理来是实现的拦截。sofa-tracer-redis-plugin 中对所有的 Redis 操作都通过 RedisActionWrapperHelper 进行了一层包装,在执行具体的命令前后通过 SOFATracer 自己提供的 API 进行埋点操作。代码如下:

除此之外 MongoDB 的埋点也是基于 Spring Data 实现,埋点的实现思路和 Redis 基本相同,这里就不在单独分析。

总结

本次分享主要对蚂蚁金服分布式链路组件 SOFATracer 以及其埋点机制做了简要的介绍;从各个组件的埋点机制来看,整体思路就是对组件操作进行包装,在请求或者命令执行的前后进行 Span 构建和上报。目前一些主流的链路跟踪组件像 Brave 也是基于此思路,区别在于 Brave 并非是直接基于 OpenTracing 规范进行编码,而是其自己封装了一整套 API ,然后通过面向 OpenTracing API 进行一层适配;另外一个非常流行的 SkyWalking 则是基于 Java agent 实现,埋点实现的机制上与 SOFATracer 和 Brave 不同。

以上就是本期分享的全部内容,如果大家对 SOFATracer 感兴趣,也可以在群内或者 Github 上与我们交流。

文中涉及链接

  • SOFATracer:https://github.com/sofastack/sofa-tracer

  • 本期 Demo 工程地址:https://github.com/glmapper/tracers-guides

  • 剖析 | SOFATracer 框架:https://www.sofastack.tech/tags/%E5%89%96%E6%9E%90-sofatracer-%E6%A1%86%E6%9E%B6/

  • 官方文档:https://www.sofastack.tech/projects/sofa-tracer/overview/

  • 本期视频回顾以及 PPT 查看地址:https://tech.antfin.com/community/live/1167/data/986

本文归档在 sofastack.tech。

???? 奖励支持 SOFAStack 的你~

* 点下右下角“在看”

* 到公众号对话框发送“T 恤”,试试手气~

* 本期互动奖品“SOFAStack T 恤”

开源埋点工具分析比较 开源埋点工具分析查找和比较 阅读详情

相关推荐

易观方舟70秒可视化埋点SDK全部开源!

近日,易观CTO郭炜在易观A10大会对易观方舟开源体系以及易观方舟智能用户数据中台的架构建设进行了系统地阐述,并重磅宣布:将易观方舟“不用7天,只用70秒"的可视化埋点SDK全部开源! ▌ 全新易观方舟智能用户数据中台 如今易观已经成功搭建起了“面向业务、开放连接、共享共建”的全新易观方舟智能用户数据中台,支持更多数据接口,提供了更好的扩展性和开放性,企业可以更方便地基于它开发自己的方舟扩展甚至复杂应用。 数据获取是易观方舟智能用户数据中台的基础能力之一,现在企业的产品迭代速度越来越快,每天都有新版本,产

weixin_47202722的博客 2570

蚂蚁金服分布式链路跟踪组件 SOFATracer 链路透传原理与SLF4J MDC 的扩展能力分析 | 剖析 ...

SOFAScalableOpenFinancialArchitecture是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。 SOFATracer 是一个用于分布式系统调用跟踪的组件,通过统一的 TraceId 将调用链路中的各种网络调用情况以日志的方式记录下来,以达到透视化网络调...

weixin_34144450的博客 633

埋点全解析,你最关心的可视化埋点在这里!(文末附开源地址)

讲埋点的文章的那么多,我们为什么还要写它?首先,这不是一篇纯技术文章,而是从一个非技术人员的角度,希望通过浅显的语言描述,让大家能快速了解这些技术概念。此外,目前市面上说埋点的文章,要么没有进行系统性的知识梳理,要么不够客观,存在偏向性,而我们则希望让大家透过表象,通过系统的讲解和梳理,从而了解埋点的真正含义。 ▌为什么要专门埋点? 互联网应用(网站、APP)在研发时往往不会专门记录用户身份和行为数据,也不会包含专业的数据分析功能。但有时为了分析用户产生某些动作或不产生某些动作的深层原因,就需要详细的用.

weixin_47202722的博客 3850

原理 | 分布式链路跟踪组件 SOFATracer 和 Zipkin 模型转换

SOFA 中间件是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,是在金融场景里锤炼出来的最佳实践。SOFATracer 是一个用于分布式系统调用跟踪的组件,通过统一的...

weixin_33691817的博客 567

蚂蚁金服分布式链路跟踪组件 SOFATracer 总览 | 剖析

2019新春支付宝红包技术大揭秘在线峰会将于03-07日开始,点击这里报名届时即可参与大牛互动。 SOFA Scalable Open Financial Architecture 是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。 SOFATracer 是一个用于分布式系统调用跟踪的组件,通过统一的 TraceId 将调用链路中...

蚂蚁金服技术团队 1556

Stata:手动安装ivreghdfe包的完整指南与常见问题解决

本文提供了Stata中手动安装ivreghdfe包的完整指南,包括准备工作、详细安装步骤及常见问题解决方案。ivreghdfe作为处理高维固定效应模型的强大工具,依赖ftools、reghdfe和ivreg2三个核心组件,手动安装可避免版本冲突问题。文章还分享了进阶使用技巧,如并行计算加速和保存固定效应估计值,助力用户高效完成工具变量回归分析。

weixin_29251131的博客 930

蚂蚁集团 SOFATracer 原理与实践

背景微服务架构带来很多好处的同时也让系统的复杂度提升了,传统的单体应用按照不同的维度拆分成一个一个分布式微服务,不同的微服务甚至可能采用不同的语言编写;此外,服务的部署往往都是分布式的,可...

金融级分布式架构 1061

彻底清理Easy Connect残留:从服务到驱动的完整卸载指南

在企业网络接入场景中,远程客户端常因内核驱动、系统服务和网络过滤组件导致卸载残留,进程无法结束、文件被锁定、注册表项顽固存在。其原理在于驱动挂载网络协议栈,服务守护进程,卸载时资源占用导致清理不彻底。彻底清理的技术价值在于恢复系统纯净、避免网络异常和软件冲突。典型应用场景包括企业办公机、个人笔记本更换或重装客户端。本文针对深信服Easy Connect,提供从停止服务、删除驱动到清理注册表和虚拟网卡的分步操作链路,并给出验证方法和避坑经验。

weixin_31292729的博客 246

sofa协议服务器,撸了几天的sofa-tracer之后,我悟了

什么是分布式链路跟踪简而言之,在分布式系统下,用于跟踪链路而衍生出的一项技术。应用场景如下:应用A,B,C,D,E 以一个层级关系依赖, 当用户向 应用A 发起请求,但是返回了个异常,为了排查这个问题,我们可能要一台台服务器去排查。在分布式架构下,每个应用又部署了几十上百台服务器, 那一天下来,可能多没找到问题的触发点。通过分布式链路跟踪,结合 如 鹰眼 等平台的 链路分析,我们可以很快定位到 问...

weixin_33404412的博客 754

ENVI哨兵一号数据处理

使用ENVI+SarScape处理哨兵数据

Rjjjjj11的博客 2万+

【Python脚本】Python自动大麦网抢票,准点原价秒杀演唱会门票,拒绝黄牛交易!从我做起!!!1

你是否错过了周杰伦的票,最近又没抢到五月天的票,不要太难过,今晚有张学友的票,后天还有张杰的票,加油哦!

weixin_45841831的博客 6万+

蚂蚁金服分布式链路系统SOFATracer学习笔记

文章目录前言SOFATracer基于 SLF4J MDC 的扩展能力OpenFegin改造为啥会调用就打印SOFATracer对各框架集成的核心实现代码feginRestTemplate跨线程透传原理线程池传值参考资料 前言 在之前写过一篇 关于全链路日志实现学习笔记,其中讲述了zipkin以及sleuth,通过spanId跟traceId进行全链路监控。 SpanId 跨越id,来标识一个请求流经不同的领域。 traceId 一个请求的标识。 TraceId 和 SpanId 生成规则 SOFATr

大鸡腿的博客 1684

Vue 实现华视身份证读卡器功能

在www.downcc.com下载“华视cvr100驱动”安装程序; 华视电子官网有相应的文档说明和程序下载 一、服务安装 选择安装目录: 启动读卡服务: 安装成功会有如图所示: 注意事项: 安装开发包必须使用管理员权限,因为windows服务和读卡器设备驱动程序均需要管理员权限,否则会安装失败。 win10需要修改组策略才有管理员权限。 二、服务的使用 打开浏览器,输入地址http://127.0.0.1:19196/mainpage,回车 点击openDevice: 点.

zyqgt960812的博客 6503

蚂蚁金服分布式链路跟踪组件埋点机制 | 剖析

SOFAScalable Open Financial Architecture 是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,是在金融场景里锤炼出来的最佳实践。SOFATracer 是一个用于分布式系统调用跟踪的组件,通过统一的 TraceId 将调用链路中的各种网络调用情况以日志的方式记录下来,以达到透视化网络调用的目的,这些链路数据可用于故障的快速发现,服...

weixin_34168880的博客 589

Rust练手:从零手撸RISC-V架构虚拟机(一)(附完整代码)

使用Rust实现一个简单的RISC-V架构的CPU雏形,支持add,sub,addi三个指令。

qq_45983373的博客 2574

SAP PI实战:5分钟搞定REST适配器同步接口配置(含Postman测试技巧)

本文详细介绍了如何在SAP PI中快速配置REST适配器同步接口,包括ESR设计、集成流配置及Postman测试技巧。通过实战步骤和关键参数设置,帮助开发者高效实现系统集成,特别适合需要实时数据交互的业务场景。

weixin_33738555的博客 485

Lily-一个埋点管理工具

本文来自网易云社区前言在很多项目中,埋点数据使用表格来统计的,随着项目的进行,数据量越来越复杂,越来越难以维护。所以很多公司都已经开发了一整套系统,从埋点的录入到代码的输出。我们项目中iOS和Android双方的埋点内容由于沟通以及一些原因,也没有完全统一,增加了很多沟通成本,为了规范化和统一化,我们也需要这样一个类似的系统。但是很多时候一套系统对于一个小项目来说太过于复杂了,所以这里我做了一个轻...

网易数帆社区博客 3695

SAP 固定资产采购简介

SAP 固定资产采购是指企业通过采购流程获取长期使用并记录为固定资产的物品。固定资产是企业为长期使用而购置的资产,如机器设备、办公设备、建筑物、车辆等,通常这些资产的使用期限较长,并且在资产负债表上记录。在SAP系统中,固定资产采购流程通常与物料管理(MM)模块和固定资产管理(FI-AA)模块相结合。这个过程涉及从需求的提出、采购订单的创建,到货物接收、发票校验和资产激活的多个步骤。

我小时候很黑的博客 1731

打通大前端最后一公里之前端埋点与日志系统架构设计

什么是埋点?所谓“埋点”,是数据采集领域(尤其是用户行为数据采集领域)的术语。指的是针对特定用户行为或事件进行捕获、处理和发送的相关技术及其实施过程。埋点的技术实质,是先监听软件应用运行过程中的事件,当需要关注的事件发生时进行判断和捕获。埋点的意义何在?流量监测(在线情况分析、按时段分析、按来源分析);构建行为路径, 通过对处理后的信息进行关联,获取用户的整条行为链路;通...

React_Community的博客 5887

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SpringBoot 实践系列-集成 RocketMQ

系列文章汇总(更新中) 源码解析系列 SpringBoot 系列-FatJar技术解析 SpringBoot 系列-启动过程解析 SpringBoot 系列-事件机制解析 SpringBoot 系列-Bean 的生命周期与扩展 SpringBoot 系列-日志框架解析 SpringBoot 系列-资源访问解析 SpringBoot 系列-内嵌Web容器解析 SpringBoot 系列-配置解析...

glmapper_2018 194

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

SOFATracer 插件埋点机制详解

SOFATracer 是一个用于分布式系统调用跟踪的组件,通过统一的 traceId 将调用链路中的各种网络调用情况以日志的方式记录下来,以达到透视化网络调用的目的。这些日志可用于故障的快速发现,服务治理等。 从 RoadMap 和 PR 来看,目前 SOFATracer 已经支持了丰富的组件插件埋点。 目前还未支持的主要是 Dubbo、MQ 以及 Redis 等。本文将从 SOFATrac...

weixin_34294649的博客 1262

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

国产开源 | ClkLog 埋点与用户行为分析一体化解决方案

ClkLog作为完全自主可控的开源用户行为分析平台,提供从数据采集到可视化的一体化解决方案。其核心优势包括100%源码交付、多端SDK覆盖、ClickHouse/Doris支持等技术特性,满足从基础访问分析到高级用户画像的多层次需求。平台采用分布式架构设计,支持私有化部署,特别适合金融、医疗等对数据合规要求高的行业。典型应用场景涵盖产品优化、用户运营及B端系统审核等领域。企业可根据需求选择社区版、专业版或企业版,实现从基础监控到精细化运营的数字化升级

ClkLog的博客 773

kafka数据可靠性深度解读

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33826268的博客 1086

kafka配置

kafka配置生产者配置消费者配置 生产者配置 NAME DESCRIPTION TYPE DEFAULT VALID VALUES IMPORTANCE bootstrap.servers host/port列表,用于初始化建立和Kafka集群的连接。列表格式为host1:port1,host2:port2,…,无需添加所有的集群地址,kafka会根据提供的地址发现其他的地址(你可以多提供几个,以防提供的服务器关闭) list high key.serializer 实现 org.

LiGuanLink的博客 670

SOFATracer 项目常见问题解决方案

SOFATracer 是一个用于分布式系统调用跟踪的组件,通过统一的 traceId 将调用链路中的各种网络调用情况以日志的方式记录下来,以达到透视化网络调用的目的。这些日志可用于故障的快速发现、服务治理等。SOFATracer 是基于 OpenTracing 规范实现的,主要使用 Java 编程语言。 ## 二、新手常见问题与解决方案 ### 问题一:如何快速上手使用 SOFATracer?...

gitblog_00119的博客 421

SOFA Weekly | BabaSSL 发布新版本、本周 Contributor、QA 整理

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack...

金融级分布式架构 1911
上一篇: SOFA 开源两周年庆祝会
下一篇: Service Mesh 和 API Gateway 关系深度探讨
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值