如何利用链路追踪快速定位问题 (insights.thoughtworks.cn)

【简介】

随着微服务应用数量的增加,服务与服务之间的调用关系变得复杂,导致系统问题定位困难。链路追踪可通过唯一ID标记请求的整个调用链路,记录每个节点,快速定位问题。

点击查看全文 >>

@Thoughtworks 2023-08-25 11:32分享 / 0个评论
赞过的人: @IT技术博客大学习
要不要再学学下面的文章?
优雅的处理Git多帐号与代理问题 (www.iots.vip)
  在工作中,常常会容易遇到一台电脑用多个 Git 账号的场景,比如账号 company 账号是工作用的,而账号 personal 是自己个人用的。 由于 Git 本身并没有多账号的机制,导致我们在默认设置下无法很好的区分哪个仓库使用哪个账号。 同时,在某些众所周知的场景下,我们无法直接访问到 Github 仓库,需要走一层 proxy 来加速我们的代码拉取与推送速度, 本文将使用 SSH config 相对优雅的解决这些问题。
by @技术头条 2023-08-18 23:09 分享 查看详情
浅议分布式链路追踪与日志的整合 (blog.yuanpei.me)
最近拜读了 Artech 大佬的新文章 《几个Caller-特性的妙用》,可以说是受益匪浅。不过,对我而言,最大的收获当属这篇文章里的第二主角,即 ActivitySource 和 Activity,这组 API 可以认为是微软针对 OpenTelemetry 规范的一种实现,即:每一个 Activity 都对应着一个 Span 。经过数日的探索,我有了一点小小的收获。因此,今天这篇博客我想和大家分享的是,分布式链路追踪系统如何和日志系统进行整合。
by @技术头条 2023-07-30 17:42 分享 查看详情
分布式数据库的一致性问题与共识算法 (thiscute.world)
谈到分布式数据库,不论是 Etcd/Zookeeper 这样的中心化数据库,还是 Ethereum 区块链这样的去中心化数据库,都避免不了两个关键词:「一致性」跟「共识」。

本文是笔者学习「一致性」和「共识」以及相关的理论知识时记录的笔记,这些知识能帮助我们了解 Etcd/Zookeeper/Consul/MySQL/PostgreSQL/DynamoDB/Cassandra/MongoDB/CockroachDB/TiDB 等一众数据库的区别,理解各数据库的优势与局限性,搞懂数据库隔离级别的含义以及应该如何设置,并使我们能在各种应用场景中选择出适用的数据库。

如果你对区块链感兴趣,那这篇文章也能帮助你了解区块链这样的去中心化数据库,跟业界流行的分布式数据库在技术上有何区别,又有哪些共同点,具体是如何实现。
by @技术头条 2023-07-04 23:33 分享 查看详情
关于 MySQL 新版连接驱动时区对齐问题的研究 (www.diguage.com)
在一个项目开量验证过程中,发现 createDate 字段不正确,比正确时间晚了十四个小时。调研发现,这是一个非常典型的问题。现在把定位问题的思路和解决办法给大家做个分享。
by @技术头条 2023-07-04 23:10 分享 查看详情
一次因为Mac系统升级引发的ssh无法免密登陆的问题 (wiki.eryajf.net)
公司内部安卓与 iOS 打包是通过内部的一台 Mac mini 主机上部署的 Jenkins 完成的,一切都看起来非常优雅且自如。我也正在忙自己的事情,突然一个开发小哥找过来,说发布过程有问题了,其中有一个步骤是在 Jenkins 中打完包之后,将包通过 scp 传到一台 centos 服务器上,从而提供给开发者进行下载。现在出现的问题是,scp 的时候让输入密码了。
by @技术头条 2023-07-04 23:08 分享 查看详情
一次「找回」TraceId的问题分析与过程思考 (tech.meituan.com)
用好中间件是每一个开发人员的基本功,一个专业的开发人员,追求的不仅是中间件的日常使用,还要探究这背后的设计初衷和底层逻辑,进而保证我们的系统运行更加稳定,让开发工作更加高效。结合这一主题,本文从一次线上告警问题出发,通过第一时间定位问题的根本原因,进而引出Google Dapper与MTrace(美团内部自研)这类分布式链路追踪系统的设计思想和实现途径,再回到问题本质深入@Async的源码分析底层的异步逻辑和实现特点,并给出MTrace跨线程传递失效的原因和解决方案,最后梳理目前主流的分布式跟踪系统的现状,并结合开发人员日常使用中间件的场景提出一些思考和总结。
by @技术头条 2023-07-02 23:39 分享 查看详情
利用 MySQL 的 Binlog 实现数据同步与订阅(下):EventBus 篇 (blog.yuanpei.me)
终于到这个系列的最后一篇,在前两篇博客中,我们分别了介绍了Binlog的概念和事件总线(EventBus)的实现,在完成前面这将近好几千字的铺垫以后,我们终于可以进入正题,即通过 EventBus 发布 Binlog,再通过编写对应的 EventHandler 来订阅这些 Binlog,这样就实现了我们“最初的梦想”。坦白说,这个过程实在有一点漫长,庆幸的是,它终于还是来了。
by @技术头条 2023-07-02 23:34 分享 查看详情
利用 MySQL 的 Binlog 实现数据同步与订阅(中):RabbitMQ 篇 (blog.yuanpei.me)
本文参考微软的 eShopOnContainers 项目,实现一个基于 RabbitMQ 的事件总线,事件总线是发布-订阅模式的一种延伸,可以在分布式的环境中令消息的发布者、订阅者完美地解耦,是领域驱动设计(DDD)中重要的基础设施之一,对于实现业务上的“事件驱动”非常有帮助。而实现 EventBus 最关键的三个方法,即 Publish()、Subscribe()和 Unsubscribe(),这其中需要了解一部分 RabbitMQ 的知识,所以,在这篇博客中,你可以了解到 RabbitMQ 的四种交换器、死信机制、重试超时机制等等。
by @技术头条 2023-07-02 23:33 分享 查看详情
利用 MySQL 的 Binlog 实现数据同步与订阅(上):基础篇 (blog.yuanpei.me)
数据如果无法在这张网络中流通,则永远都是一潭死水,而如果要打通各个系统间的数据,则免不了写一个又一个的同步接口。这篇博客以 MySQL 的 Binlog 为切入点,试图通过 Binlog 来实现特定业务的“事件驱动”。Binlog 是实现主从复制的重要机制,而基于这一机制,业界普遍的做法是利用 MySQL 的交换协议,让客户端"伪装"成一个从库,在比较了 Canal 、Maxwell 以及 Python-Mysql-Replication 后,博主选择了. NET Core + RabbitMQ + Python 的方案,目标是让 Binlog 可以发布到消息总线(EventBus)中供消费者订阅和消费。
by @技术头条 2023-07-02 23:33 分享 查看详情
短 ID hash 映射的问题 (blog.codingnow.com)
我们正在开发的游戏中,会用一个 id 来表示一个游戏对象到底是什么。比如,“铁片” 是 1 ,“煤” 是 2 ,“采矿机” 是 3 …… 这样,在运行时,C 代码可以根据对象的类型方便的查询对象的属性。而对象的属性则是用 Lua 配置好,在运行期不变的。例如每燃烧一个单位的“煤”,可以产生 100KJ 的热量;一箱“铁片”有 100 个。

为了在 C 和 Lua 间快速共享这些配置数据,我还专门写了一个 cache 模块 。

问题出在 ID 的持久化上。因为游戏中的物品种类并不是特别多,出于时间以及空间性能的考量,我把 ID 设计为 16bits 。64K 种物品种类的上限看起来足够了。但 ID 的分配却比较麻烦。
by @技术头条 2023-04-09 10:06 分享 查看详情