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

时间:2016-01-27 08:19:57

标签: deployment weblogic ear hybris

我在单个Weblogic受管服务器上部署了Hybris。问题是在性能测试期间发现将管理主控室和产品目录等Hybris模块拆分到不同的受管服务器会更好。

  

修改

     

我假设我还应该提一下这样一个事实,即我的Infra团队要求我将EAR分开,这样在代码更改的情况下,只会重新部署受影响的模块而不是整个部分。那样即使我们让性能领先,我仍然需要分裂

现在我的问题是,对于构建,Hybris会生成一个EAR文件。

有没有办法,我可以分解EAR文件并在那里选择模块......

所以结构将是:

受管服务器1

  • Hybris Core
  • Admin Cockpit

受管服务器2

  • Hybris Core
  • 产品目录

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

任何建议??

1 个答案:

答案 0 :(得分:0)

我不确定这是否会消除您遇到的问题,因为我认为管理员驾驶舱本身不会导致性能瓶颈。 性能问题是什么?性能影响通常来自管理/后端触发的功能,例如, cronjobs(例如,使用库存/产品信息更新产品目录)或solr索引作业等。

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

修改

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

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

如果你没有正确设置集群环境,一台服务器上的更改(写入数据库)将不会在另一台服务器上被注意到,除非你主动刷新/清除那里的hybris缓存,所以多个hybris共享相同数据库的服务器仅在服务器设置为群集时才起作用。

我认为如果您的管理服务器应该处理实际的“目录”数据,它们都需要在其localextensions.xml中定义相同的扩展集,以便它可以工作。 共享同一个数据库而不知道有一个集群(或者基本上其他hybris服务器访问同一个数据库)不会对IMO起作用。

我仍然认为您最好的方法是部署相同的代码工件(在群集环境中,您仍然可以为每个节点设置不同的行为/配置)。您仍然可以(如果您100%确定)部署一个新版本,其代码更改仅影响该目录节点上的“目录”节点,如果您想减少停机时间等,但如果您有一个风险,则它始终存在风险每个节点上具有不同部署的集群。

祝你好运:)