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

Deployment 有没有办法将Hybris模块拆分到不同的托管服务器,deployment,weblogic,ear,hybris,Deployment,Weblogic,Ear,Hybris,我在单个Weblogic托管服务器上部署了Hybris。问题是在性能测试期间,发现最好将Hybris模块(如管理座舱和产品目录)拆分为不同的托管服务器 编辑 我想我还应该提到这样一个事实,我的Infra团队要求我分离出EAR,这样在代码更改的情况下,只有受影响的模块被重新部署,而不是整个模块。这样即使我们把表演放在前面,我仍然需要拆分 现在我的问题是,对于build,Hybris生成一个EAR文件 有没有一种方法,我可以分解EAR文件,并有选择的模块在那里 因此,结构将是: 托管服务器1

我在单个Weblogic托管服务器上部署了Hybris。问题是在性能测试期间,发现最好将Hybris模块(如管理座舱和产品目录)拆分为不同的托管服务器


编辑

我想我还应该提到这样一个事实,我的Infra团队要求我分离出EAR,这样在代码更改的情况下,只有受影响的模块被重新部署,而不是整个模块。这样即使我们把表演放在前面,我仍然需要拆分


现在我的问题是,对于build,Hybris生成一个EAR文件

有没有一种方法,我可以分解EAR文件,并有选择的模块在那里

因此,结构将是:

托管服务器1

  • 海布里斯岩芯
  • 管理座舱
托管服务器2

  • 海布里斯岩芯
  • 产品目录
在此之后,将通过URL配置重定向到部署的链接


有什么建议吗?

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

我在hybris集群环境中看到的一种常见方法是,设置一个由多个节点组成的集群,并为后端活动保留一个节点(这样,昂贵的cronjobs就可以在专用节点上运行,而负载平衡器不会处理店面请求)。 但我认为从代码部署的角度来看,工件仍然是一样的。 希望这至少有助于思考:)

编辑

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

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

如果没有正确设置的群集环境,则不会注意到一台服务器(写入数据库)上的更改,除非您主动刷新/清除其中的hybris缓存,因此共享同一数据库的多台hybris服务器只有在将服务器设置为群集时才能正常工作

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

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


祝你好运:)

Hi@Sebastian,请看一下问题中的编辑。哦,如果你能找到一个好的解决方案,请告诉我。。我想知道你是如何做到的:)