大家好,我是汤师爷~ 今天聊聊开放平台架构设计。 为什么需要搭建开放平台 增强产品能力 开放平台能够让三方开发者和合作伙伴开发新的应用或服务,增加原有SaaS产品能力。这样就可以满足更多用户需求,从而提高用户的满意度和黏性。 促进创新 三方开发者能够在SaaS标准产品的基础上,创造新的解决方案,为平 ...
什么是多租户? 多租户是SaaS领域的特有产物,在SaaS服务中,租户是指使用SaaS系统的客户,租户不同于用户,例如,B端SaaS产品,用户可能是某个组织下的员工,但整个企业组织是SaaS系统的租户。 多租户技术是一种软件架构技术,可以实现多个租户共享系统实例,并且租户间能够实现数据与行为的隔离。 ...
1 目标与步骤 2 价值流分析 2.1 从价值主张到价值流 2.2 价值流的概念 2.2 价值流如何识别? 2.3 价值流阶段如何识别? 3 业务流程 3.1 业务流程的概念 3.2 端到端流程 3.3 职能流程 3.4 示例:零售企业的业务流程 4 业务能力 4.1 业务能力的概念 4.2 业务能 ...
说在前面 在如今的高并发互联网应用中,如何确保系统在巨大的流量冲击下还能稳稳当当运转,是每个技术团队都会遇到的挑战。说到这,消息队列(MQ) 就是背后的“大功臣”了。 无论是异步处理请求、平滑应对流量高峰,还是让各个系统模块相互独立不“拖后腿”,MQ 都是不可或缺的帮手。那么,MQ 是怎么削峰的?或 ...
Spotify 是世界上最受欢迎的音乐流媒体平台,每月活跃 用户 (MAU) 超过 6 亿,付费用户超过 2 亿。在本文中,我们将学习如何设计 像 Spotify 这样的音乐流媒体服务,该服务每天可以处理数以百计的数百万用户和数十亿个音乐流,确保低延迟和高可用性。1.需求收集功能需求在深入研究设计之 ...
1. 基本信息 构建可扩展分布式系统:方法与实践 [美]伊恩·戈顿(Ian Gorton)著 机械工业出版社,2024年5月出版 1.1. 读薄率 书籍总字数188千字,笔记总字数49688字。 读薄率49688÷188000≈26.4% 1.2. 读厚方向 设计模式:可复用面向对象软件的基础 程序 ...
1. 可扩展系统的基本要素 1.1. 分布式系统在本质上就是复杂的,你必须考虑多种故障模式,并设计应对所有可能发生的情况的处理方式 1.2. 大规模应用程序需要协调大量的硬件和软件组件,共同实现低延迟和高吞吐量的能力 1.3. 面临的挑战是将所有活动部件组合成一个应用程序来运行,使其既能满足需求又不 ...
1. 流处理系统 1.1. 时间就是金钱 1.1.1. 从数据中提取有价值的知识和获得洞见的速度越快,就能越快地响应系统所观察的世界的变化 1.1.2. 信用卡欺诈检测 1.1.3. 网络安全中异常网络流量的捕获 1.1.4. 在支持GPS的驾驶应用程序中进行的实时路线规划 1.1.5. 社交媒体网 ...
1. 可扩展的事件驱动处理 1.1. 使用消息传递系统进行通信,你可以创建松耦合的架构 1.1.1. 消息生产者只是将消息存储在队列中,而不用关心消费者如何处理消息 1.1.2. 有一个或多个消费者,并且生产者和消费者的集合可以随着时间的推移而改变 1.1.3. 有助于提高服务响应能力、通过缓存消除 ...
duxapp是基于Taro二次开发的模块化框架
使用这个框架,结合框架提供的UI库和工具库,能帮助你快速且高质量的完成项目,且能实现同时开发小程序、H5、APP(React Native),并且保证各个端的一致性 ...
云设计模式介绍以及它们如何帮助应对分布式计算的谬误 作为构建分布式系统的软件工程师,我们经常遇到诸如不可靠的网络、延迟问题和安全问题等挑战。"分布式计算的谬误"描述了如果未解决,可能导致系统故障的常见误解。但认识到这些陷阱只是开始。真正的问题是:我们如何有效地克服它们?这就是云设计模式发挥作用的地方 ...
1. Redis 1.1. 2009年首次发布 1.1.1. 更注重原始性能和简单性,而不是数据安全性和一致性 1.2. 主要吸引力在于它能够同时充当分布式缓存和数据存储 1.3. 维护一个内存中的数据存储,也称为数据结构存储(data structure store) 1.4. 配置Redis将每 ...
大家好,我是汤师爷~ 今天聊聊SaaS业务架构的业务能力分析。 业务能力概述 简单来说,业务能力是企业“做某事的能力”。 业务能力描述了企业当前和未来应对挑战的能力,即企业能做什么或需要做什么。业务能力建模的关键在于定义了企业做什么,而不是如何做(由业务流程描述)。 以人才招聘为例,大多数公司都需要 ...
1. 强一致性 1.1. 最终一致数据库通过跨多台机器分区和复制数据集来获得可扩展性,其代价是要跨副本维持强数据一致性以及允许冲突写入 1.1.1. 在更新数据对象后,不同的客户端可能会看到该对象的旧值或新值,直到所有副本都收敛到最新值 1.2. 另一类分布式数据库提供一种可替代的模型,即强一致性数 ...
1. 最终一致性 1.1. 在一些应用领域,通常谈论的是银行和金融行业,最终一致性根本不合适 1.2. 事实上,最终一致性在银行业已经使用了很多年 1.2.1. 支票需要几天时间才能在你的账户上进行核对,而且你可以轻松地开出比账户余额多的支票 1.2.2. 当处理检查并建立一致性后,你才能看到一些后 ...
大家好,我是汤师爷~ 今天聊聊SaaS架构中的流程架构分析。 业务流程的概念 业务流程是企业为实现目标而制定的一套系统化的工作方法。它由一系列有序的业务活动组成,按照既定规则将资源(输入)转化为有价值的结果(输出)。这一过程需结合企业的具体情况和可用资源,旨在为客户创造价值,同时达成企业目标。 通过 ...
1. 可扩展数据库基础 1.1. 绝大多数应用程序都是基于关系数据库技术构建的 1.2. 数据库必须存储大量数据,为分布在全球的客户端提供快速的查询响应,并且全天候可用 1.3. NoSQL数据库采用简单的数据模型,可以复制和分区以支持海量数据集和请求量 1.4. Facebook以使用MySQL管 ...
1. 微服务 1.1. 微服务的起源可以追溯到2008年左右 1.1.1. 在Amazon,“两个比萨原则”成为一个单系统组件团队规模的管理原则,后来被称为微服务 1.1.1.1. 每个内部团队都应该小到可以用两个比萨饼喂饱 1.1.2. Amazon和Netflix是微服务架构的先驱,他们在20 ...
1. 无服务器的魅力 1.1. 对于某些应用程序,负载在工作时间可能很高,而在非工作时间可能很低或者不存在 1.2. 其他应用程序后台流量可能在99%的时间里都很低 1.2.1. 一旦到了一些大型节目的门票发布时间,负载需求可能会在数小时内飙升至平均水平的10000倍,然后回落至正常水平 1.3. ...
1. 异步消息传递 1.1. 通信是分布式系统的基础,也是架构师需要纳入其系统设计的主要问题 1.2. 客户端发送请求并等待服务器响应 1.2.1. 这就是大多数分布式通信的设计方式,因为客户端需要得到即时响应后才能继续 1.2.2. 并非所有系统都有这个要求 1.3. 使用异步通信的方式,客户端( ...