云原生时代分布式链路追踪实践-曲赛云原生时代分布式链路 追踪实践 2021-08 曲赛 (saiqu) 微服务架构的困境 故障定位难 极高的沟通和交接成本 错综难懂的模块依赖关系 链路梳理难 日志分散 定位过程“击鼓传花” 跨端性能瓶颈分析繁杂 性能分析难 缺乏对系统整体认知的把控 不合理的调用关系 不合理的直连存储 架构治理能力匮乏 云原生可观测性 3 4 Trace 标准规范 5 标准0 码力 | 17 页 | 2.47 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Go 版和複雜。從巧奪天工的匠人 技藝、到解放生產力的工業產品、再到宇宙運行的科學規律,幾乎每一件平凡或令人驚嘆的事物背後,都隱 藏著精妙的演算法思想。 同樣,資料結構無處不在:大到社會網絡,小到地鐵路線,許多系統都可以建模為“圖”;大到一個國家,小 到一個家庭,社會的主要組織形式呈現出“樹”的特徵;冬天的衣服就像“堆疊”,最先穿上的最後才能脫下; 羽毛球筒則如同“佇列”,一端放入、一端取出;字 第 0 章 前言 www.hello‑algo.com 2 0.1 關於本書 本專案旨在建立一本開源、免費、對新手友好的資料結構與演算法入門教程。 ‧ 全書採用動畫圖解,內容清晰易懂、學習曲線平滑,引導初學者探索資料結構與演算法的知識地圖。 ‧ 源程式碼可一鍵執行,幫助讀者在練習中提升程式設計技能,瞭解演算法工作原理和資料結構底層實 現。 ‧ 提倡讀者互助學習,歡迎大家在評論區提出問題與分享見解,在交流討論中共同進步。 為了獲得最佳的閱讀體驗,建議你通讀本節內容。 0.2.1 行文風格約定 ‧ 標題後標註 * 的是選讀章節,內容相對困難。如果你的時間有限,可以先跳過。 ‧ 專業術語會使用黑體(紙質版和 PDF 版)或新增下劃線(網頁版),例如陣列(array)。建議記住它們, 以便閱讀文獻。 ‧ 重點內容和總結性語句會 加粗,這類文字值得特別關注。 ‧ 有特指含義的詞句會使用“引號”標註,以避免歧義。 ‧ 當涉及程式語言之間不一致的名詞時,本書均以0 码力 | 385 页 | 18.80 MB | 10 月前3
Hello 算法 1.1.0 Go版些相似之处,比如都依赖最优子结构性质,但 工作原理不同。 ‧ 动态规划会根据之前阶段的所有决策来考虑当前决策,并使用过去子问题的解来构建当前子问题的解。 ‧ 贪心算法不会考虑过去的决策,而是一路向前地进行贪心选择,不断缩小问题范围,直至问题被解决。 我们先通过例题“零钱兑换”了解贪心算法的工作原理。这道题已经在“完全背包问题”章节中介绍过,相 信你对它并不陌生。 Question 给定 load factor 负载因子 負載因子 separate chaining 链式地址 鏈結位址 open addressing 开放寻址 開放定址 linear probing 线性探测 線性探查 lazy deletion 懒删除 懶刪除 binary tree 二叉树 二元樹 tree node 树节点 樹節點 left‑child node 左子节点 左子節點 第 16 章 English 简体中文 繁体中文 disconnected graph 非连通图 非連通圖 weighted graph 有权图 有權圖 adjacency 邻接 鄰接 path 路径 路徑 in‑degree 入度 入度 out‑degree 出度 出度 adjacency matrix 邻接矩阵 鄰接矩陣 adjacency list 邻接表 鄰接表 breadth‑first0 码力 | 383 页 | 18.48 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Go 版些相似之处,比如都依赖最优子结构性质,但 工作原理不同。 ‧ 动态规划会根据之前阶段的所有决策来考虑当前决策,并使用过去子问题的解来构建当前子问题的解。 ‧ 贪心算法不会考虑过去的决策,而是一路向前地进行贪心选择,不断缩小问题范围,直至问题被解决。 我们先通过例题“零钱兑换”了解贪心算法的工作原理。这道题已经在“完全背包问题”章节中介绍过,相 信你对它并不陌生。 Question 给定 load factor 负载因子 負載因子 separate chaining 链式地址 鏈結位址 open addressing 开放寻址 開放定址 linear probing 线性探测 線性探查 lazy deletion 懒删除 懶刪除 binary tree 二叉树 二元樹 tree node 树节点 樹節點 left‑child node 左子节点 左子節點 right‑child connected graph 连通图 連通圖 disconnected graph 非连通图 非連通圖 weighted graph 有权图 有權圖 adjacency 邻接 鄰接 path 路径 路徑 in‑degree 入度 入度 out‑degree 出度 出度 adjacency matrix 邻接矩阵 鄰接矩陣 adjacency list 邻接表 鄰接表 breadth‑first0 码力 | 384 页 | 18.49 MB | 10 月前3
Go Web编程对于开发者来说,从源 码安装是最方便而熟悉的。 Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合初学者,可根据自 己的系统位数下载好相应的安装包,一路next就可以轻松安装了。 第三方工具安装:目前有很多方便的第三方软件包工具,例如Ubuntu的apt-get、Mac的homebrew等。这种安 装方式适合那些熟悉相应系统的用户。 最后,如果你 GNU/Linux Mac 安装 Mac 安装 访问下载地址,32位系统下载go1.0.3.darwin-386.pkg,64位系统下载go1.0.3.darwin-amd64.pkg,双击下载文件, 一路默认安装点击下一步,这个时候go已经安装到你的系统中,默认已经在PATH中增加了相应的~/go/bin,这个时 候打开终端,输入go 看到类似上面源码安装成功的图片说明已经安装成功 如果出现g 安装 Windows 安装 访问下载地址,32位系统下载go1.0.3.windows-386.msi,64位系统下载go1.0.3.windows-amd64.msi。双击打开下载 的文件,一路按照默认点击下一步,这个时候go已经安装到你的系统中,默认安装之后已经在你的系统环境变量中加 入了c:/go/bin,这个时候打开cmd,输入go 看到类似上面mac安装成功的图片说明已经安装成功0 码力 | 295 页 | 5.91 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a11中被试验性地引入并从版本1.16开始被默认支持。 我们应该了解一个环境变量:GOPATH。 此环境变量的默认值为当前用户的HOME目 录下的名为go文件夹对应的目录路径。 GOPATH环境变量可以被手动地配置多个路 径。 以后,当GOPATH文件夹被提及的时候,它表示GOPATH环境变量中的第一个 路径对应的文件夹。 GOPATH文件夹中的pkg子文件夹用来缓存被本地项目所依赖的Go模块(一个 Go模块为若干Go库包的集合)的版本。 如果此通道的缓冲队列不为空(这种情况下,接收数据协程队列必为空),此 协程R将从缓冲队列取出(接收)一个值。 如果发送数据协程队列不为空, 一个发送协程将从此队列中弹出,此协程欲发送的值将被推入缓冲队列。此发 送协程将恢复至运行状态。 接收数据协程R继续运行,不会阻塞。对于这种 情况,此数据接收操作为一个非阻塞操作。 2. 否则(即此通道的缓冲队列为空),如果发送数据协程队列不为空(这种情况 下,此通道必为一个非缓冲通道), default分支代码块。 跳到第12步。 (到这里,default分支肯定是不存在的,并且所有的case操作均为阻塞 的。) 6. 将当前协程(和对应case分支信息)推入到每个case操作中对应的通道的发 送数据协程队列或接收数据协程队列中。 当前协程可能会被多次推入到同一 个通道的这两个队列中,因为多个case操作中对应的通道可能为同一个。 7. 使当前协程进入阻塞状态并且按照通道锁逆序解锁所有的通道。0 码力 | 591 页 | 21.40 MB | 1 年前3
基于Go的大数据平台-党合萱调度组 • 管理理接⼝口 简单 · 可信赖 调度算法 简单 · 可信赖 ⾃自动化运维 简单 · 可信赖 监控⽅方案 • logkit:七⽜牛pandora团队开发的纯go语⾔言数据收集、推 送⼯工具,⽀支持多种数据源,⾼高效易易⽤用 • 时序数据库(TSDB):兼容influxdb,适配grafana 简单 · 可信赖 系统热点⾃自动感知与调整 • ⼀一⽅方⾯面依靠⽇日志对服务做审计、趋势预测,宏观上预知0 码力 | 34 页 | 1.26 MB | 1 年前3
Go可观测性实践Go工程可观测性实践 周曙光 得物 Go开发 目 录 可观测性概述 01 链路追踪 02 指标 03 可观测性概述 第一部分 广义的可观测性:可以根据系统的外部输出信息推断出系统内部状态的好 坏。 软件系统的可观测性:一种度量能力,能帮你更好的理解系统当前所处的 任何状态。如果无需发布新代码就可以理解任何新的或怪异的状态,那么 系统就具备可观测性。 什么是可观测性? 可观测性开源产品 Receiver • Processor • Exporter 微服务业务架构图 项目工程layout 遥测数据处理架构 链路追踪 第二部分 无所不在的部署 持续监控 低消耗 应用级透明 延展性 链路追踪设计目标 链路追踪 Dapper 每个请求都生成一个全局唯一的 traceid,端到端透传到上下游所有节点,每一层生成一个 spanid, 通过traceid parentid 表达节点 的父子关系 链路追踪 在分布式系统中请求的路径经常很凌乱且无法预测,为了构建我们想要的任何路 径的视图,无论多么复杂,每个组件都需要五段数据: • TraceID:请求唯一标识符,由根span产生,贯穿请求的各个阶段。 • SpanID:span包含单一链路中一个工作单元收到的信息。 • ParentID:区别请求链路中的嵌套包含关系,根Span没有ParentID。0 码力 | 35 页 | 2.88 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a发送数据协程队列(可以看做是先进先出队列但其实并不完全是,见下面 解释)。此队列也是一个没有长度限制的链表。 此队列中的协程亦均处于 阻塞状态,它们正等待着向此通道发送数据。 此队列中的每个协程将要发 送的值(或者此值的指针,取决于具体编译器实现)和此协程一起存储在 此队列中。 3. 数据缓冲队列。这是一个循环队列(绝对先进先出),它的长度为此通道 的容量。此队列中存放的值的类型都为此通道的元素类型。 序的逆序。 4. 按照上一步中的生成通道锁顺序获取所有相关的通道的锁。 5. 按照第2步中生成的分支顺序检查相应分支: 1. 如果这是一个case分支并且相应的通道操作是一个向关闭了的通道发 送数据操作,则按照通道锁逆序解锁所有的通道并在当前协程中产生 一个恐慌。 跳到第12步。 2. 如果这是一个case分支并且相应的通道操作是非阻塞的,则按照通道 锁逆序解锁所有的通道并执行相应的case分支代码块。 ,当前协程处于阻塞状态,等待其它协程通过通道操作唤醒当前协程,... 9. 当前协程被另一个协程中的一个通道操作唤醒。 此唤醒通道操作可能是一 个通道关闭操作,也可能是一个数据发送/接收操作。 如果它是一个数据发 送/接收操作,则(当前正被解释的select-case流程中)肯定有一个相应 case操作与之配合传递数据。 在此配合过程中,当前协程将从相应case操 作相关的通道的接收/发送数据协程队列中弹出。0 码力 | 608 页 | 1.08 MB | 1 年前3
使用Go与redis构建有趣的应用命令参考》,《SICP 解题集》等。 • 个⼈人⽹网站: huangz.me 。 路路线图 路路线图 ⼀一. Redis 简介 路路线图 ⼀一. Redis 简介 ⼆二. 使⽤用 Redis 构建锁 路路线图 ⼀一. Redis 简介 ⼆二. 使⽤用 Redis 构建锁 三. 使⽤用 Redis 构建在线⽤用户统计器器 路路线图 ⼀一. Redis 简介 ⼆二. 使⽤用 Redis0 码力 | 176 页 | 2.34 MB | 1 年前3
共 28 条
- 1
- 2
- 3













