2

我正在读一本关于设计模式的书(旧版)“面向模式的软件架构”。在专门介绍 Client-Dispatcher-Server 的章节中,SunRPC 被称为 Client-Dispatcher-Server 体系结构,portmapper 在 Client-Server 协商中充当 Dispatcher。我实际上从未使用过 SunRPC,尽管我或多或少知道它是如何工作的。

我有三个问题:

  • SunRPC 作为 Client-Dispatcher-Server 机制有哪些软件限制(在接口和功能方面)?
  • 今天有什么类似的更好的系统来实现相同的客户端-调度程序-服务器架构(不管语言)?
  • Broker 架构和 Client-Dispatcher-Server 架构之间的内在区别是什么?

我确实意识到问题很多而且很复杂。我考虑过拆分成独立的问题,但这次提交的重点是关于一般架构原则和限制,并以一个具体示例(SunRPC)作为典型案例。出于这些考虑,我先发制人地宣布,我将在有机会时立即提供 100 个代表的赏金,无论我在宽限期内对答案的满意度如何。

4

2 回答 2

1

这是一组很好的问题。您可以尝试将siemens-patterns列表用作 uiuc。最后我知道它的数量很少,但那里有很多敏锐的人,甚至是一些作者。您可以询问并分享您的启示。

于 2010-09-14T00:25:05.590 回答
1

这个术语很不寻常(至少对我来说),也许这就是你没有得到很多回应的原因。从第 327 页的图表来看,client-dispatcher-server 是指在连接时发生对真实服务器的重定向,而代理则介入整个通信(第 109 页)?假设,现代术语将分别是“重定向”(或“名称服务”或“目录服务”等)和“代理”。主要区别在于延迟和可用性之间的权衡,即代理可以在服务器死机时进行修补,而调度程序则不会;但是经纪人会为管道增加一点处理时间。

两种模式的现代实例都可以在大容量网站上找到:它们通常使用循环更复杂的负载平衡 DNS 服务(调度程序)以及缓存反向代理(代理)。

我对 SunRPC 及其局限性了解不多,而且我不知道它是否可以以循环方式使用(在 Google 中搜索“ portmap load balance ”并没有发现任何 FWIW)。端口映射器表中的条目通常指向运行在同一主机上的单个服务器,即这种机制主要用于避免将众所周知的 TCP 端口分配给 SunRPC 服务。

于 2010-09-14T09:06:07.160 回答