system-design相关内容

您如何编写基于网络的实时协作工具,例如 google docs?

我真的很好奇 如何编写诸如 google docs 之类的协作工具? 我能想到的最接近的事情是编写一个像聊天一样的消息传递系统,然后来回发送消息,以便每个客户端进行自我更新. 你知道他们编写这样一个小工具的教程/演示吗? 他们使用什么工具来开发此类应用? TIA 用于您可以提供的任何指针. 解决方案 Google Docs 通过 操作转型. 操作变换的基 ..
发布时间:2022-01-05 11:35:11 其他开发

需要在 Hyperledger Sawtooth 架构指南的文档中进行澄清:验证器对等 (P2P) 网络

我想从这个文档中理解以下声明. 第 1 部分: 如果网络组件的对等点数小于最小连通性,则网络组件将继续执行对等点搜索.如果网络组件的对等点数等于或大于最大连接数,则网络组件拒绝对等连接尝试. 第 2 部分: 即使达到最大对等连接数,网络服务仍应接受并响应合理数量的连接(用于其他节点拓扑构建等) 问题: 第 1 部分和第 2 部分中的陈述 - 相互矛盾.文档有误吗 ..

在 kafka 事件驱动的主干中保持服务同步

假设我在系统设计中使用 Kafka 作为我所有微服务的事件驱动主干.许多微服务使用事件数据来填充其内部数据库.现在有一个需求,我需要创建一个新服务,它使用一些事件数据.该服务只能在它上线后才能使用事件,因此不会有很多丢失的数据.我想要一个策略,这样我就不必通过编写脚本来回填我的内部数据库. 我可以采用哪些不会给 Kafka & 带来巨大负载的很酷的策略?没有在我创建的新服务中使用大量脚本来回 ..

Hyperledger Sawtooth Validator 节点如何在 Sawtooth 网络中拥有“大于最大连接的对等点数"?

以下声明来自此文档. 网络组件继续执行对等搜索,如果其编号对等点数小于最小连接.网络组件如果对等体的数量等于或大于,则拒绝对等互连尝试超过最大连接. 问题: 正如文档所说, 节点数等于或大于最大连接数, 如果允许一个节点有一个“最大对等点数",比如 N,那么“对等点数"怎么可能大于 N? 注意: 您可能想参考另一个问题 来自我,这与在“尝试 peering ..

如何克服EAV数据库报告的缺点?

SQL 中实体-属性-值数据库设计的主要缺点似乎都与能够高效快速地查询和报告数据有关.由于这些问题以及几乎所有应用程序的查询/报告的通用性,我阅读的有关该主题的大部分信息都警告不要实施 EAV. 我目前正在设计一个系统,其中一个实体的字段在设计/编译时未知,由系统的最终用户定义.EAV 似乎很适合这个要求,但由于我读过的问题,我在实施它时犹豫不决,因为这个系统也有一些非常繁重的报告要求.我认 ..

如何设计一个能够以动态方式高效管理配置的系统?

我正在设计一个系统,我需要在其中以动态方式跨应用服务器管理配置(配置文件).我正在使用 Consul 键值存储来管理配置. 为了管理配置,我在 consul kv 存储中创建了以下节点. {"remoteConfig":"abc-123.tgz", "...."} 这里 remoteConfig 包含所有应用服务器将使用的配置文件(至少这是我得到的设计). 以下是我想要做的: ..

在 kafka 事件驱动的主干中保持服务同步

假设我在系统设计中使用 Kafka 作为我所有微服务的事件驱动主干.许多微服务使用事件数据来填充其内部数据库.现在有一个需求,我需要创建一个新服务,它使用一些事件数据.该服务只能在它上线后使用事件,因此不会有很多数据丢失.我想要一个策略,这样我就不必通过编写脚本来回填我的内部数据库. 我可以采用哪些不会对 Kafka 造成巨大负载的很酷的策略?没有考虑到大量脚本来回填我创建的新服务中的数据? ..

设计类和分析类有什么区别?

我正在尝试创建分析类图和绘图类图,我无法详细了解每一个来阐述它们的图.任何人都可以解释其中的区别,我使用的是 MVC 架构模式,我将非常感谢提供的任何提示. 解决方案 好消息是 1) 您可以将 UML 用于不同的目的 2) UML 始终是 UML: 分析旨在了解问题和要求.分析模型将重点放在业务领域,而不影响解决方案的内部结构.因此,如果您正在考虑 MVC,则该模型将只关注 M. ..

如何同步前端和后端验证

我有一个使用微服务的项目,前端与后端通过多个 Rest API 调用进行通信. 两侧(正面或背面)都有验证.有什么好的方法可以同步后端和前端验证. 例如,如果有办法创建一个验证文件(JSON Yaml 等),前端和后端可以完美地读取和理解它.只管理验证文件,然后我可以控制两端的验证.相反,要更改验证,我需要通知前端和后端,效率不高. 如果您有任何想法,请留下您的笔记. 解决 ..
发布时间:2021-06-02 21:41:57 其他开发

当负载均衡器成为瓶颈时,我们该怎么办?

我刚刚开始学习负载均衡器.以服务器端应用程序(http/https)负载均衡器为例,我假设它监听特定的IP地址,然后根据其算法将http请求转发到可用的服务器. 那么负载均衡器有可能成为瓶颈吗?因为它正在侦听特定的 ip 地址,所以所有请求将首先转到单个负载均衡器.因此,我认为在某些情况下,流量可能会超出负载均衡器的限制/容量. 当它成为瓶颈时,我们该怎么办?我们可以使用多个负载均衡器 ..
发布时间:2021-05-30 19:47:00 其他开发

如何设计一个可以有效地动态管理配置的系统?

我正在设计一个系统,该系统需要跨一堆应用程序服务器以动态方式管理配置(配置文件)。我正在与Consul密钥值存储一起管理配置。 我在consul kv存储中的节点下面创建了一个用于管理配置的 {“ remoteConfig”:“ abc-123.tgz”,“ ....”} 此处 remoteConfig 包含所有应用程序服务器将使用的配置文件(至少这是我得到的设计)。 ..

负载平衡器和API网关混淆

我一直致力于移动技术,现在我正在涉足后端系统,更具体地说是系统设计.对于API网关和负载平衡器的角色,我一直遇到冲突的声明. Googling仅返回了相同的六个结果,这些结果主要集中在某些著名服务提供的负载平衡器或api网关服务的实现上.我将在此列出我所面临的所有困惑,希望有人能澄清所有这些问题. 有时候,我碰到API网关是与客户端设备进行通信的单点.另一方面,有些地方提到“请求传给负载均衡 ..

在kafka事件驱动的主干中保持服务同步

说我在系统设计中将Kafka用作所有微服务的事件驱动主干.许多微服务使用事件数据来填充其内部数据库. 现在有一个需求,我需要创建一个新服务,它使用一些事件数据.该服务仅在活动上线后才能使用事件,因此不会丢失很多数据.我想要一种策略,使我不必通过编写脚本来回填内部数据库. 我可以采用哪些不错的策略,这些策略不会给Kafka&不会花很多脚本来回填我曾经创建的新服务中的数据? 解决方案 根 ..

使用API​​创建多种资源(不同类型)的干净方法

对于API的开发,我们希望使用干净的RESTful API设计通过一个表单提交(注册)为该组织创建一个新组织和一个新用户. 由于我们不想混用不同的资源(组织和用户)并通过一个呼叫来创建资源(该呼叫的响应是组织还是用户?),我们需要将注册分为两个呼叫:首先创建组织,然后在创建用户之后立即创建组织. 但是,如果将用户和组织的创建分为两个独立的API调用,则会看到以下问题: 如何处理错 ..
发布时间:2020-07-10 19:38:40 其他开发

传统的基于代码的工程方法与基于模型的工程方法之间有何区别?

我已经在文献中找到了这一段,但是我不理解它的含义 设计实践正在从传统的基于代码的工程学转向, 在整个开发生命周期中进行了强有力的分工,以 模型驱动的工程方法,设计中的所有人 流量可以在模型上有他们的说法. 任何帮助将不胜感激 解决方案 我不确定我是否同意该句子的书写方式,但是那样的话,我可能会遗漏一些上下文,无论如何,这不是问题要点. 传统上,计算机时间很昂贵,因此设计通 ..
发布时间:2020-07-10 19:37:34 其他开发

如何设计分布式作业调度程序?

我想设计一个作业调度程序集群,其中包含用于执行cron作业调度的几台主机.例如,将需要run every 5 minutes的作业提交给集群,集群应指出下一次要启动的主机,请确保: 容灾能力:如果并非所有主机都关闭,则应该成功触发该作业. 有效期:仅一台主机可以触发下一次作业运行. 由于容灾,作业无法绑定到特定主机.一种方法是所有主机都轮询一个数据库表(一定是带锁的),这样可以保证只 ..
发布时间:2020-07-10 19:37:30 其他开发

如何增加我的“高级"进一步了解PHP? (迅速地)

我已经使用PHP多年了,对这种语言有了很好的了解,创建了许多功能非常先进的先进系统. 我遇到的问题是,我只会在发现需要以前从未学过的东西时才学习.这使我查找解决该问题的解决方案和其他代码,因此,我将学习以前从未见过的新功能或结构.通过这种方式,我学到了许多更好的技术(例如,学习由Amazon,Google或其他主要公司开设的课程). 与此相关的主要问题是,如果您不知道某些东西的存在,便 ..
发布时间:2020-05-27 00:34:26 PHP

Hyperledger Sawtooth Validator节点如何在"Sawtooth网络"中具有“大于最大连接性的对等体数量"?

以下声明来自此文档. 如果网络组件的编号为,则继续执行对等搜索 对等点数小于最小连接数.网络组件 如果对等体数目等于或大于25,则拒绝对等尝试 比最大的连接性. 问题: 如文档所述, 对等体数等于或大于最大连通性 如果允许一个节点具有“最大对等体数目"(例如N),那么“对等体数目"如何比N更大? 注意: 您可能要参考另一个问题来自我,这与“尝试peerin ..

如何在Swift中正确使用类扩展?

在Swift中,我历史上使用扩展来扩展封闭类型并提供方便,无逻辑的功能,如动画,数学扩展等。但是,由于扩展是硬依赖性遍布代码库,我总是认为三在实现某些内容作为扩展之前的时间。 尽管如此,我已经看到Apple建议在更大程度上使用扩展,例如将协议实现为单独的扩展。 也就是说,如果你有一个实现协议B的A类,你最终得到这个设计: A类{ //初始化器,存储属性等 } 扩展A:B ..
发布时间:2018-09-03 17:57:08 移动开发