Liferay实例 - 属性等?

时间:2014-10-15 19:19:52

标签: liferay liferay-6 setup-deployment

由于不同受众的商业原因,我们正在考虑Liferay多租户。我对此有一些疑问。我很欣赏以下问题的一些见解:

  1. 在问题/帖子liferay and more instances中,似乎有一些与Portal属性有关的限制,其中一些是全局的,而不是特定于实例的。是否有关于全局Liferay作用域与特定于实例的属性的列表或见解?

  2. Liferay portal instances上的帖子看来,似乎>配置门户网站实例的首选方法是通过“控制面板”。

  3. 通过与各种人交谈,似乎与门户网站实例的分片有一些性能已知的问题。建议在使用实例时关闭分片。有没有人知道哪些Liferay属性可以用来关闭分片,或者在Liferay 6.2中默认情况下是否关闭分片(如果是这样,要检查哪些属性以确认分片已关闭)?

  4. 我们可以使用多少个实例?我们可能会使用至少3-4个实例开始。任何已知的实例数问题?

  5. 非常感谢您提供有关此事的任何信息。

1 个答案:

答案 0 :(得分:3)

以下是我从其他来源找到的内容,以防有人帮助:

要记住门户网站属性的第一个也是最重要的事情之一是它们总是被Liferay控制面板中的任何设置所覆盖。原因是控制面板中完成的任何配置都直接保存到数据库,并且在导入门户网站属性后始终读取数据库中的配置集,从而覆盖它们。在控制面板中完成配置后,门户网站属性将永远不会再次修改或更改该设置。

这确实让人想知道为什么有两个地方可以进行设置配置更改,以及为什么控制面板每次都要胜过门户网站属性文件。这样做的原因与您关于全局和范围设置的第一个问题直接相关。

portal-ext.properties文件通常用于为Liferay的物理包设置配置;该物理包上的每个Liferay实例都将继承这些设置,但这些设置不会被任何其他Liferay节点或同一实例的包自动继承。

控制面板通常用于设置Liferay Portal实例的配置;连接到该实例的每个节点都将继承这些设置并覆盖门户网站属性中设置的任何值,但这些设置只会被连接到同一实例的其他节点继承。

换句话说......   - 控制面板设置用于Liferay实例。   - 门户网站属性设置用于Liferay捆绑包   - 控制面板设置将始终覆盖门户网站属性设置

这允许对如何设置捆绑包或节点的默认属性以及保存整个实例的配置进行一些控制。例如,您将需要使用门户网站属性来配置群集设置,数据库连接设置,文档库连接以及其他性能/系统设置。

但是,您还可以选择配置邮件服务器等设置的位置。如果您在门户网站属性中设置它,那么该节点上的每个Liferay实例都会自动拥有这些设置,这可能不符合您的目标。如果在控制面板中设置它,那么连接到该实例的Liferay节点将自动获得这些设置,但门户网站属性不会再次修改这些设置。

现在,有一种方法可以创建一个特定于实例的门户网站属性文件,该文件的值只能由Liferay实例读取。请注意,这会使事情进一步复杂化,并且可能不适合您的目标。以下属性及其定义说明了如何完成此任务:

#
# Each portal instance can have its own overriden property file following
# the convention portal-companyWebId.properties. To enable this feature, set
# the "company-id-properties" system property to true.
#
# To enable:
#
#     java ... -Dcompany-id-properties=true
#
# The read order will now be: portal.properties, then portal-ext.properties,
# and then portal-liferay.com.properties.
#
# Note that not all properties can have different values per company. This
# functionality is only available for legacy reasons. The preferred way to
# configure a portal instance is through the Control Panel.
#
include-and-override=portal-${easyconf:companyId}.properties
include-and-override=${liferay.home}/portal-${easyconf:companyId}.properties

您可以选择配置门户网站设置的位置,并且凭借上述知识,我相信您将能够为您的目标做出最佳决策。

关于分片,默认情况下禁用分片,必须通过门户网站属性以及数据库本身手动配置分片。这篇关于如何在Liferay https://www.liferay.com/community/wiki/-/wiki/Main/Database+Sharding中启用数据库分片支持的wiki文章略显陈旧。作为参考,以下是一些需要更改的属性:    ##    ## Sharded数据库    ##

#
# Set the database that is to be used for the default company and globally
# used tables in a sharded environment.
#
shard.default.name=default

#
# Specify an algorithm for selecting a new shard on portal instance
# creation. Use ManualShardSelector for shard selection via the web
# interface.
#
shard.selector=com.liferay.portal.dao.shard.RoundRobinShardSelector
#shard.selector=com.liferay.portal.dao.shard.ManualShardSelector

##
## Spring
##

#
# Input a list of comma delimited Spring configurations. These will be
# loaded after the bean definitions specified in the contextConfigLocation
# parameter in web.xml.
#
# Note that there is a special case for hibernate-spring.xml and
# jpa-spring.xml. Even though both files are specified, only one will
# actually load at runtime based on the property "persistence.provider".
#
spring.configs=\
    META-INF/base-spring.xml,\
    \
    META-INF/hibernate-spring.xml,\
    META-INF/infrastructure-spring.xml,\
    META-INF/management-spring.xml,\
    \
    META-INF/util-spring.xml,\
    \
    META-INF/jpa-spring.xml,\
    \
    META-INF/executor-spring.xml,\
    \
    META-INF/audit-spring.xml,\
    META-INF/cluster-spring.xml,\
    META-INF/editor-spring.xml,\
    META-INF/jcr-spring.xml,\
    META-INF/ldap-spring.xml,\
    META-INF/messaging-core-spring.xml,\
    META-INF/messaging-misc-spring.xml,\
    META-INF/mobile-device-spring.xml,\
    META-INF/notifications-spring.xml,\
    META-INF/poller-spring.xml,\
    META-INF/rules-spring.xml,\
    META-INF/scheduler-spring.xml,\
    META-INF/search-spring.xml,\
    META-INF/workflow-spring.xml,\
    \
    META-INF/counter-spring.xml,\
    META-INF/mail-spring.xml,\
    META-INF/portal-spring.xml,\
    META-INF/portlet-container-spring.xml,\
    META-INF/staging-spring.xml,\
    META-INF/virtual-layouts-spring.xml,\
    \
    META-INF/monitoring-spring.xml,\
    \
    #META-INF/dynamic-data-source-spring.xml,\
    #META-INF/shard-data-source-spring.xml,\
    #META-INF/memcached-spring.xml,\
    \
    classpath*:META-INF/ext-spring.xml

如果您感到好奇,可以在此处阅读有关如何在用户指南{@ 3}}中实现分片的详细信息。

关于允许的实例数量,没有硬性限制,但请注意,每个实例将竞争相同数量的资源,并且可能会发生性能下降。这确实使性能调整比正常情况更重要,以避免不良性能。

作为一个FYI - 从测试中我发现配置公告portlet模板等的以下属性只能通过portal-ext.properties文件而不是通过控制面板。因此,如果实例之间的属性值不同,则需要公司特定的属性文件。

希望这有帮助!