面对软件错误构建可靠的分布式系统_笔记01

Day01|用生产硬核笔记逆向解构《DDIA》:从故障表象走向分布式系统本源 这些笔记具备很强的一线技术密度,覆盖 DBA、Kubernetes、Linux、Network、Redis、MySQL、PostgreSQL、AI Agent、复杂系统认知等多个方向。生产系统里,网络会抖、磁盘会慢、APIServer 会超时、Sentinel 会连接失败、NFS 会出现 stale file handle、Pod 会重启。你也已经关注到网卡 ring buffer、软中断、丢包、ping 延迟、探针超时这些链路,说明你的排障视角已经从单一资源指标扩展到了内核路径和网络路径。 阅读详情

作为erlang的入门教材,《面对软件错误构建可靠的分布式系统》这篇博士论文很值得好好研究。

学习笔记,就是有话则多,无话则少

 

2.6语言需求
并行和可容错的编程语言要求
(1)并发性: 轻量级的并行机制,在进程间发送消息。
(2)错误封装:一个进程中的错误,不能破坏其它进程
(3)故障检测:可以检测本地和远端进程中的异常
(4)故障识别:可以识别报告异常原因
(5)代码升级:可以动态替换运行的系统代码
(6)持久存储:

2.10 相关工作
(1)以进程昨晚错误封装的单位:一个进程中发生的错误不会影响到系统中其它进程,被称为强隔离
(2)进程要么就规规矩矩运行,要么就死掉
(3)故障和故障的原因可以被其它进程检测
(4)进程间没有共享状态,唯以消息传递的方式通信,且为异步通信

3.1 Erlang的世界观
(1)一切皆进程,进程要么好好跑,要么死翘翘;
(2)进程的生成和销毁都是轻量级的操作;
(3)进程强隔离,进程间不共享资源,消息传递是进程交互的唯一方式,每个进程有其独有的名字,知道进程的名字,就可以发送消息,不知道名字就不能发送消息
(4)错误处理非本地化
 

MIT课程分布式系统学习01——Introduction 阅读详情

相关推荐

35、多云环境下的站点可靠性工程实践

本文探讨了在多云环境下站点可靠性工程(SRE)的实践方法,涵盖了SRE中的风险分析、监控原则、自动化、消除繁琐工作、保持简单、发布工程以及事后分析等关键原则。通过业务风险分析制定服务水平目标(SLO)和错误预算,并基于四个黄金信号(延迟、流量、错误、饱和度)建立有效的监控规则,从而提高系统的稳定性和可靠性。文章还强调了SRE中持续学习和适应技术变化的重要性,为企业在多云时代的系统运维提供了全面的指导。

mars5的博客 86

面对软件错误构建可靠的分布式系统-1摘要

面对软件错误构建可靠的 分布式系统 (瑞典)Joe Armstrong 撰 段先德 译 邓 辉 审 声明:本文版权属原文作者所有,译文仅用于个人学习和交流,不得用于任何商业目的。> 原文链接:http://www.erlang.org/download/armstrong_thesis_2003.pdf 译 感 近年来,“多核”、“分布式计算”、

zhunj80的专栏 971

面对软件错误构建可靠的分布式系统

系统存在不完善的环节,但是我们希望我们的系统可靠,矛盾的要求,满足的条件两种解决方案,语言本身或者是方法库 在ERLANG中,对于上述的问题的解决方式采用语言+库一起作用的方式来解决,满足在程序有错误的情况下,我们的代码依旧会按照合理的方式运行 本文不关注算法细节、硬件假设、软件工程方面的要求 而是关注与软件的容错性在语言、库、操作系统方面的要求,纯消息传递式的语言,其它语言可能会存在共享内存的方式来解决这样的问题 速错进程的概念,现成的错误存在互相传递的隐患,会破坏掉系统内部的坚固性

面对软件错误构建可靠的分布式系统_笔记02

3.3 Erlang顺序化编程3.3.1 数据结构:8种原始的数据类型+2扩展类型(1)整数integer:(2)浮点数float:(3)原子atom: 字母打头的小写字符串,类似枚举类型。如果单引号包括,则可以有空格:a atom(4)二进制数binary: 二进制存储空间, >(5)字符串:双引号包括的字符串 "cat",实质是ASCII码。比如"cat"实质为[97,99,116](6)

cpusoft 468

面向软件错误构建可靠的分布式系统

面向软件错误构建可靠的分布式系统 Making reliable distributed systems in the presence of software errors Joe Armstrong 译者: 段先德 Joe Armstrong的博士论文

Dual-stream multiple instance learning networks for tumor detection in Whole Slide Image——论文笔记

关于多示例学习的资料网上比较少,但是在医学图像方面还是有人在应用的。主要是因为一般比较大,几个G都是十分常见的,这么大图片是无法直接训练,一般都会进行切图,所以天然契合多示例学习bag和instance的概念。最近看了一篇论文刚好关于这方面的,所以做下笔记。 github地址:https://github.com/binli123/dsmil-wsi paper:https://arxiv.org/abs/2011.08939 背景知识 在多示例学习(MIL)中,一组训练样本被视为包含多个instance的

weixin_41693877的博客 4170

如何构建高可用分布式系统

如何构建高可用分布式系统

weixin_46619605的博客 956

如何在INCA中修改标定量的初始值,并刷回控制器

测试过程中,有些时候,标定量来不及修改,这就需要修改标定量的初始值了,又不想打开模型重新编译,因此直接在INCA中修改,然后再刷回控制器,就成了最佳选择,之前也学过,长时间不用,忘记怎么搞了,最近又用到了,这次记录一下,以后用到的时候,就不用在网上东翻西找了。截止到2023年11月24日,共找到了两种方法可以实现修改。

weixin_43406519的博客 4200

从哲学到工程,聊聊构建高可用分布式系统

高可用是系统提供无故障服务的能力。有太多资料探讨如何构建高可用系统,但多是一些工程实践知识点的堆叠。这篇文章我们从更朴素的视角去透视分布式系统的高可用建设

系统工程实验室 1358

在centos7部署k8s搭建kubernetes集群

Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。 Kubernetes一个核心的特点就是能够自主的管理容器来保证云平台中的容器按照用户的期望状态运行着(比如用户想让apache一直运行,用户不需要关心怎么去做,Kubernetes会自动去监控,然后去重启,新建,总之,让apache一直提供服务),管理员可以加载一个微型服务,让规划器来找

山东梅长苏 1万+

SolidWorks与Python二次开发实战:从宏录制到自动化脚本

本文详细介绍了利用Python对SolidWorks进行二次开发的实战方法。通过宏录制获取操作指令,再将其转换为Python脚本,工程师可以高效实现建模、出图等重复任务的自动化,显著提升设计效率。文章涵盖了环境搭建、代码转换、调试技巧及完整实战案例,为工程师提供了从入门到精通的完整路径。

weixin_29082143的博客 948

golang学习笔记——基础01

golang学习笔记——基础01

mirana的专栏 4054

OpenFOAM-多孔介质模型(porous media)

文章目录一、多孔介质(porous media)二、使用步骤1.达西定律2.Darcy-Forchheimer3.OpenFOAM fvOptions4.paraview动画每帧显示时间(Annotate Time)5.参考内容总结 一、多孔介质(porous media) 在流体力学中,流体流经多孔介质是指流体流经多孔介质时的行为方式,如海绵或木材,或使用沙子或其他多孔材料过滤水。 我们将展示如何设置多孔层,并使用OpenFOAM模拟流体通过该介质。 二、使用步骤 1.达西定律 达西定律最初是由达西通.

zq93538196的博客 9938

分布式系统原理Day01-分布式系统基本概念

分布式系统基本概念模型节点异常副本副本一致性强一致性单调一致性会话一致性最终一致性弱一致性指标性能可用性可扩展性一致性 模型 节点 节点是一个完整的,不可分割的整体 如果某个程序进程实际上由若干相对独立部分构成,在模型中可以将一个进程划分为多个节点 在具体的工程项目中,一个节点往往是一个操作系统上的进程 异常 机器宕机: 系统最常见的异常之一 网络异常: 消息丢失,两片节点节点之间彼此完全无法通信,出现网络分化 消息乱序,有一定几率不是按照发送时的顺序依次到达目的节点 可以使用序列号等机制处理网络

攻城狮Chova的博客 592

从零搭建运行Pytorch版pointNet++模型全流程及个性化数据集训练测试可视化

从零搭建运行Pytorch版pointNet++模型全流程及个性化数据集训练测试可视化

funfan的博客 9435

Java小白入门200例81之Java接口

作者简介 作者名:编程界明世隐 简介:优快云博客专家,从事软件开发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞! 引言 很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢? 其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大

编程界明世隐的博客 1359

第十章: 可观测性_《凤凰架构:构建可靠的大型分布式系统》

可观测性

C/C++ 1135

深入探究ASP.NET Core读取Request.Body的正确方式

前言# 相信大家在使用ASP.NET Core进行开发的时候,肯定会涉及到读取Request.Body的场景,毕竟我们大部分的POST请求都是将数据存放到Http的Body当中。因为笔者日常开发所使用的主要也是ASP.NET Core所以笔者也遇到这这种场景,关于本篇文章所套路的内容,来自于在开发过程中我遇到的关于Request.Body的读取问题。在之前的使用的时候,基本上都是借助搜索引擎搜索的答案,并没有太关注这个,发现自己理解的和正确的使用之间存在很大的误区。故有感而发,便写下此文,以作记录。学无止境

萌兔兔MMQ!! 777

系统设计笔记实战:从限流器到分布式系统的决策日志

系统设计是应对复杂性的工程实践,核心在于将抽象原理(如CAP、一致性模型)转化为具体约束下的技术选型与权衡。限流器(rate limiter)并非孤立组件,而是分布式系统中业务健康度的实时仪表盘;其算法选择(令牌桶/滑动窗口)、部署细节(Redis连接池、时钟漂移)和监控指标直接决定系统韧性。真实场景中的系统设计笔记,需锚定用户规模、一致性要求、运维能力等确定性约束,记录‘为什么选A而非B’的决策过程与踩坑实证。本文聚焦中级工程师在高并发演进中亟需的可执行知识资产——以rate limiter为切口,穿透协

weixin_34221654的博客 320

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

mit分布式系统学习笔记01

Leture01 为什么分布式: 连接不同物理实体通过隔离实现安全通过复制实现容错并行的cpu、mem、disk、net实现扩展 4个实验: Lab 1: MapReduce Lab 2: replication for fault-tolerance using Raft Lab 3: fault-tolerant key/value store Lab 4:

roooot的专栏 537

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

开源分布式系统追踪-01-Zipkin-01-入门介绍

Zipkin最初是为了在Cassandra上存储数据而构建的,因为Cassandra是可扩展的,具有灵活的模式,并且在Twitter中大量使用。如果要解决延迟问题或错误,可以根据应用程序,跟踪长度,注释或时间戳对所有跟踪进行筛选或排序。跟踪器存在于您的应用程序中,并记录有关发生的操作的时间和元数据。请注意,此页面已过期。一旦跟踪数据到达Zipkin收集器守护程序,它就会被Zipkin收集器验证,存储和索引以供查找。为了说明Zipkin显示的跟踪数据,让我们将它与Zipkin数据模型中的等效信息联系起来。

1529

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

开源分布式系统追踪 02-pinpoint-01-入门介绍

如今,服务通常由多个不同的组件组成,这些组件相互通信并向外部服务发起 API 调用。每个事务如何执行往往被视为黑箱。Pinpoint 追踪这些组件之间的事务流,并提供清晰的视图,帮助识别问题区域和潜在的瓶颈。若想更深入了解,请查看我们的Pinpoint 简介视频。ServerMap- 通过可视化各个组件的连接方式,了解任何分布式系统的拓扑结构。点击一个节点可以查看该组件的详细信息,例如其当前状态和事务数量。实时活动线程图- 实时监控应用程序内的活动线程。请求/响应散点图。

993

智能调试与错误预测的未来_01

软件开发中的调试工作一直是开发者面临的重大挑战。据统计,软件开发者平均花费30%-50%的时间用于调试和修复bug,这不仅影响了开发效率,还可能导致项目延期和质量问题。随着人工智能技术的快速发展,智能调试与错误预测正在成为解决这一问题的新途径。从自动错误检测到智能修复建议,AI技术正在重塑调试的方式和效率。本文将深入探讨智能调试与错误预测的技术原理、应用场景、实际效果以及未来发展趋势,为开发者提供全面的参考和指导。

欢迎来到智能安全前线!这里是AI与信息安全交汇之地。我们以代码为武器,深入大模型攻防实战,破解系统漏洞。追踪OpenAI、Meta前沿动态,用红蓝对抗思维,锻造智能时代的坚盾与利矛。 715
下一篇: 面对软件错误构建可靠的分布式系统_笔记02
cpusoft
博客等级 码龄22年 8粉丝 32原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值