一个滚动重启的状态保存问题
Created|Updated|系统架构
|Word Count:157|Reading Time:1mins|Post Views:
很多时候滚动重启,都会导致状态丢失。比较好的设计方法是把服务本身设计成无状态的,然后在上游的服务上做好 failover,然后增加 standby server,让 sticky 数据 transmit 到 standby 机器上,让 request 失败以后可以自己由上游重传到 standby server。然后就可以滚动重启了。
这大部分场景下还要考虑幂等的问题。
这就看得出热配置热替换的重要性了。在大多数情况下,除了发布新的 feature 升级以外,都应该尽量用热配置来避免重启。
Author: magicliang
Copyright Notice: All articles on this blog are licensed under CC BY-NC-SA 4.0 unless otherwise stated.
Related Articles

2021-03-01
HTAP 问题
问题定义 AP 的出现 在互联网浪潮出现之前,企业的数据量普遍不大,单机数据库就足以保存核心业务数据。那时候的存储不需要复杂架构,所有线上请求(OLTP,Online Transaction Processing)和后台分析(OLAP,Online Analytical Processing)都跑在同一个数据库实例上。后来业务越来越复杂,数据量越来越大,问题随之而来:单机数据库支持线上 TP 请求已经非常吃力,再跑较重的 AP 分析任务无以为继。AP 由此从 TP 系统分离,某种程度上 AP 是 TP 的一个分支。 这等于在存储层做读写分离的架构设计;另一种思路是在应用层做读写分离。 AP 的玩法 在这种背景下,以 Hadoop 为代表的大数据技术开始蓬勃发展,它用大量相对廉价的 x86 机器构建了一个数据分析平台,用并行能力破解大数据集的计算问题。 AP 系统的典型技术栈演进: 阶段 代表技术 特点 第一代 Hadoop MapReduce + Hive 批处理,延迟高(分钟到小时级) 第二代 Spark + Spark SQL 内存计算,延迟降到秒级 第...
2019-08-30
《高可用恢复思路》笔记
遇到线上问题,经常陷入一个误区:一定要找到问题的根因(root cause)。但实际上对线上应用而言,最重要的是恢复可用性,所以在开发设计环境除了完成功能性需求以外,还需要加入非功能性设计的需求: 限流保护。抵挡来自突发流量冲垮整个集群。 降级保护,对调用的服务接口保持警惕,其各种因素导致不可用,可以对齐降级,从而确保核心功能可用。 削峰填谷(traffic shaping),不因突发数据来袭,造成任务消费陡增,造成调用系统的连串抖动。 这些基本的系统保护,是应对未来的各种突发不确定事件的高可用思考。 以上描述的是问题的应对机制设计,问题的发现机制,也需要结构化地考虑,体系化地建设: 发现机制,是我们的眼睛,也是基础。 监控主指标,需要找对业务的主要指标,常见的主指标一般是:RT(响应时间)、总量、成功量、失败量、成功率。 主指标有异常,还要有细分维度(即结果还可以内部 group by aggregation)。 快速恢复 根据监控快速寻找问题发生的方向和位置。 找对恢复的人、恢复的预案。 倾向于选择成本低的恢复手段。---- 并不是所有的恢复都用大招(熔断、限流),大招...
2022-01-17
如何成为一名优秀的架构师
成为一个架构师:为了这一刻,你准备了多久? 架构师的关注点:顶层设计、长期视角。 寿命:数据 > 代码(特指业务逻辑)> 技术(特指业务逻辑的载体) 不是传道受业,而是观点分享。 架构师的几种 profile:有架构能力、以架构为生也是一种架构师。 长期战略:对于任何一家公司,架构设计一定是必要的,而且需要自行解决。架构师的职责是保证组织拥有正确的设计,控制复杂度。 架构师的关键特质: 目标正确:限制条件和目标价值产生理解偏差。是架构师最常见的问题。 能力满足:为组织带来更好的外部适应性。 持续减熵:好架构等于发现、规划和演化。 思考深度和实战经验最重要:这是任何的书本都不能带给我们的。包容、求真、良知、勇气。 有没有德?考虑组织长期利益(基于良知做判断)。 有没有勇气?承担责任,决定命运。 有没有眼光?是否擅于思考? 独立、理性、有深度的思考。长期感召力,来自于良知、成功、经验和勇气。 从复盘中学习。 郭东白.pdf

2023-02-13
推荐系统相关
新闻的推荐系统是为了给信息流的用户推荐资讯 feed。接口返回的信息不一定会被外显曝光。 在瀑布流式的外显曝光场景下,重排能够减少用户的疲劳度。 这就涉及到推荐系统的设计,流量要经过什么样的链路呢? 接入层、推荐中控、画像、召回、粗排、精排、重排。这些系统会形成星型架构和树形架构。 不同的架构之间有一个典型的优缺点需要取舍:链路长度会影响网络传输的最终效率,也会影响推荐系统的性能。 feeds推荐引擎典型架构.drawio

2019-12-29
彩色 UML 建模
理论基础与来源 彩色 UML 建模(也称为四色模型)是由 Peter Coad、Eric Lefebvre 和 Jeff De Luca 在经典著作《Java Modeling in Color with UML》中提出的领域建模方法。该方法通过四种颜色区分不同类型的域对象,帮助开发人员更好地理解和设计业务领域模型。 四色模型的核心思想是将领域对象分为四种架构型(Archetype),每种架构型用不同的颜色表示: 粉色(Moment-Interval):表示业务过程中发生的某个时刻或时段 黄色(Role):表示参与方在特定时刻时段中扮演的角色 绿色(Party-Place-Thing):表示参与方、地点和事物 蓝色(Description):表示描述性信息,通常是可重用的数据 四色模型与 DDD 的关系 四色模型与领域驱动设计(Domain-Driven Design,DDD)有很强的关联性: 关注领域本质:两者都强调深入理解业务领域,建立符合业务语义的模型 限界上下文:四色模型的彩色分类可以帮助识别和定义限界上下文 聚合根:粉色 MI 通常对应聚合根,负责维护业务不变性 ...

2021-02-10
《恰如其分的软件架构》
前言 这两周集中时间间歇性读完了《恰如其分的软件架构》这本书。这本书讲的是架构方法,架构方法是一种思维模型(mind set),这种思维模型叫作“风险驱动模型”。 这本书经我们团队的架构师推荐,列在我们团队的集体书目里很久了。但真正去读它、读完它的人又很少。究其原因,还是这本书的内容以谈概念为主,虽然书中举的例子非常生动,仍然始终无法摆脱“为了谈概念而举玩具例子”的问题-这几乎是所有架构书的通病。似乎正统的架构书籍都不可避免地举一些传统行业或者经典软件(比如很多书籍都会反复出现在“xxx 播放器”)的例子。这些软件架构非常经典,可以只用一些小的组件、场景,就讲清楚典型的组件、模式和架构风格的用处。但没有很深的工程/架构经验的读者读这些书的时候,仿佛重新回到了抄书和念书的大学课堂,对于脱离现实的例子只会产生“左耳进右耳出”的感觉。能够温故而知新,是一本书经典化的特征。而能够阅读非入门级的纯理论书籍,则是一个程序员的认知能力和经验达到了一定程度的特征。我读这本书里很多细节还是很痛苦,证明我还是对于形式化的符号(symbol)、记法(notion)还不是很熟悉,而且对于书中运用的问题解...
Announcement
人生只是,守株待兔
