【问题标题】:What is the best style of integration considering a large volume of transactions and guaranteed delivery?考虑到大量交易和有保证的交付,最好的集成方式是什么?
【发布时间】:2017-05-11 06:43:35
【问题描述】:
考虑到一家在该国拥有超过 1000 个销售点的公司,需要在一天中多次将您商店中记录的销售额发送到您的销售中心。
确保交付的最佳集成策略是什么?
在每个销售点使用 JMS 队列以供中间件使用。向 Midleware 发送 xml 消息并等待回调以确保收到,还是通过文件发送销售?
【问题讨论】:
标签:
integration
esb
middleware
messagebroker
osb
【解决方案1】:
对于每天发送几次(我们说的是高容量但低速),您可以使用文件。例如,处理的引用和确认可以通过 JMS 或 HTTP 发送。在保证交付方面,您需要使用应用程序级别的确认对此进行编码。或者,对于传输文件,您可以使用一些框架,如 StreamSets 或 Nifi。这些是为不同类型的输入协议设计的,并且非常灵活。
一天中的几次并不是很多。将来您肯定希望它在每个事务的基础上实时工作,因此您需要重新设计您的系统。这完全取决于您发送的这些数据对您意味着什么。在这种情况下,JMS 很可能会做得很好。我想,1000 个卖点意味着你每分钟会有 1000 笔交易。这可以通过当今的商品硬件和众所周知的 JMS 队列管理器(例如 MQ 或 ActiveMQ 等)毫无问题地处理。
我看到您附加了一些标签,例如“esb”。 ESB(如果您有的话)可用于控制消息(如果您有一条 JMS 消息指出某些新数据在特定位置可用或确认处理)。我不会使用 ESB 来传输您将拥有的大文件。
如果你真的想在像 ESB(不仅仅是队列管理器)这样的“智能”中间件中传输所有数据,那么你可以查看一些面向大数据的中间件的组合,例如检查 Hortonworks HDF 是如何做到的,或者请参阅上面提到的 SteamSet。