Go可观测性实践Go工程可观测性实践 周曙光 得物 Go开发 目 录 可观测性概述 01 链路追踪 02 指标 03 可观测性概述 第一部分 广义的可观测性:可以根据系统的外部输出信息推断出系统内部状态的好 坏。 软件系统的可观测性:一种度量能力,能帮你更好的理解系统当前所处的 任何状态。如果无需发布新代码就可以理解任何新的或怪异的状态,那么 系统就具备可观测性。 什么是可观测性? 可观测性开源产品 可观测性开源产品 每种方案都有特定的、自定义的 步骤来生产和转移符合后端存储 的遥测(Telemetry)数据,这就带 来了工具或者厂商的绑定性。 为了解决“厂商锁定问题”,监控和可观测性社区过去创建了很多开源项 目,比如OpenTracing和OpenCensus,这些标准允许用户实时收集遥测 数据并传输到所选择的后端,最终在2019年,两个组织共同组建OTel项目, 并由CNCF负责。 并由CNCF负责。 OTel目前已经成为可观测性方案开源标准,标准的好处就是有了很多选择。 OpenTelemetry OTel 组件 • API • SDK • Exporter • Collector OTel Collector • Receiver • Processor • Exporter 微服务业务架构图 项目工程layout 遥测数据处理架构 链路追踪 第二部分0 码力 | 35 页 | 2.88 MB | 1 年前3
Erda 基于云原生的微服务可观测性 - 刘浩杨Erda 基于云原生的微服务可观测性 刘浩杨 端点科技 Erda 微服务和监控平台负责人 目 录 微服务系统监控的挑战 01 可观测性技术理论 02 Erda 服务观测平台技术内核分析 03 Erda 服务观测平台功能概览 04 Erda:新一代企业级云原生 PaaS 平台 当前微服务系统面临的挑战 目 录 微服务系统监控的挑战 01 可观测性技术理论 02 Erda 服务观测平台技术内核分析 服务观测平台技术内核分析 03 Erda 服务观测平台功能概览 04 可观测性三大支柱 (一)Tracing 模型 (二)Metrics 时序模型 Writes are vertical,reads are horizontal (三)数据关联 目 录 微服务系统监控的挑战 01 可观测性技术理论 02 Erda 服务观测平台技术内核分析 03 Erda 服务观测平台功能概览 04 微服务观测平台优势 指标覆盖完整 通过多种探针,覆盖基础 设施、业务系统、用户终 端全面的数据指标 高实时性 通过流计算平台,数据 处理和告警延迟都在秒 级别 海量数据 存储处理 高性能的大数据处理架 构,轻松应对海量可观 测性数据处理 平台架构 可观测性数据采集 可观测性数据处理 数据存储选择 ES 数据索引管理 自动路由 指标到索引 01 02 03 自动索引滚动 根据容量和0 码力 | 25 页 | 6.96 MB | 1 年前3
大规模高性能区块链架构设计模式与测试框架-李世敬金系统》,标志着区块链作为一 项完整的集成创新技术正式诞生 • 比特币诞生,是世界上首个区 块链应用系统。发展至今有力 地证明了区块链技术的创新性、 颠覆性和顽强的生存能力 中本聪 比特币Bitcoin 2013 • 以太坊发布以太坊白皮书, 引入智能合约,推出首个 图灵完备的区块链平台, 进入区块链2.0时代 以太坊Ethereum 新基建 • Linux 基 金 会 成 立 了 Hyperledger开源项目,IBM、 版权所有 ©2016-2021 6 区块链技术定义 区块链是由分布式数据存储、点对点传输、共识机制、加密算法等计算机技术构成的多中心 化系统 不可篡改(可信存证) ü 可对存储的文件、数据进行真实性校验 ü 可信追溯历史数据 去中心化共识(协作共享) ü 多方业务系统数据共享 ü 跨机构业务协作 核心特性 7 趣链科技 版权所有 ©2016-2021 7 趣链科技 版权所有 ©2016-2021 为训练深度学习系统提供可信数据, 优化分析决策的准确性和可信性。 人工智能 区块链 云计算 物联网 大数据 10 趣链科技 版权所有 ©2016-2021 10 趣链科技 版权所有 ©2016-2021 10 趣链科技 版权所有 ©2016-2021 10 区块链组织形态 全球范围可以访问,不依赖于单 个公司或辖区,匿名性强,任何 参与者都可在其中写入、读取、 参与交易验证。0 码力 | 39 页 | 56.58 MB | 1 年前3
1.5 Go 语言构建高并发分布式系统实践for ever 消息系统简要架构 单实例,单端⼝口,多协议复⽤用 全双⼯工,单客户端,多app复⽤用服务单通道 适⽤用于复杂环境下的⺴⽹网络的接⼊入策略 协议完备、简单、数据安全、可扩展、省流量 接⼊入层 ���� DES+RSA/ ECC+AES/ crossdomain.xml/ � ������/ ������ ����/ ����/ ZooKeeper/ 问题与瓶颈 如何应对的? go语⾔言在基础服务开发领域的优势? 我遭遇了哪些挑战? ⺫⽬目录 具有go特⾊色的运维 go语⾔言程序开发需要找到⼀一种平衡,既利⽤用协程带来的便利性⼜又做适当 集中化处理 套路:任务池集中数据合并请求、连接池+pipeline 利⽤用全双⼯工特性 经验⼀一 性能优化 性能优化:io集中处理 通信库 性能优化:数据集中处理 性能优化:数据集中处理 go语⾔言开发追求开销优化的极限,谨慎引⼊入其他语⾔言领域⾼高性能 服务的通⽤用⽅方案 关注:内存池、对象池使⽤用与代码可读性与整体效率的权衡 经验⼆二 性能优化 内存池 性能优化:通⽤用⽅方案 性能优化 对象池 性能优化:通⽤用⽅方案 如何应对的? go语⾔言在基础服务开发领域的优势?0 码力 | 39 页 | 5.23 MB | 1 年前3
2.3 用golang写一个操作系统数据是互联⺴⽹网的核⼼心,是⽤用户的主权 l 数据⽇日益集中化,规则垄断化,使互联⺴⽹网失去了多样性 l 《失控》作者:未来会有天量的数据只存在⽤用户本地 l ⻄西⽠瓜⼤大丸⼦子汤:⼤大数据处在奴⾪隶社会 ⽆无底限的运⽤用规则⽇日益伤害⽤用户的权益,普通⽤用户失去了⾃自主性 案例:⻢马云,⼩小⽶米,Facebook 互联⺴⽹网的核⼼心:数据 l ⼲⼴广 ⼲⼴广⼤大⺴⽹网民的各种需求被抑制,包括⼀一些强烈需求 l 上千万的互联从业⼈人员的创造性被抑制 l 中⼩小企业和个⼈人对⾃自⾝身数据安全的担忧⽇日益加强 ⾼高压差之下的机会 Leither为此⽽而⽣生! l 它是⼀一个⼩小程序 l 它可以运⾏行在各种常⻅见操作系统下 windows linux 保存⼀一个⼩小⽂文件到桌⾯面,通过浏览器打开。 Leither-应⽤用演⽰示:微博 api 开发⽅方式 应⽤用发布 应⽤用的内部代码展⽰示 l ⼩小范围内测已过,架构的各体系基本完备,可⾏行性已经验证 l ⾃自建节点,⾃自建应⽤用,万⼈人规模左右的内测 现有的微博应⽤用,继续强化 ⺫⽬目前阶段: ü 其他语⾔言不适合 ü 丰富的开源资料0 码力 | 33 页 | 1014.12 KB | 1 年前3
2.7 Golang与高性能DSP竞价系统Redis集群 专业DSP解决⽅方案 © ⼲⼴广州舜⻜飞信息科技有限公司 All Right ReservedAll Right Reserved • 最终在Client端实现 • ⼀一致性hash: github.com/stathat/consistent • 预先开启⾜足够多的Redis实例,预防增加节点带来的数据 迁移⿇麻烦 Redis集群 专业DSP解决⽅方案 © 专业DSP解决⽅方案 © ⼲⼴广州舜⻜飞信息科技有限公司 All Right ReservedAll Right Reserved • 性能不⽐比Redis差 • SSD优化 • 完备的分布式集群 • ⼆二级索引 • 开源,企业版⽀支持跨机房的集群 • 99%的请求1ms响应 • ⽀支持的数据结构类型偏简单 CookieMapping: Aerospike0 码力 | 51 页 | 5.09 MB | 1 年前3
Go 1.18 中的泛型comparable 看起来很别扭,为什么不直接使用运算符方法?例如: type Comparable[T any] interface { ==(T) bool } 主要原因是可比 较性本质上应该被定义为 type Comparable[T any] interface { == (T) untyped bool != (T) untyped bool } 而且比较对象的类型无法定义为自身类型。 编译器在编译期间执行这类检查,如果不对规则加以限制,则将在某些情况下极大的增加 编译时间。 这最终导致了 "并集元素中不能包含具有方法集的参数 类型" 这一限制. Go 1.18 中的类型集设计并不是完备的,即某些类型集无法表示. 例如不可能写出一个 类型集来涵盖字符串或者可以字符串化的 类型的总和: type Stringish interface { ~string | fmt.Stringer0 码力 | 45 页 | 501.50 KB | 1 年前3
Go读书会第二期语言决定思维方式” - 萨丕尔假说 “ 我的语言之局限,即我的世界之局限” - 路德维 希 · 维特根斯坦(语言哲学奠基人) “ 不能改变你思维方式的语言,不值得学习” - Alan Perlis ( 首届图灵奖得主 ) Part1 - 进入 Go 语言编程思维导引 站在语言设计者的高度理解 Go 的与众不同 Go 诞生 与演进 Go 设计哲 学 Go 编程思 维举例 怎么学习 Go 思维?0 码力 | 26 页 | 4.55 MB | 1 年前3
Go Web编程Go完全是垃圾回收型的语言,并为并发执行与通信提供了基本的支持。 按照其设计,Go打算为多核机器上系统软件的构造提供一种方法。 Go是一种编译型语言,它结合了解释型语言的游刃有余,动态类型语言的开发效率,以及静态类型的安全性。它也打 算成为现代的,支持网络与多核计算的语言。要满足这些目标,需要解决一些语言上的问题:一个富有表达能力但轻 量级的类型系统,并发与垃圾回收机制,严格的依赖规范等等。这些无法通过库或工具解决好,因此Go也就应运而生 t包,所以我们在第三行中导入了 系统级别的fmt包:import "fmt"。 包的概念和Python中的package类似,它们都有一些特别的好处:模块化(能够把你的程序分成多个模块)和可重用性 (每个模块都能被其它应用程序反复使用)。我们在这里只是先了解一下包的概念,后面我们将会编写自己的包。 在第五行中,我们通过关键字func定义了一个main函数,函数体被放在{}(大括号)中,就像我们平时写C、C++或 型,我们也可以改成如下这样的定义,然后返回的时候不用带上变量名,因为直接在函数里面初始化了。但如果你的 函数是导出的(首字母大写),官方建议:最好命名返回值,因为不命名返回值,虽然使得代码更加简洁了,但是会造 成生成的文档可读性差。 func SumAndProduct(A, B int) (add int, Multiplied int) { add = A+B Multiplied = A*B0 码力 | 295 页 | 5.91 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Go 版——邓俊辉,清华大学计算机系教授 “如果我当年学数据结构与算法的时候有《Hello 算法》,学起来应该会简单 10 倍!” ——李沐,亚马逊资深首席科学家 计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上 提供的排版建议,以及他开发的开源文档主题 Material‑for‑MkDocs 。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提供了优秀的范本,确保 了本书内容的准确性与品质。在此感谢所有老师和前辈的杰出贡献! 本书倡导手脑并用的学习方式,在这一点上我深受《动手学深度学习》的启发。在此向各位读者强烈推荐这 本优秀的著作。 衷心感谢我的父母,正是你们一直以来的支 的是选读章节,内容相对困难。如果你的时间有限,可以先跳过。 ‧ 专业术语会使用黑体(纸质版和 PDF 版)或添加下划线(网页版),例如数组(array)。建议记住它们, 以便阅读文献。 ‧ 重点内容和总结性语句会 加粗,这类文字值得特别关注。 ‧ 有特指含义的词句会使用“引号”标注,以避免歧义。 ‧ 当涉及编程语言之间不一致的名词时,本书均以 Python 为准,例如使用 None 来表示“空”。0 码力 | 384 页 | 18.49 MB | 10 月前3
共 75 条
- 1
- 2
- 3
- 4
- 5
- 6
- 8













