使用相同的数据库实例加载Moqui的平衡实例

时间:2018-06-07 11:56:23

标签: moqui

Moqui的配置是否可行?我在多个实例(例如this questionframework doc pages)主题上看到的所有内容都涉及每个实例数据库,而不是常见的共享数据集。

我们需要在每个应用程序实例中使用相同的数据(以及一致的缓存),以便我们可以跨多个实例对最终用户进行负载平衡。我们将在全球范围内支持用户,因此我们可能需要创建更接近用户实际位置的应用程序实例,以减少延迟;我们还希望确保在基于云的部署中充分利用弹性水平扩展。

1 个答案:

答案 0 :(得分:0)

多租户和更新的多实例变体与您正在寻找的相反。它们适用于大量小型实例,而不是针对同一数据库运行多个应用程序服务器实例的单个大型分布式实例。

默认情况下,对于群集支持,Moqui使用Hazelcast,尽管这是通过一系列可以与其他分布式计算工具一起实现的接口完成的。以下是使用Hazelcast运行多服务器群集所需的组件:

https://github.com/moqui/moqui-hazelcast

群集最重要的方面是实体(数据库)缓存和Web会话复制的缓存失效。它还支持其他用于分发工作负载和数据的工具,如自述文件中所述。

对于跨多个数据中心或地理区域的分布,存在更大的问题。 Moqui Framework主要用于需要严格事务一致性的会计,库存管理等事务性应用程序。大数据或NoSQL风格的最终一致性和其他类似方法与ERP和其他交易应用程序不相称,没有办法在数据库中使用锁等来防止资金的双重支出,双重预留或库存发放等

考虑分布式关系事务数据库的挑战,即多主数据库集群。对于多主设置,事务必须先传播到所有主节点并在其上提交,然后才能将其视为已提交。即使所有主节点都在同一本地网络上,这也会对性能产生影响,如果主节点位于不同的数据中心或地理区域,则会对性能产生不合理的影响。

这方面的主要解决方案是应用程序级别的地理分片,通常反映具有地理划分的大型企业的结构。 Moqui使用Entity Sync或其他工具为这类事物提供了一些工具级支持,以便将数据从地理区域提供给可以完成报告等的中央服务器(或集群)。对于这种部署,没有OOTB实体同步或其他配置,它还没有被要求的东西。这对于极大的全球性公司来说才有意义,而不是Moqui对我所知有用的市场。

如果您正在寻找像电子商务这样的事情,并且需要更广泛地分发电子商务网站,那么问题就比协调跨多个全球实体的广告资源或会计更容易。因此,在不同的数据中心中只有单独的电子商务实例将订单/等数据提供给Moqui ERP实例,非常类似于任何典型的外部电子商务应用程序。