2011-08-24 81 views

回答

4

我会尽量回答这是一个软的解释,而不是功能技术故障:

有人会说Finagle是一个异步消息传递库,允许服务在支持多种协议的同时自由连接(与架构系统集成标准不紧密相关)。

Finagle网站:

欺骗是,你可以用它来建立异步远程过程调用(RPC)客户端和服务器在Java中,斯卡拉,或任何JVM托管语言的JVM的网络堆栈。 Finagle提供了一套丰富的协议无关工具。

另一方面,企业服务总线(ESB)是一种异步消息传递架构,通常符合行业标准和协议。 ESB提倡在系统之间控制和路由消息流,并且服务器可以注册他们的服务,客户端可以注册他们感兴趣的消息。服务器提供的服务可以被注册和版本化。

您通常会发现Finagle被用于网站和后端服务之间的某处。但是,您通常会在大型企业中找到一个ESB,它负责集成诸如财务,支持,销售等系统。

这两种解决方案都提供异步消息传递和缓冲到各种扩展,但并非旨在解决同样的问题。对于ESB,你可能会认为'严格,企业',但对于Finagle,你可能会认为'灵活,网络'。

希望这有助于

更新:

不太相关,但如果你正在探索这个空间,我想看看Kafka这些天。

2

两种解决完全不同的问题:

  • ESB是一个中介的中间件,其提供消息转换和路由,协议适配和其他增值操作(如配器,有保证的递送,幂等过滤...) 。它位于服务消费者和提供商之间,透明地(即,消费者或提供商没有任何改变)提供其不同的功能。
  • RPC系统提供用于执行RPC操作的客户端和服务器技术。
+0

请您将Finagle制作成标签,我没有这些特权。 – Jack

+0

确定:完成。 –

2

RPC和ESB是两种架构模式。虽然RPC通常是一个请求 - 回复并且本质上是同步的,但ESB的工作原理是消息传递(简化解释)和异步本质。 ESB是任何SOA实现的基础。 ESB能够实现松耦合,从而提升真正的灵活性。从实现的角度来看,一个简单的例子如下:

Web服务是一个典型的RPC。消费者与生产者紧密联系,生产者方面的任何合同变化都将需要消费者方面的变化。

在ESB中,服务使用者不直接调用服务生产者。它只是把信息放在公交车上,并根据规则(中介),适当的服务生产者将处理它。如果服务使用者和服务生产者以不同的格式进行交谈,ESB提供了进行转换的工具(例如将邮政编码格式设置为xxxxx-xxxx,将名称分为名字和姓氏等)。

这只是简单的解释。欲了解更多信息,请点击以下链接:

​​

Enterprise Service Bus

相关问题