我对ESB或Biztalk不太熟悉,如果您已经拥有Biztalk,我正试图从EAI的角度了解什么是最有意义的。据我所知,Biztalk是一个消息代理(集线器和分支),ESB模式是一个反代理,其中概念上的“总线”由各个分布式组件组成,这些组件以某种方式相互通信。消息代理本质上代表单点故障,与ESB不同,ESB中的一个组件故障不会导致整个“总线”停机。我的理解是,Biztalk是单片的,因为消息传递、业务流程是紧密耦合的,扩展是有问题的。
如果当前的情况是:
直接使用Biztalk或Biztalk ESB toolkit来实现ESB功能有意义吗?或者使用合适的ESB实现(如基于Azure服务总线的NServiceBus或Windows服务总线)有意义吗。与使用适当的ESB相比,直接使用Biztalk实现EAI有哪些优点和缺点。每个应用程序是否都会对Biztalk产生硬依赖,这是否可取?
我将把这作为一个开放式的讨论,因为没有正确或错误的答案。
@斯图尔特:谢谢你的回复。我已经阅读了您发布的几个链接,但仍然没有弄清楚Biztalk作为ESB解决方案与使用NServiceBus之类的解决方案是否有意义。两者似乎都以某种方式实现了“ESB”模式。问题是哪一个有更干净的实现、更好的开发经验和较低的启动时间。到目前为止,我的评估(仅限于纯研究)是可以使用Biztalk,但这很痛苦,需要非常专业的开发技能。延迟和扩展是有问题的,Biztalk最终将被吸收到(Azure?)服务总线和Biztalk SKU将不再存在。另一方面,像NService bus这样的框架具有相对较低的启动时间,可以很容易地被具有良好性能的开发人员接受。NET编程技能,可以轻松地与Biztalk进行接口。鉴于上述情况,即使您目前拥有Biztalk,还是选择Biztalk路线,或者选择合适的ESB(如NService Bus),这是否仍然有意义?
我相信你的开放式问题的许多组成部分已经涵盖了SO:
然而,依我看,这只是一个有缺陷/短视的实现,这将导致应用程序和endpoint之间的紧密耦合。松耦合很容易实现:(即使没有ESB工具包):
单点故障也是可以避免的:
在我看来,将BizTalk用作ESB时的致命弱点是缺乏保证的延迟,例如,在这里,如果BTS进入节流状态,这种延迟就会加剧。
最新消息
在我看来,选择归根结底是一个问题,即您是否能够控制环境中的所有系统。
如果您正在集成一个内部企业,该企业仅由您直接控制的同质、当代(主要是SOA和EDA)应用程序组成,MassTransit
或NServiceBus
可能比这项工作更能提高生产率和启动时间。
MySQL 是目前世界上最流行的开源关系数据库,大多应用于互联网行业。比如,在国内,大家所熟知的百度、腾讯、淘宝、京东、网易、新浪等,国外的 Google、Facebook、Twitter、GitHub 等都在使用 MySQL。社交、电商、游戏的核心存储往往也是 MySQL。 任何产品都不可能是万能的,也不可能适用于所有的应用场景。那么 MySQL 到底适用于哪些场景又不适用于哪些场景呢? 1.
我需要对表的总数进行断言,当我在映像表中为总数编写XPath时,这样做对所有场景都不起作用。我知道原因,因为表是动态的,所以有时它只有1个图像,有时它有5个图像,所以我很难编写适用于所有场景的x路径。 对于我所写的附加图像:在这里输入图像描述WebElement totalElement=driver。findElement(By.xpath(“/*[@id=“image_table”]/tbod
我试图在独立应用程序中使用AspectJ,但似乎不起作用。 以下是我创建的类- 同样在src/META\u-INF文件夹下,我创建了aop。xml文件 然后在我尝试运行测试时从命令行执行。java使用下面的命令实现系统。出来通知中的println无法打印- 有人能告诉我我做错了什么吗? 谢谢AA
本文向大家介绍react的mixins有什么作用?适用于什么场景?相关面试题,主要包含被问及react的mixins有什么作用?适用于什么场景?时的应答技巧和注意事项,需要的朋友参考一下 1.mixin的作用是抽离公共功能,不存在渲染dom的需要,所以它没有render方法。如果你定义了render方法,那么他会和组件的render方法冲突而报错。 2.mixin不应该污染state,所以他也没有
当演员在另一个班级时,我很难让MoveToAction在演员身上工作(menuBackground)。我在下面附上了相关代码——这根本不会让演员动起来。 我成功地将其他操作应用于MainMenuScreen类中的根阶段,以及MainMenuScreen类中的其他参与者(按钮),但没有成功地将操作应用于单独类中的参与者。 我尝试过将MoveToAction放在Menubackground类中的act
null 因此,正如您所看到的,这是一个极其异步的场景。如果我使用Cucumber来触发它,我可能可以创建一个步骤定义,在晚上10点之前将100美元的余额插入到帐户中,但使用Cucumber来触发在晚上11点运行批处理是不现实的,因为批处理作业通常是由操作员使用他们自己的调度工具(如Control-M)执行的。然后让cucumber等几个小时,听几个小时,然后验证应计利息,我不确定我是否会遇到超时