- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
背景
我们知道,可以建立一个devops管道,通过使用crx2oak将内容从旧环境迁移到新环境,通过蓝/绿方法将更新部署到AEM。为什么不在这个问题的范围内。
这种方法的问题是,随着JCR中内容数量的增加,内容复制操作可能会花费大量时间。减轻此问题的其他想法受到赞赏。
我们还知道AEM可以拥有一个S3数据存储区,该存储区将二进制内容卸载到S3存储桶中,根据以下说明,该存储区不会在蓝/绿部署期间重新构建:
https://helpx.adobe.com/experience-manager/6-3/sites/deploying/using/storage-elements-in-aem-6.html#OverviewofStorageinAEM6
从Adobe文档中尚不清楚的是,是否可以在AEM实例(即蓝色/绿色实例)之间共享同一S3存储桶。也许只是我的Google Fu失败了...
问题
当新的AEM实例配置为使用旧实例中已有内容的S3数据存储时,如果使用crx2oak迁移内容,新实例将能够访问现有内容吗?
是否有任何文章/博客描述了此方法可能节省的时间?
是的,我可以做一个实验,将来可能会回答我自己的问题。我正在寻找已经这样做的人的信息?我是工程师,因此如果有人这样做,就不会重新发明轮子。
最佳答案
您当然可以在实例之间共享相同的S3存储桶-实际上,它通常与author-> publisher的无二进制复制一起使用,这是一种经过尝试的真实配置。
甚至有可能在完全不同的环境之间共享同一存储桶(例如DEV / STAGE或您的情况下为BLUE / GREEN)。要了解的主要“陷阱”是关于DataStore垃圾收集(DSGC)的,因为很有可能会有仅由共享该存储桶的某些实例引用的Blob,因此在清除未使用的Blob时,需要考虑在内。
不过,这都是设计的全部内容,并且有一个专门为此目的设计的标志,该标志告诉DSGC仅执行GC的第一阶段(“标记”阶段),并跳过第二“扫掠”阶段,直到所有实例为止标记了他们希望保留/丢弃的斑点。完成所有实例后,便可以运行扫描阶段来清除任何使用该存储桶的实例不需要的斑点。
有关更详细的说明,请参见Oak文档:
https://jackrabbit.apache.org/oak/docs/plugins/blobstore.html#Shared_DataStore_Blob_Garbage_Collection_Since_1.2.0
我发现这有助于理解几乎所有数据存储区实现均已完成,从而根据其校验和来存储blob,因此,两次上载的同一文件添加将仅在数据存储区中存储一个副本,并且将有两个段存储区记录引用相同的Blob。以相同的方式,共享同一个存储桶的多个AEM实例将能够找到给定的blob,而不管首先放在哪个实例中。
您可以通过找到一个blob并为其添加FileDataStore
来观察sha256
轻松地看到这一点-例如(此示例在OS X上,Linux / Windows上的checksum命令将略有不同):
$ shasum -a256 crx-quickstart/repository/datastore/0c/9e/40/0c9e405fc8d0f0405930cd0044611cfbf014938a1837ae0cfaa266d7732d1002
0c9e405fc8d0f0405930cd0044611cfbf014938a1837ae0cfaa266d7732d1002 crx-quickstart/repository/datastore/0c/9e/40/0c9e405fc8d0f0405930cd0044611cfbf014938a1837ae0cfaa266d7732d1002
DeleteObject
权限,只是要确保恶意GC进程可以删除任何内容。
crx2oak
当然是一个-您将在文档中看到带有S3的特定选项,您可以在其中提供配置文件(基本上是与Felix / OSGi一起使用的序列化
.config
文件)。
rsync
之类的内容来简单地复制TAR文件(至少在停止目标AEM的同时。Oak通常是原子性的,因此从源上进行热复制在理论上可以起作用,但YMMV可以)。
CompositeNodeStore
-2017年的AdaptTo() session 上有一篇很好的演讲谈到了这一点:
关于amazon-s3 - 将AEM配置为使用S3数据存储时,它将使蓝绿色部署更快吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50920283/
我使用的是 Adobe Experience Manager (AEM) 6.3。在基本结构中,组件文件夹包含内容文件夹和结构文件夹。在我们放置组件的两个文件夹中。这两个文件夹有什么区别? 最佳答
Sling 中选择器有什么用? http://www.resourcePath .选择器.扩展名 我看过网上关于选择器使用的文档: 一些文档说它用于缓存页面的响应,而使用查询参数时无法做到这一点。 虽
如何在 AEMsightly 中仅在预览/ Release模式下删除装饰标签? 我看过问题和答案:AEM/CQ: Conditional CSS class on decoration tag 这会删
我们需要将特定版本的页面保留一段时间,比如说一年。 如果我们使用版本管理器并提供“Max Version Age”和“Max Number Versions”,它将保留该数量的最新 x 个版本时间。
我需要在我正在配置的新实例中安装大型软件包。我正在为此使用包管理器,但安装需要很长时间。还有其他方法可以做到吗?此外,如果我可以获得有关存储 DAM 包的物理位置的信息,那将会很有帮助。 (例如:有什
这个问题在这里已经有了答案: How to use/understand AEM Sling Resource Merger, override and Overlay concepts (1 个回
我正在通过一些在线教程来学习 AEM。根据教程,创建组件时,需要在 Allowed Parents 或 Allowed Children 中输入一些值。但是,我在窗口中看不到这样的选项。当我尝试创建组
扩展组件、覆盖组件和覆盖组件有什么区别。有人可以从开发者的角度解释一下吗 最佳答案 延伸和叠加 是一样的。这只是一个术语问题。扩展和覆盖涉及将组件从/libs/(或其他基础库)复制到/apps 节点并
Adobe AEM(以前称为 Adobe CQ)中的客户端库 (ClientLib) 功能可以轻松地按类别包含客户端库,并且每个库都可以通过依赖项引入其他库。然而,关于“主题”的文档有点薄。 此
如何从浏览器查看发布者日志? 我尝试使用“http://localhost:4503/bin/crxde/logs?tail=1000”。但我没有得到日志。有什么方法可以启用它吗? 最佳答案 使用这个
请概述一下什么是 AEM 中的组件、页面、页面组件和模板。他们之间有什么关系。请尽可能举例说明。 建议任何网站作为初学者开始。 最佳答案 您有点混淆了技术和非技术术语。所以我尝试用两种方式来解释它:从
我正在尝试在列表组件的对话框上启用子编辑器,以允许用户将自定义组件添加到其中,例如来自核心的轮播组件。 我使用 AEM 6.5,并且 sling:resourceSuperType 是来自核心的列表。
使用 crx 包管理器在 AEM 中构建包时抛出错误“包构建未定义”。但是当我在 etc/packages/mypackages 下检查时,包被创建了。即使错误日志中没有错误或异常。我该如何解决这个问
在AEM 6.5的编辑模式下,如果我点击一个组件,会弹出上面的工具栏。除了通过在 CRXDE 上创建 cq:dialog 节点来添加对话框( Spanner 按钮)之外,您可以在工具栏上创建自定义按钮
在阅读在线 AEM 文档时,我了解到如何在 Debug模式下运行 AEM。 但是如何在远程 AEM 服务器上进行调试? 最佳答案 要使用远程调试,您必须使用此 JVM 参数启动 CQ5:-agentl
假设您有一个页面结构,称为: /content/site/en_us/foo/bar 您需要将 foo 页面从另一个环境移动到这个环境,但我们不想包含 bar 页面或任何其他子页面。 如果我定义一个包
我有一个服务于多个站点的 AEM 实例。一个站点正在使用一个组件。我想在另一个网站上使用这个组件。我不想将组件文件复制并粘贴到第二个站点并像那样拆分代码库。有谁知道在另一个站点上使用此组件的方法吗?
默认情况下,所有 GET 请求首先转到 DefaultGetServlet。基于扩展,它将请求委托(delegate)给渲染器。现在,如果请求 URI 中没有扩展名,为什么 AEM 会发送 403 (
我使用 ACS.CQ 库中的 xtype 'multifieldpanel' 进行 'multifield configuration'。而且我无法在我的对话框中设置“pathfield”的大小。我需
我正在使用 AccountManager API 来创建用户。当我不在注册表中使用个人资料图片并且用户注册时它工作得很好但是一旦我使用个人资料图片,我会收到以下错误: Caused by: javax
我是一名优秀的程序员,十分优秀!