赵成的运维体系管理课学习笔记系列(五) —— 故障管理篇

本系列教程是学院君在极客时间学习赵成的运维体系管理课记录的学习笔记,希望对有这方面需求的同学有所启发,如果想要深入了解细节可以去极客时间订阅该专栏。作者介绍:赵成,美丽联合集团技术服务经理。 系统正常,只是该系统无数异常情况下的一种特例。 我们的目标和注意力不应该放在消除故障,或者不允许故障发生上,因为我们无法杜绝故障。所以,我们更应该考虑的是,怎么让系统更健壮,在一般的问题面前,仍...

赵成的运维体系管理课学习笔记系列(四) —— 稳定性实践篇

本系列教程是学院君在极客时间学习赵成的运维体系管理课记录的学习笔记,希望对有这方面需求的同学有所启发,如果想要深入了解细节可以去极客时间订阅该专栏。作者介绍:赵成,美丽联合集团技术服务经理。 极端业务场景下如何做稳定性保障 极端业务场景 可预测:电商大促 不可预测:社交媒体突发事件 技术挑战 运维自动化 —— 快速扩容 容量评估和压测 —— 系统容量心中有数 限流降级 —— 核心...

赵成的运维体系管理课学习笔记系列(三) —— 云计算篇

本系列教程是学院君在极客时间学习赵成的运维体系管理课记录的学习笔记,希望对有这方面需求的同学有所启发,如果想要深入了解细节可以去极客时间订阅该专栏。作者介绍:赵成,美丽联合集团技术服务经理。 为什么要选择上云 IDC 托管 -> 混合云 成本闲置:为了应付大促采购机器,平时低负载 基础设施维护:机房选址、机房扩展、资源利用率 底层技术投入和人才:业务导向公司不会对底层技术进行无限度投...

赵成的运维体系管理课学习笔记系列(二) —— 持续交付篇

本系列教程是学院君在极客时间学习赵成的运维体系管理课记录的学习笔记,希望对有这方面需求的同学有所启发,如果想要深入了解细节可以去极客时间订阅该专栏。作者介绍:赵成,美丽联合集团技术服务经理。 为什么要做持续交付 想要前面提到的运维基础建设发挥出更大的作用和价值,就需要针对运维场景进行场景化设计和自动化,在这一阶段,首先要把持续交付做好。 持续交付是提升整个研发体系效率的关键。 持续交付...

赵成的运维体系管理课学习笔记系列(一) —— 基础设施篇

本系列教程是学院君在极客时间学习赵成的运维体系管理课记录的学习笔记,希望对有这方面需求的同学有所启发,如果想要深入了解细节可以去极客时间订阅该专栏。 作者介绍:赵成,美丽联合集团技术服务经理。 为什么 Netflix 没有运维岗 相关术语 SRE: Site Reliability Engineer 系统可用性工程师 DevOps: You build it, you run it...

RabbitMQ 从入门到放弃系列笔记(八):远程调用(RPC)

在云计算环境中,很多时候需要用它其他机器的计算资源,把一部分计算任务分配到其他节点来完成。RabbitMQ 如何使用 RPC 呢?下面将会通过其它节点完成斐波纳契示例。 流程图  当客户端启动时,它创建了匿名的 callback queue 客户端发起 RPC 请求时将同时设置两个 properties:reply_to 设置为 callback queue;cor...

RabbitMQ 从入门到放弃系列笔记(七):通过主题进行消息分发

Topic Exchange 对于 Message 的 routing_key 字符串格式是有限制的:以点号"."分割的字符表,如php.laravel,并且长度不能超过 255 个字节。 对于 routing_key 而言,有两个特殊字符: *:代表任意单词 #:代表0个或多个单词  Topic Exchange 与其他 Exchange 的转化:...

RabbitMQ 从入门到放弃系列笔记(六):消息路由

如果我们只想让 error 级别的 log 保存到磁盘,该怎么做? emit_logs_direct.php <?php /** * 发送消息 */ $exchangeName = 'direct_logs'; $level = empty($argv[1]) ? 'info' : $argv[1]; // 错误级别:info、warn、error $m...

RabbitMQ 从入门到放弃系列笔记(五):消息订阅(Publish/Subscribe)

之前都是将消息发送到同一个 Consumer,而现在我们需将其发送到多个 Consumer。 我们将创建一个日志系统,它包含两个部分:第一个部分负责发出log(Producer),第二个部分负责接收并打印(Consumer)。我们将构建两个 Consumer,第一个将 log 写到物理磁盘上;第二个将 log 输出到屏幕。 "Fanout" not telling an exch...

RabbitMQ 从入门到放弃系列笔记(四):消息分发机制

对于计算密集型任务,需要将其分发给多个消费者进行处理。 准备工作 我们对前面测试的代码稍作改造: task.php <?php /** * 分发任务 */ $exchangeName = 'task'; $queueName = 'worker'; $routeKey = 'worker'; $message = empty($argv[1]) ?...