首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏后端技术

    系统设计与分析 作业4

    a hotel reserve hotel 50 5 you can reserve a hotel by selecting a hotel and room. manage basket 30 4 查找淘宝退货业务官方文档,使用多泳道图,表达客户、淘宝网、淘宝商家服务系统、商家等用户和系统协同完成退货业务的过程。分析客户要完成退货业务,在淘宝网上需要实现哪些系统用例 3.

    50720发布于 2019-05-25
  • 来自专栏后端精进之路

    如何设计一个微博系统?- 4招教你搞定系统设计

    经常在面试的时候,会被问到系统设计类的题目,比如如何设计微信朋友圈、如何设计12306系统、如何设计一个抢票系统等等。如果是没有准备过,一般都会不知所措,难以找到切入点。 如何搞定系统设计 - 4步法 针对系统设计,这里给大家提供一个4步法解决方案,无论是任何系统设计的题目,都可以按照这几步去思考解决。 1. 这里面涉及到各种存储方案的选择、数据库的设计等等,后面会有专门的文章进行介绍。 4. 实战 - 4步法解决Weibo设计 这部分我以Weibo的设计为例,带大家过一遍如何用4步法解决实际的系统设计系统扩展设计 在做系统扩展设计之前,我们可以依据下面几个步骤,找出系统中可能存在的瓶颈,然后进行针对性优化。

    1.1K20编辑于 2023-10-19
  • 来自专栏小白晋级大师

    分布式系统架构4:容错设计模式

    这是小卷对分布式系统架构学习的第4篇文章,虽然知道大家都不喜欢看纯技术文章,写了也没多少阅读量,但是为了个人要成长,小卷最近每天都会更新分布式的文章1.概念容错策略,指的是“面对故障,我们该做些什么”; 而容错设计模式,指的是“要实现某种容错策略,我们该如何去做”。 上一篇已经讲了7种容错策略,为了实现各种策略,开发总结了一些容错设计模式,包括微服务常见的:断路器模式、舱壁隔离模式、超时重试模式。 4.重试模式概念:适用于解决系统的瞬间故障,如:网络抖动、服务临时过载问题。通过设定调用超时时间和重试次数,在调用失败后自动重试,提升服务调用成功率。 服务恢复检测需要额外开销 服务调用失败率高,可能影响全局性能的场景舱壁隔离模式故障隔离,防止系统资源被耗尽 增加系统设计复杂性 多模块

    44610编辑于 2024-12-20
  • 来自专栏EdisonTalk

    5分钟了解系统架构设计4

    最近梳理了之前学习的架构设计相关的一些课程学习总结,将其整理成了一个大纲脑图,以每篇5分钟系列展现出来,希望对你有所帮助。 本篇,我们聚焦架构设计和架构拆分的原则。 理解这些原则,可以作为我们做设计和拆分的“道”。 架构设计的原则 (1)合适原则 合适优于业界领先 (2)简单原则 简单优于复杂 (3)演化原则 演化优于一步到位 架构即人性,设计一个符合企业当前情况,又可以演进、不好大喜功的架构,善莫大焉。 (4)回答点评 立足于点:从原有系统中关于订单、促销和报价功能耦合在一起带来的实际问题出发 连接成线:从交易流程的角度做设计串联起三个系统的拆分逻辑是连接成线 扩散成面:从复杂度和成本考量的方向夯实了设计的原则 参考资料 李运华,《从0开始学架构》 刘海丰,《架构设计面试精讲》 潘新宇,《23讲搞定后台架构实战》 作者:周旭龙 出处:https://edisonchou.cnblogs.com 本文版权归作者和博客园共有

    48620编辑于 2023-03-06
  • 来自专栏运维开发王义杰

    系统设计:预订系统

    系统架构 基于前面的需求,我们将设计一个预订系统。该设计将包括系统架构、关键组件的UML模型以及用Go语言实现的代码示例。 为了进一步细化预订系统设计,我们将对关键的服务组件进行更详细的设计,包括数据库模式、RESTful API设计以及关键功能的实现逻辑。这将帮助开发团队更清晰地理解系统的工作方式和接口细节。 数据库设计 我们首先定义数据库模型以支持系统功能。 以下是针对主要功能模块的数据库模式设计: 用户模块 预订模块 支付模块 RESTful API 设计 我们为系统定义RESTful接口,以支持各种客户端操作。 建议在系统实施前进行详细的风险评估和技术验证,确保设计的可行性。

    1K10编辑于 2024-04-15
  • 来自专栏爱敲代码的猫

    java设计模式(4)-原型设计模式

    如果系统要保存对象的状态,而对象的状态变化很小,或者对象本身占内存不大的时候,也可以使用原型模式配合备忘录模式来应用。

    67950发布于 2019-10-17
  • 来自专栏MixLab科技+设计实验室

    AI设计系统设计之神”

    标题: “God of Design” AI design system “设计之神”AI设计系统 价值主张: 我们的“设计之神”系统利用生成对抗网络技术,帮助甲方把设计目标可视化后,更清楚地传达给设计师 借此技术,让无作图能力的甲方,把生成条件输入AI设计系统后,程序在极短时间内生成海量方案,甲方只需挑选其中想要的方案,交给设计师来完善,避免了设计师的无效工作,提升了工作效率。 ? “设计之神”AI设计系统原型演示 demo of AI design system: 我们以室内装修设计为例,制作了一份简单的使用演示,让读者能更具体的了解人工智能发挥的作用 ? 运营模式 BUSINESS OPERATION MODEL : 这块只是很粗略的构想了一个如何利用这技术来开展商业的模型,大体思路就是利用这个AI设计系统来吸引甲方和设计师,从而构建一个设计服务平台,对接甲方们和设计师们 例如实际工作中,并不是所有甲方都清楚自己想要什么,需要设计师来帮他们想出最合理的方案,对于这样的情况,这套“设计之神”系统就完全失效了。

    1.5K10发布于 2019-09-26
  • 来自专栏YuanXin

    系统设计】如何设计一个CMS系统

    CMS 是:内容管理系统。而这个内容,是存放在具体介质上,例如云数据库中。 在 cms 中,可以创建一个“内容集”(类似于数据表),并且可以修改内容集的字段信息。 因此,一个 cms 系统就非常有用了。在使用上,非常直观。运营同学完全可以根据自身需要,创建一个新的内容集。前端进行动态化构建的时候,直接拉取对应内容集中的内容进行构建即可。 数据库集合设计 用户集合 除了用户名、密码字段,添加一个 role 字段:"user" | "root"。

    3K10发布于 2020-05-06
  • 来自专栏技术小讲堂

    LINQ to SQL(4):OR设计

    在我们使用LINQ to SQL的时候,需要大量的使用OR设计器,虽然我们手工写代码也是完全可以实现的,但是OR设计器是非常强大的工具,我想有了它,没有几个人会去手工写代码,当然了,手动写代码也是必须的 ,这一篇我就写几个典型的需要手工写代码的情况 打开和关闭复数形式 默认情况下,OR设计器会将数据库对象从服务器资源管理器拖放到OR设计器上的时候,会自动将ies,s结尾修改为单数形式,这样可以更准确的表示实例化的实体类到单个数据记录的事实 扩展OR设计器生成的代码 的确,OR设计器为我们做了很多的东西,但是某些时候,我们还是不得不动动键盘,智能方便总有它的缺陷,比如下面这种情况: 比如我们查询数据库的Account表,而我们不需要它的密码列 ,和最后登陆时间列(假设表中是有这些列的),而在我们直接将一个表拖放到OR设计器中的时候,他模型是添加了这些列的,所以我们可能会使用如下的代码 var queryWithAlias = from u in

    1.2K100发布于 2018-03-07
  • 来自专栏技术一号位指南(小诚信驿站)

    系统设计:在线售票系统

    需求 让我们设计一个在线售票系统,销售Ticketmaster或BookMyShow等电影票。 这意味着系统应该是安全的,数据库符合ACID。 3.一些设计考虑 1.为了简单起见,假设我们的服务不需要任何用户身份验证。 2.系统不会处理部分票订单。 4.为了防止系统滥用,我们可以限制用户一次预订超过10个座位。 5.我们可以假设,在广受欢迎/期待已久的电影发行和座位上,流量会激增会很快填满的。该系统应具有可扩展性和高可用性,以跟上交通量激增。 6.数据库设计 以下是我们将要存储的数据的一些观察结果: 1.每个城市可以有多家电影院。 2.每家电影院将有多个大厅。 3.每部电影将有多场演出,每场演出将有多个预订。 4.一个用户可以有多个预订。

    7.8K120编辑于 2022-03-06
  • 来自专栏超级架构师

    系统设计系统设计基础:速率限制器

    在大型系统中,速率限制通常用于保护底层服务和资源。速率限制一般在分布式系统中作为一种防御机制,使共享资源能够保持可用性。 可以限制不是来自目标人口统计的请求,以提高目标区域的可用性 4. 服务器:基于服务器的速率限制是一种利基策略。 Fixed Window Counter 4. 滑动日志: 滑动日志算法涉及在用户级别维护带有时间戳的请求日志。系统将这些请求时间排序在一个集合或一个表中。它丢弃所有时间戳超过阈值的请求。 它还避免了漏桶的饥饿问题和固定窗口实现的爆裂问题 分布式系统中的速率限制 上述算法非常适用于单服务器应用程序。但是当分布式系统涉及到多个节点或应用服务器时,问题就变得非常复杂。 弹性或动态限制:在弹性限制下,如果系统有一些可用资源,请求的数量可能会超过阈值。

    1.5K30编辑于 2022-05-29
  • 秒杀系统设计

    构建一个高并发、高可用的分布式微服务秒杀系统需要从架构设计、流量控制、数据一致性、缓存策略、数据库优化等多个方面综合考虑。以下是核心设计思路和关键技术点: 1. 架构分层设计 采用微服务架构将系统拆解为独立模块,降低耦合度: 网关层:统一入口,负责鉴权、限流、路由。 业务层: 秒杀服务:核心逻辑(库存预扣、订单生成)。 4. 高并发缓存策略 多级缓存: 本地缓存(Guava/Caffeine) + 分布式缓存(Redis/Redis Cluster)。 热点数据提前预热。 TiDB(分库分表) 限流熔断 Sentinel/Hystrix 分布式锁 Redisson 监控 Prometheus + Grafana + SkyWalking 11.逻辑架构图 12.总结 设计秒杀系统的核心是分层解耦 通过微服务拆分降低复杂度,结合中间件(Redis、MQ)提升吞吐量,同时通过限流、熔断、降级保障系统稳定性。

    98000编辑于 2025-04-05
  • 来自专栏JavaEdge

    用户系统设计

    1 系统分析 1.1 Scenario 场景 注册、登录、查询、用户信息修改,哪个需求量最大? 支持100M DAU。 AuthenticationService 负责登录注册 UserService 负责用户信息存储与查询 FriendshipService 负责好友关系存储 1.3 Storage QPS 与 常用数据存储系统 读多写少的系统一定要使用 Cache 进行优化。 使用缓存,也就会带来数据不一致问题,数据库和缓存是两台机器,两套系统,并不支持加锁。如果是用一些第三方分布式锁,会导致存取效率降低,得不偿失。 需要支持事务,则禁选 NoSQL 原则3 想在什么地方偷懒,很大程度决定选什么数据库 SQL 结构化数据,自由创建索引 NoSQL 分布式,Auto-scale,Replica 原则4 一般一个网站会同时用多种数据库系统 不同的表单放在不同的数据库。

    1.1K40编辑于 2022-03-15
  • 来自专栏涓流

    秒杀系统设计

    概述 读了极客时间许令波的如何设计秒杀系统后,总结出秒杀系统设计的一些需要注意的点,如何从更多的角度去考量一个架构的设计,保证性能和高可用。 这些经验或者说原则不仅仅适用于秒杀系统,在设计其他系统的时候也有一定的参考性。 秒杀系统的五个原则 总结起来就是:4要,1不要 数据要尽量少 这里的数据值得是用户和系统间传输的数据,包括用户上传给系统的数据和系统返回给用户的数据。 不要有单点 在系统设计中,保证高可用,我们会将每个应用部署多份,作为备份,这也是分布式系统最重要的一点。 避免单点的关键是不要将服务的状态与机器绑定,即将服务无状态化,这样服务就可以在机器中随意移动。 参考资料 http缓存控制 [许令波-如何设计一个秒杀系统]

    1.8K20编辑于 2022-06-28
  • 系统概要设计

    系统概要设计 概要设计是指在项目开始阶段对于项目进行整体规划和设计的过程。下面是一个概要设计的基本步骤: 总之,概要设计是在项目开始阶段对项目进行整体规划和设计的过程。 通过概要设计,可以明确项目的目标和范围,设计系统的流程和结构,制定技术方案,为后续的详细设计和开发工作奠定基础。 概要设计是指在项目开始阶段对于项目进行整体规划和设计的过程。 绘制系统流程图:绘制系统的流程图,包括各功能模块之间的关系、数据的流向和处理过程等。这有助于清晰地展示整个系统的逻辑结构和流程。 设计数据库结构:根据项目需求,设计数据库的结构和表之间的关系。 包括选择合适的开发语言、框架、数据库等技术工具,规划系统的架构和模块设计。 编写概要设计文档:将以上内容整理成概要设计文档,文档应包括项目概述、需求分析、系统流程图、数据库设计、技术方案等内容。 总之,概要设计是在项目开始阶段对项目进行整体规划和设计的过程。通过概要设计,可以明确项目的目标和范围,设计系统的流程和结构,制定技术方案,为后续的详细设计和开发工作奠定基础。

    34710编辑于 2025-08-29
  • 来自专栏涓流

    权限系统设计

    权限系统概述 什么是越权 一般我们认为在系统内, 使用者通过一个非法的操作, 让自己的可操作范围变大的行为就是越权。 越权又分为: 垂直越权: 低权限的用户访问高权限的用户的资源或功能。 如用户A通过某种方式访问到了用户B的数据 鉴权系统就是为了解决上述的越权问题, 一般的鉴权系统分为两种模型: RBAC 和 ABAC RBAC(Role-Based Access Control) 核心思想 组成概念: 要素 说明 User 用户,系统的使用者 Role 角色, 权限的逻辑分组 Permission 权限,具体对资源的操作 ABAC(Attribute-Based Access Control 每当发生访问请求时,ABAC模型 决策系统都会分析属性值是否与已建立的策略匹配。如果有匹配的策略,访问请求就会被通过。

    51600编辑于 2025-05-01
  • 来自专栏gglinux.com

    IM系统设计

    即时通讯(Instant Messaging,简称IM)是一个实时通信系统,允许两人或多人使用网络实时的传递文字消息、文件、语音与视频交流。实现方式有两种。 总体设计 实现方式 协议:WebSocket 框架:Socket IO/Swoole 关键点:可扩展,支持分布式部署。短链接负责业务逻辑,长链接负责Websocket。 是对所有在线用户或者特定群ID(会话ID),发送消息(系统消息)。实现方法为:遍历所有在线socket句柄,发送内容。 监控服务 在运营管理或者监控上,需要对聊天服务性能加以判定。

    4.2K81发布于 2019-02-23
  • 来自专栏技术一号位指南(小诚信驿站)

    系统设计:缓存

    它们几乎应用于计算的每一层:硬件、操作系统、web浏览器、web应用程序等等。缓存就像短期内存:它的空间有限,但通常比原始数据源快,并且包含最近访问的项。 如果我们正在构建的系统还不足以拥有自己的CDN,那么我们可以通过在单独的服务器上为静态媒体提供服务来简化将来的转换 子域(例如static.yourservice.com)使用轻量级HTTP服务器,比如 此外,此方案还确保在发生崩溃、电源故障或其他系统中断时不会丢失任何东西。 4.最近使用(MRU):与LRU不同的是,首先丢弃最近使用的物品。 5.最少使用频率(LFU):统计需要某个项目的频率。最不常用的会先被丢弃。

    3K483发布于 2021-07-05
  • 来自专栏技术一号位指南(小诚信驿站)

    系统设计:索引

    题外笔者补充 谷歌系统设计指南指定了我们说的索引的好处和坏处,那么其实深层次去思考,索引是解决的读问题,数据存储是解决的写问题,而在我们设计系统,中间件的过程中,你会发现大量的设计都是读写分开的,比如写磁盘是顺序写

    1.6K61发布于 2021-08-26
  • 来自专栏Golang语言社区

    游戏系统设计

    一、 服务器 1、逻辑与数据分离 2、读写分离 3、服务器分层 4、分区容错 HA a.路由服务器组 *1, 做到AB测试,添加功能开关,策略选择灰度测试发布。 *2, 做到切片编程,(可采用类PCALL包裹类) *3.做到AB滚服, 主备服务 *4.MYSQL冷数据落地 5.Service-Oriented游戏服务端 6.战斗等场景,玩家对象的时空穿越,agent 消息队列, 实现异步:1.推消息 2.削峰请求 二、客户端 1、可回放与验证设计, 以帧为时间基础。 五、游戏设计 自生态系统。 物品模板自动生成系统。 边际受益 游戏世界(虚拟)是否应该满足人的幻想, 传播快乐, 传播爱,传播成就, ? : 分 与 抽象 层:数据层,服务层,逻辑层, 接口层, 负载均衡层 类:数据, 函数, 模块, 子系统, 区域, 接口, 消息,

    2.2K70发布于 2018-03-27
领券