目前,我们正在运行一个Java integration的应用程序在一个Linux框。第一个概述的应用程序。

Java应用程序是一个独立的应用程序(没有部署任何Java EE应用程序服务器等OracleAS,任何,BOSS等)。通过独立的,我的意思是它不是一个桌面应用程序。但是这是从命令行运行,从主要类。用户不直接互动有了这个应用程序。消息都甩到队列中使用其随后宣读了我的应用程序,它不断运行的24/7。我不会符合此作为桌面应用程序,因为用户没有直接的相互作用。(不知道这是正确的推理有资格作为一个)。

它使用弹簧和连接到WebSphere MQ和Oracle数据库 我们使用弹簧的听众(春天的消息驱动的独的)这听上的队列WebSphere MQ。一旦有一个消息在队列中的应用程序的读消息从MQ和垃圾场(insert/update)入数据库。

现在的问题是:

  1. 我们可以如何横向扩大这个应用程序?我的意思只是把更多的箱和运行多个实例,这同样应用程序,这是一个可行的办法?
  2. 我们应该考虑搬离弹簧MDPs到EJB多边开发银行?从而它部署在该应用程序服务器。是否有任何添加了受益于通过这样做?
  3. 有一个请求的应用程序的高可用(公顷)?是什么建议的方法或战略,可以放在地,使一个独立的应用程序,哈?
有帮助吗?

解决方案

不会的"独立"=="桌面"?

怎么用户进行互动与控制器拥有消息驱动的豆子?

我的意见你的问题:

  1. 你可以通过添加更多信息的听众听众游泳池,因为每个运行在其自己的线。你应该相匹配数据库的大小池连接到消息的听众,因此必须增加。这样做之前,加入更多的服务器。确保有足够的内手头上。
  2. 我没看到什么EJB MDB买了你在春天的MDB。你跟参照"程序服务器"。你具体地说Java EE应用程序服务器等任何WebSphere,BOSS,我们?因为如果你们部署的弹簧在Tomcat我会考虑Tomcat是"应用程序服务器",在这次谈话。
  3. 哈装置负荷的均衡和故障.你需要有数据库的同步或热redeployable.同样的队列。F5是一个伟大的硬件解决方案负荷的均衡。我想谈谈您的基础设施伙计如果你有一些。

其他提示

另一个选择是 兵马俑, 一个框架,不正是你想要的;运行上的应用程序的几个机同时并平衡之间的负载。

横向扩展的任何应用程序最终将遇到的限制需求的数据的增加而增加。这些限制是由负荷和服务/数据库的性能。在某一点,如果需求和负荷的增加与扩展、服务器的数量/数据库将有增加。根据数据存储服务/数据库将不得不要重复和同步的,或某种形式的散列算法将需要采用分数据在多个服务器上。作为你的数量增加的同步数据来源的成本的复制/同步的那些服务器增加。这就是为什么哈希种方法可能更具吸引力以尽量减少成本。

真正的高可用性的解决方案是非常昂贵的实现。我已经看到各种程度的公顷,但通过定义,这意味着绝对很少或没有时间,或者失去的访问数据来源。为实现这需要大量的冗余的硬件、网络和软件,能够利用多余的硬件,而不会失去的能力得到的数据,当一数据来源将失败。硬件故障是不可避免的,它将发生,以及停电和其他的随机行为的性质。这取决于如何关键的这一数据是一种公顷的解决方案还将需要多个数据中心在多个独立的电力网。这显然是要 非常 昂贵的,所以这一切都取决于如何关键的这一数据是最终用户。

因此,哈是一个极端的情况要求一个昂贵的架构。我发现大多数时候,人们有兴趣只是最大限度地减少停机时间,并且根据大小的数据来源可以实现这相当便宜地加热备件的数据来源。

  1. 横向扩展的一个消息驱动的应用程序是很容易的...大部分时间。你当然可以添加另一条消息,监听器操作上的相同的队列。看出来了,但是,因为你可能有细微的依赖关系的排序的信息。他们可能不是一个问题,现在,只有一个处理器,但是有多于一个保证您的信息将被处理"的秩序"。
  2. EJB MDPs不提供任何超出多边开发银行春季.坚持什么样的工作。
  3. 水平扩展的处理器是一个开始,但这一需要更多的讨论。

为哈,你需要澄清的要求。"高可用性",是一个有趣的问题进队列中的基于应用程序。如果你的应用程序下来几分钟,信堆积在队列中。只要可以获得您的应用程序的启动和运行,这些信息将仍然得到处理,只是多一点的延迟。它可能是值得询问"什么是可接受的最大延迟时间为一个消息吗?"

有可能是一些部件的关切硬件故障,损失数据中心,等等。这些不加以解决的水平扩展在相同的位置。你会需要复制的所有组成,在每一个层:的队列本身,处理器,后端数据库,以及所有网络连接硬件。

这是一个昂贵的提议,因此它也是值得一问的是,"什么是三角洲的年均损失的预期寿命的停机时间之间的一个公顷的情况和非公顷的情况?" ALE包括的直接损失和法规或法律费用,因此这是一个很好的方式捕获的成本的停机时间。

.1.创造更多的听众在队列中的可能规模的消费者。作为一个消费者死亡,剩余消费者可以继续运行。注:你MQ和数据库需要有高可用性的解决方案。

.2.不知道有什么区别的应用程序服务器将使在你的情况。也许你可以解释其功能,你打算使用?

.3.看到我的答案1。对于公顷。

你有没有试图使多个盒子?我认为您可能会看到医生的MQ?运行多个箱子可能需要一些configuartion在你MQ但它将运行ISA

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top