Hub、Spoke 和 ESB 之间的区别

2024-04-06

我知道对此已经有一个很好的问题,但它并没有真正回答我正在寻找的问题。

据我了解:

1.两者都用作应用程序之间的中心焦点
2.两者都可以在服务/应用程序之间使用路由/中介/转换等

但我真正能看到的唯一区别是,中心辐射型通常有许多不同的格式进入中心(SOAP/REST/XML/JSON...),而 ESB 通常具有标准格式(通常只是 SOAP。)

我还一直读到,与 ESB 相比,中心辐射型引入了单点故障。那么物理部署有什么不同吗?一个集线器拥有所有可能的端点,并且 ESB 具有跨多个集线器部署的端点?那么 ESB 只是多个集线器(需要更好的词语)?

谁能帮我解决这个问题吗?


这里没有确切的答案,因为您可以将 ESB 作为一种特定的设计模式来谈论,或者作为关于软件集成工具和 SOA 的演变的论述。

ESB 作为一种设计模式意味着您可以使用客户端可以轻松插入和拔出的总线来管理不同服务之间的通信。这通常是通过强制他们使用标准数据格式和协议来完成的,而使用 Hub and Spoke,您可以为每个客户端使用自定义连接器和数据转换。这限制了运行多个集成时可能遇到的问题数量,但 ESB 中仍然可能存在单点故障。

ESB 作为一种话语(或营销术语)是一个更复杂的问题,人们争论什么是“真正的 ESB”。有人说您需要一个模块化架构,您可以在其中选择部署哪些组件,或者您需要能够将组件分布在不同的机器上以允许扩展和容错。在极端的定义中,您甚至需要将数据转换器部署为分布式服务。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hub、Spoke 和 ESB 之间的区别 的相关文章

  • Jersey 2.0:创建重复作业

    在我们的 REST Service 中 我们想要实现一个每 10 秒检查一次的作业 所以我们认为我们可以使用 Quartz 来制作一个涵盖此内容的作业 但问题是 我们需要注入一个单例 因为它在作业中使用 而作业似乎不在我们的服务上下文中 因
  • 如何返回空实体的响应状态 405?

    如何在 java REST 中返回带有空实体的响应状态 405 POST Path path public Response createNullEntity return Response created null status 405
  • 为什么要分离接口和实现?

    在生产代码中 我经常看到定义如下的类 public interface SomeComponent Some methods public class SomeComponentImpl implements SomeComponent S
  • 如何在无 null 设计中实现 List、Set 和 Map?

    当您在大多数情况下可以返回 null 空对象以避免 null 时 这很好 但是像 Collection 这样的对象呢 在爪哇 Map回报null if key in get key 地图上没有找到 我能想到的最好的避免方法null在这种情况
  • Flask 无法识别两个 URL 参数

    我正在尝试将两个参数发送到使用 Flask 路由的 URL If I do curl i http 127 0 0 1 5000 api journeys count startStationName Hansard 20Mews 20Sh
  • 在 RESTful WCF 中混合 XML 和 JSON,无需单独的方法

    我有一个 RESTful WCF 服务 可以返回 XML JSON 或 JSONP 具体取决于参数 例如 service svc stuff format xml or service svc stuff format json callb
  • SOA架构数据访问

    在我的 SOA 架构中 我有几个世界碳基金服务 我的所有服务都需要访问数据库 我应该创建一个专门的 WCF 服务来负责所有数据库访问吗 或者 如果我的每个服务都有自己的数据库访问权限 可以吗 在一个版本中 我在一项服务中只实例化了一个实体层
  • 信任所有将文件发送到 https Web 服务的 java 类

    我需要编写自己的类来告诉 mule 与服务 wsdl 的 https 连接已验证 我的 mule 项目已经接近完成 但最后一块丢失了 在特定的 url 发送文件 我想要实现的目标 建立连接并将 xml 发送到目标 url 读取 xml 格式
  • 正确的需要授权的资源的http状态代码

    如果用户尝试访问需要用户登录的页面 则返回的正确 http 状态代码似乎存在很多混乱 那么当我显示登录页面时基本上会发送什么状态代码 我很确定我们需要在4xx range 我在这里讨论的不是 HTTP 身份验证 因此我们至少不会使用 1 个
  • PayPal Rest API for Payments 在沙箱中返回 NULL

    我有一个 PayPal 沙盒帐户 我可以在 PHP 上使用curl 通过 api 检索令牌 但是处理测试卡只会返回 null 有人看到代码有问题吗 这是 PayPal 沙盒的已知问题吗 下面代码片段中的客户端是伪造的 但是 如前所述 使用我
  • 对过期会话进行休息调用:HTTP 401 响应导致浏览器显示登录窗口

    我编写了一个 HTML 5 应用程序 它使用 AngularJS 并与在 Tomcat 上运行的 Java REST 后端进行交互 我使用 Spring Security 来处理登录和安全性 当用户进入网站时 他将被转发到登录页面 该页面创
  • Jersey 将 Weld 托管 bean 注入 ConstraintValidator

    我已经花了几个小时寻找解决方案来解决我的问题 但我无法让它发挥作用 我想将 Weld 管理的服务注入 ConstraintValidator 中 该 ConstraintValidator 用于验证发布到 JAX RS Rest Servi
  • WCF Rest 服务还是 ASP.NET MVC 控制器/操作?

    如果有人能提供一些关于哪种更有益的见解 我将不胜感激 WCF 中的 RESTful 服务可以提供与 ASP Net MVC 控制器相同的功能 即可以使用控制器 操作适当地形成 URL 使用其中一种比另一种有真正的好处吗 WCF休息服务将提供
  • 发送 Microsoft Graph 请求事件返回 400

    我能够通过将 JSON 请求发布到https graph microsoft com v1 0 me calendar events https graph microsoft com v1 0 me calendar events 我已经
  • 如何在 Jersey 容器中配置欢迎文件 (HTML/JSP)

    我有一个 Jersey RESTful Web 服务项目 我已经在中配置了 Jersey 容器web xml一切正常 在同一个项目中 我引入了一个 HTML 页面并包含在
  • 按照约定应返回哪些 REST PUT/POST/DELETE 调用?

    根据 REST 意识形态 PUT POST DELETE 请求的响应正文中应该包含什么 返回码呢 是HTTP OK enough 如果有的话 这种约定的原因是什么 我发现了一篇描述 POST PUT 差异的好文章 发布与放置 http ww
  • 根据客户端发送 HTML 或 JSON 响应

    我有一个带有 Eloquent 实体及其各自的 Laravel 应用程序RESTful 资源控制器 http laravel com docs 5 0 controllers restful resource controllers 如下所
  • 使用 LINQ to SQL 的 .NET 架构的最佳设计实践(DAL 必要吗?我们真的可以使用 POCO吗?要采用的设计模式吗?)

    我避免在 net arch n 层架构上编写看起来像是另一个线程的内容 但请耐心等待 希望我和其他人一样 在选择用于企业应用程序的架构时 考虑到当今的趋势和新兴技术 仍然没有 100 满意或不清楚应采取的最佳方法 我想我正在寻求大众社区对方
  • Yammer API 限制

    Yammer Rest api 文档表示 每个应用程序每个用户在 10 秒内最多可以发出 10 个请求 问题 什么是user这里 是为当前经过身份验证的 yammer 用户发出请求的 IP 地址还是承载令牌 如果我们所有的用户都使用相同的外
  • 为什么 Linux 对目录使用 getdents() 而不是 read()?

    我浏览 K R C 时注意到 为了读取目录中的条目 他们使用了 while read dp gt fd char dirbuf sizeof dirbuf sizeof dirbuf code Where dirbuf是系统特定的目录结构

随机推荐

  • ASP.NET MVC 4 / Web API - 为接受插入 Razor 渲染器:text/html

    我正在使用 ASP NET MVC 4 Web API 创建 RESTful Web 服务 对于 API 访问 我返回 JSON 但一旦一切正常工作 内容协商应该默认适用于 XML 和 JSON 由于我正在致力于实现真正的 RESTful
  • Apache Hadoop Yarn - 核心利用率不足

    无论我如何修改设置yarn site xml即使用以下所有选项 yarn scheduler minimum allocation vcores yarn nodemanager resource memory mb yarn nodema
  • SocketException:套接字已关闭

    我正在使用 Java Sockets 创建一个聊天应用程序 并且得到了SocketException socket closed关闭服务器时 我收到错误即使我从未尝试连接客户端 只是停止服务器将会出现此套接字关闭异常 我知道错误意味着什么
  • 如何检测Azure Add-AzureAccount登录是否失败或被取消?

    在我使用的 Azure PowerShell 脚本中Add AzureAccount将用户登录到 Azure 但是如何检测用户是否未成功完成登录以便我可以中止脚本 另一种方法是使用 try 和 catch 块 try Add AzureAc
  • Haskell opengl 纹理 GLFW

    我一直在尝试获取一些仅使用 texcoords 在正方形上显示纹理的脚本 如果可能的话 您可以编辑脚本 以便它可以正常工作 从那里我可以了解您是如何做到的 因为这就是我学习的方式 import Control Monad unless wh
  • 找不到“AllowAnonymous”

    一切正常 直到我安装 包管理器控制台 邮政包 然后卸载并安装旧版本 现在我收到了以前没有的错误 错误 The type or namespace name AllowAnonymous could not be found are you
  • 引用类型存在于堆上,值类型存在于堆栈上

    在阅读 C 深度 时 我正在阅读标题为 引用类型位于堆上 值类型位于堆栈上 的部分 现在我能理解的是 主要针对 ref 类型 class Program int a 5 stored in heap public void Add int
  • 如何从 Nagios-Report Perl 模块打印 Nagios 服务 UP 时间百分比

    我可以打印出来HostUP 时间百分比从Nagios 报告 Perl 模块 http search cpan org hopcrofts Nagios Report 0 003 与以下代码 usr bin perl use strict u
  • 如何在iPhone中设置标签栏中的徽章值?

    我使用以下代码在当前选项卡栏中设置徽章值 但它在选项卡栏中不可见 self navigationController tabBarItem badgeValue 1 将徽章值放入选项卡栏中的正确方法是什么 这是我访问 tabBarItem
  • 每次服务器重新启动后 MySQL 都会损坏

    我有一个有点奇怪的问题 我在 Windows 环境中运行 MySQL 和 Drupal 站点 不是出于选择 但这就是事情的结果 大多数时候该站点都很好 但是每次服务器重新启动 从更新或维护 时数据库将损坏 当我登录 MySQL Work b
  • Android 圆形边框表格

    如何在 Android 中制作一个带有圆形边框的表格 如下图所示 我认为 Androidbase 链接到了错误的问题 他最近问了一个类似的问题 这是answer https stackoverflow com questions 23795
  • Git 提交与旧的、已失效的用户而不是我现在拥有的用户相关联

    我的机器曾经有一个与某个 GitHub 帐户 account a 关联的 RSA 密钥 我从钥匙链中删除了该密钥 创建了一个新密钥 将其添加到链中 然后确保我在 GitHub 上拥有的任何其他帐户不再有任何与其关联的 SSH 密钥 请注意
  • Android Studio 1.5.1中的JSON解析

    我在 Eclipse ADT 上进行了 JSON 解析 并且运行完美 但是 当在 Android Studio 上使用相同的代码时 它在 DefaultHttpClient 和该块中的所有其他单词中显示错误 这是我的 JSON 解析器类 J
  • DATE 字段和 MONTH() YEAR() 函数上的 INDEX

    日期 日期时间列上的索引未针对 YEAR col MONTH col 函数进行优化是否仍然正确 比尔 卡文给出了相当明确的答案here http forums mysql com read php 115 86654 86654 msg 8
  • Chrome 控制台行为中的双美元 $$() 与美元符号 $()

    在我们的项目中 当 Chrome 控制台中一个美元符号使用 与两个美元符号 时 有不同的功能 besides已知的区别是 返回一个数组 而 返回第一个元素 例如 特定元素的选择器 具有一美元和两美元查询 my class my attrib
  • 是否可以在 django 管理命令中创建子解析器?

    标题确实说明了一切 但我目前有这个 但它不起作用 class Command BaseCommand help Functions related to downloading parsing and indexing the conten
  • serverSideTranslations 不适用于动态路由

    我在互联网上做了一些研究 根据文档和其他答案 我无法使其发挥作用 所以现在我一无所知 我有一个动态路线并翻译索引 这在构建时不起作用 路径是 user id index js export const getStaticPaths loca
  • 如何使用 JavaScript 将数据从 HTML 表单发送到 Google Spreadsheet?

    我正在尝试构建一个网络应用程序 用于记录 Google 电子表格中表单的数据 为了做到这一点 我have使用 JavaScript JSON 或 AJAX 请求也可以 但我cannot使用 Google Apps 脚本 因为我需要用户继续使
  • Scala.2.10.1 的标准库还是 Akka?

    我要使用Futures and Promises from scala concurrentScala 中的包2 10 1 我应该使用Akka反而 Akka future 和 Promise 在 2 10 中被移入 Scala 标准库 所以
  • Hub、Spoke 和 ESB 之间的区别

    我知道对此已经有一个很好的问题 但它并没有真正回答我正在寻找的问题 据我了解 1 两者都用作应用程序之间的中心焦点2 两者都可以在服务 应用程序之间使用路由 中介 转换等 但我真正能看到的唯一区别是 中心辐射型通常有许多不同的格式进入中心