有没有办法将 Hybris 模块拆分到不同的托管服务器

Is there a way to split Hybris modules to different managed servers

我在单个 Weblogic 托管服务器上部署了 Hybris。问题是在性能测试期间发现将 Admin Cockpit 和 Product Catalog 等 Hybris 模块拆分到不同的托管服务器会更好。


EDIT

I Suppose I should also mention the fact that my Infra Team is asking me to separate out the EARs so that in case of code changes, only the affected module gets redeployed and not the whole bunch. That way even if we let the performance front out, still I need the splits


现在我的问题是 Hybris 生成单个 EAR 文件。

有没有一种方法可以分解 EAR 文件并在其中选择模块...

所以结构将是:

托管服务器 1

托管服务器 2

在此之后,部署链接将通过 URL 配置重定向

有什么建议吗??

我不确定这是否会消除您遇到的问题,因为我认为管理控制台本身不会造成性能瓶颈。 什么是性能问题?性能影响通常来自 admin/backend 触发的功能,例如cronjobs(例如使用 stock/product 信息更新产品目录),或 solr 索引作业等

我在 hybris 集群环境中看到的一种常见方法是设置一个由多个节点组成的集群,并为后端保留一个节点 activity(以便在专用节点上执行昂贵的 cronjobs 运行处理店面请求的负载均衡器不提供服务)。 但我认为从代码部署的角度来看,工件仍然是一样的。 希望这至少可以作为思想的食粮:)

编辑

简而言之:访问同一个数据库的多个hybris服务器需要设置为集群。 具有不同扩展集的多个 hybris 服务器不能共享同一个数据库(因为数据库布局会不同)。

老实说,这对我来说不是一个好方法。 在 hybris 中,您将使用不同的 localextension.xml 文件(定义哪些扩展(即模块)是代码工件的一部分)。话虽如此,如果您有两个截然不同的 localextensions.xml 文件(一个用于您的产品目录,一个用于管理),生成的 'admin' 部署工件将不包含 'catalog' 部署的数据模型,所以持久层不匹配。换句话说,在您的管理服务器中,您甚至无法看到在您的 'catalog' 服务器中定义的数据模型,因为未安装 'catalog' 特定扩展。

如果您没有正确设置集群环境,则除非您主动 refresh/purge 那里的 hybris 缓存,否则不会在另一台服务器上注意到一台服务器上的更改(写入数据库) , 因此共享同一个数据库的多个 hybris 服务器只有在服务器设置为集群时才能运行。

我认为如果您的管理服务器应该处理实际的 'catalog' 数据,它们都需要在其 localextensions.xml 中定义相同的扩展集才能在全部。 共享同一个数据库而不知道有一个集群(或者基本上其他 hybris 服务器访问同一个数据库)在 IMO 上是行不通的。

我仍然认为最好的办法是部署相同的代码工件(在集群环境中,您仍然可以为每个节点设置不同的 behavior/configuration)。如果你想减少停机时间等,你仍然可以(如果你 100% 确定)部署一个新版本,其中的代码更改只影响你的 'catalog' 节点,但如果你想减少停机时间等,它总是一个风险在每个节点上有一个具有不同部署的集群。

祝你好运:)