我的并不是一个真正的问题,它更多的是征求意见 - 也许这甚至不是发布它的正确位置。不过,这里的社区消息灵通,尝试一下也无妨……
我正在考虑如何创建一个高度可扩展的,尤其是高度模块化的后端架构。例如,一个大型站点的整个后端生态系统,它有可能在未来发展成一个大型站点。
这将需要非常高度的关注点分离,以至于不仅可以(例如)替换底层数据库(即从 Oracle 到 MySQL),而且可以替换实际类型的数据库(ed SQL 到 KV,或反之亦然)。
我设想每个子系统在后端生态系统中公开自己的 API 的情况。通过这种方式,API 可以保持不变,而实现可能会随着时间而改变(甚至是根本性的)。
系统必须是异构的,因为它不依赖于特定的语言。它必须能够容纳使用不同语言的模块或整个子系统。
然后我突然想到,我想象的只是网络本身的架构。
所以这是我的讨论点:除了使用(主要)基于文本的协议的开销之外,是否有任何压倒一切的原因不应该以我描述的方式实现复杂的后端架构,或者我是否有一些强有力的理由使用 Twisted、AMQP、Thrift 等通信协议时缺少 m?
更新:在@meagar 发表评论之后,我或许应该重新提出这个问题:使用非常简单、灵活且易于理解的架构(即所有功能公开为一系列 RESTful API)的明显优势是否足以弥补明显的性能损失在后端上下文中使用此架构时会发生什么?