📅  最后修改于: 2020-10-30 10:02:56             🧑  作者: Mango
考虑一种情况,您所在镇上的大型在线杂货店(例如印度的Bigbasket)邀请您为他们设计IT解决方案。稳定且可扩展的解决方案将帮助他们克服当今面临的软件维护问题。这家在线商店在过去的十年中一直经营着自己的业务。商店接受来自客户的不同类别产品的在线订单,并将这些订单分发给相应的供应商。例如,假设您订购了一些肥皂,油和牛奶;这三个项目将分别分发给三个供应商。然后,这三个供应商将把他们的供应品发送到一个共同的分销点,交付中心将从那里完成整个订单。现在,让我们看看他们今天面临的问题。
该商店开始营业时,正在接受以逗号分隔的纯文本文件中的订单。在一段时间内,商店切换到消息驱动的订单放置。后来,一些软件开发人员建议使用基于XML的订单放置。最终,商店甚至改编了Web服务界面。现在,真正的问题来了。现在,订单有不同的格式。显然,公司每次升级订单接受格式时,都不想破坏以前部署的界面,以免引起客户的困惑。
同时,随着业务的增长,商店会定期向其供应商添加新的供应商。每个此类供应商都有其自己的接受订单协议。我们再次面临整合问题;我们的应用程序体系结构必须具有可伸缩性,以利用其独特的订单下达机制来适应新供应商。
整个情况如下图所示-
现在,让我们看看Apache Camel如何帮助您为所描述的场景提供一个优雅,可维护,可扩展的解决方案架构。
在继续解决方案之前,我们需要做一个小假设。对于本教程中的所有讨论,我们将假定在线订单以XML格式下达。在整个讨论中将使用的订单文件的典型格式如下所示:
-
Cinthol
Original
4
25
-
Cinthol
Lime
6
30
-
Saffola
Gold
2
649
-
Fortune
Sunlite
1
525
-
Milk
Amul
Pure
2
60
在本教程中,我们将使用上述XML模板来说明Camel示例。