gpt4 book ai didi

architecture - 微服务:什么是智能端点和哑管道?

转载 作者:行者123 更新时间:2023-12-03 12:07:22 24 4
gpt4 key购买 nike

我读过 Martin Fowler 的一篇文章“Microservices”,发现很难理解 智能端点 s 和 哑管 .请解释这些术语,欢迎举例。

最佳答案

我没有读过这篇文章,所以我只能推测他的确切含义,但是当他以 ESB 作为针对微服务的示例和 ZeroMQ 作为针对微服务的示例时,我希望我的推测非常准确:

Unix(和Linux)的思想之一是构建小的独立应用程序并通过管道连接它们。我使用的最常见的两个命令集可能是 psgrep像这样:ps aux | grep PROCESS_NAME - 在这里你可以看到一个哑管道,它只转发 ps 的输出到 grep 的标准输入.

ZeroMQ 等其他消息传递系统的工作方式类似,尽管它们可能具有更多的复杂性,例如循环分发和可靠交付。 Erlang 作为一种语言建立在小型智能端点之上,在彼此之间发送消息。这里的优势很明显,文章中也提到过,小应用更容易维护,解耦更容易扩展。

另一方面,微服务是最常见的大型企业应用程序,例如前面提到的企业服务总线。我并没有真正与那些足以给你一个具体例子的工作,但通常这些总线包含许多功能,这些功能要么通过脚本要么配置包含。此类功能主要包括具有高级路由的可配置工作流,甚至可以转换消息,因此不同的端点可以处理它们。

一个例子可能是 - 如果您希望在系统中执行一些预先操作,例如更改已经运行的项目中的需求,这可以启动一个工作流,其中 ESB 将围绕这些更改的需求自动向不同的参与者发送不同的通知并等待 1 个或多个参与者确认,然后才会应用此更改。这基本上是相反的——哑端点(它只是向/从总线发送/接收数据)和一个非常智能的管道(总线,可以配置或编写脚本来处理所有可能的企业场景)。

我非常有信心存在处理类似场景的企业服务总线,这些总线与简单的“哑巴”类似 ZeroMQ 的消息传递框架相反。

基本上,逻辑必须在某处实现——要么在大 ESB 中,要么在端点中。微服务的想法是将其放入端点而不是总线,并具有与 unix 应用程序类似的理念。

关于architecture - 微服务:什么是智能端点和哑管道?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26616962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com