top of page

技术设计与评审

审查技术架构并提出替代方案,并附上对比表格。

提示详情

我将担任一家大型科技公司的高级软件工程师。我需要为我们的 Web 应用程序设计一个实时通知系统。

我的初步方案是在每个客户端和我们的主后端服务器之间建立直接的 WebSocket 连接。

请评估此方案:

1. 优缺点:分析其在可扩展性、复杂性和可靠性方面的优缺点。

2. 替代架构:提出两种替代方案(例如,消息队列或第三方服务)。

3. 对比表:从可扩展性、成本/复杂性和开发速度三个方面比较这三种方案。

提示的作用

在设计实时通知基础设施等系统时,工程师需要在投入资源之前,将初始方案与可行的替代方案进行比较。此提示会根据您提出的架构(例如直接 WebSocket 连接)生成结构化的评估报告,其中涵盖了优缺点以及两种替代方案。

remio 通过参考以往的架构决策记录、设计文档以及团队在 Slack 上就类似系统进行的讨论,加速了这一过程。您无需从零开始,即可获得涵盖可扩展性、成本、复杂性和开发速度的对比表格,可直接将其添加到 ADR 或 RFC 中。

何时使用

• 您正在为一项新的实时功能起草架构决策记录,需要说明选择某种方案而非其他方案的原因。

• 即将进行设计评审,您需要一份结构化的优缺点分析报告,以便向团队展示。

• 您正在评估是自行构建 WebSocket 层,还是采用 Pusher 或 Ably 等托管服务。

• 您的团队正在讨论消息队列架构(Kafka、RabbitMQ)与直接连接,需要一个清晰的比较框架。

• 您正在接入一个现有的通知系统,希望了解之前可能考虑过的权衡取舍。

提示示例

输入:我是一家大型科技公司的软件工程师,需要为我们的Web应用程序设计一个实时通知系统。我的初步方案是在每个客户端和我们的主后端服务器之间建立直接的WebSocket连接。请分析此方案的优缺点,并提供两种替代架构以及对比表格。

remio 回复:
您提供的直接 WebSocket 方案虽然延迟低且控制全面,但它将通知传递与后端紧密耦合,导致每个服务器并发连接数超过约 1 万个时出现扩展瓶颈。方案一:在后端和专用 WebSocket 网关之间引入消息代理,例如 Redis Pub/Sub 或 Kafka——这样可以将生产者与消费者解耦,并实现横向扩展。方案二:使用 Pusher 或 Ably 等托管服务,它们可以完全处理连接管理。以下是比较:直接 WebSocket 方案开发速度快,但可扩展性差;消息队列方案成本和可扩展性都比较适中;托管服务方案可扩展性和速度最高,但需要支付持续的供应商费用。我还找到了您团队在三月份的 #platform-architecture Slack 频道中关于 Redis Pub/Sub 的讨论,当时他们评估了 Redis Pub/Sub 在类似用例中的应用。

提示1:
请明确说明您的预期规模——并发用户数、每秒消息数、地理分布——以便架构审查能够解决您的实际限制,而不是通用的权衡取舍。

提示 2:
请提供您当前的技术栈(例如 Kubernetes、AWS、特定语言),以便获得适合您现有基础设施的替代方案。

提示 3:
要求 remio 在生成评审之前搜索您团队过去的文档和 RFC,以便比较结果能够反映您的组织已经探索过的决策。

更多技巧

Suited for:
Source needed:

立即使用此提示!

问问雷米奥

记住一切,却不做任何整理。

remio满足您对知识的所有需求

了解更多功能

从网站、本地文件夹和文件中获取资源。

从您的整个知识库中获取即时、可靠的答案。

您的工作助手,可在台式机、浏览器和移动设备上使用。

无限次免费录音和转录,非机器人操作。

免费开始

一款本地优先的AI助手,具备个人知识管理功能

为了获得更好的人工智能体验,

remio 目前仅支持Windows 10+ (x64)M-Chip Mac

bottom of page