使用多节点模式

3.8.0 版后已移除: 使用 门户配置 相反。

概述

多节点模式添加了使用同一web应用程序设置多个目录的功能。默认情况下,只有一个节点可用。名为“srv”的节点。每个节点都有自己的:

  • 数据目录(索引、文件)

  • 数据库

主数据目录包含每个节点一个数据文件夹。

这为维护一组目录的用户简化了目录更新。它还通过共享应用程序的某些部分来节省资源,例如,所有目录共享相同的模式和同义词表(以节省内存)。

用户一次只能在同一浏览器中登录一个节点(只允许一个会话)。当确定时,如果用户尝试切换到另一个节点,则目录建议:

  • 注销并继续到请求的节点

  • 返回上一个节点

../_images/node-change-warning.png

已安装运行200个节点/服务器的安装。这样的配置需要增加JVM内存配置(Xmx参数大约为4Gb)。

配置

受信任的主机

在|web.xml文件|,添加用于访问目录的主机名或IP的列表 trustedHost 以下筛选器的参数:

<filter>
  <filter-name>springSecurityFilterChain</filter-name>
  <filter-class>jeeves.config.springutil.JeevesDelegatingFilterProxy</filter-class>
  <init-param>
    <param-name>loginService</param-name>
    <param-value>signin</param-value>
  </init-param>
  <init-param>
    <param-name>trustedHost</param-name>
    <param-value>localhost</param-value>
  </init-param>
</filter>

注解

如果更改用于访问Web服务器或Java容器中的目录节点的主机名或IP,则必须更新 trustedHost 参数也是。

手动注册新节点

注册一个新节点需要两步。首先在中声明新节点|web.xml文件|为了声明URL映射:

<servlet-mapping>
  <servlet-name>spring</servlet-name>
  <url-pattern>/geosource-8/*</url-pattern>
</servlet-mapping>

然后在中定义节点配置 WEB-INF/config-node/{{{{node_id}}}}.xml . 配置定义:

  • 节点标识符(如果该节点是默认节点)

  • 要使用的数据库连接

只允许一个默认节点。

例如,要配置名为 geosource-8 使用A postgres 数据库使用以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<beans default-lazy-init="true"
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:context="http://www.springframework.org/schema/context">

    <import resource="classpath*:/config-spring-geonetwork.xml"/>
    <import resource="../config-db/database_migration.xml"/>

    <context:property-override properties-ref="geosource-8-configuration-overrides" />

    <bean id="nodeInfo" class="org.fao.geonet.NodeInfo">
        <property name="id" value="geosource-8" />
        <property name="defaultNode" value="false" />
    </bean>

    <bean id="geosource-8-configuration-overrides"
        class="org.springframework.beans.factory.config.PropertiesFactoryBean">
        <property name="properties">
            <props>
                <prop key="jdbcDataSource.username">www-data</prop>
                <prop key="jdbcDataSource.password">www-data</prop>
                <prop key="jdbcDataSource.maxActive">2</prop>
                <prop key="jdbcDataSource.maxIdle">2</prop>
                <prop key="jdbcDataSource.initialSize">2</prop>
                <prop key="jdbcDataSource.Url">jdbc:postgresql://localhost:5432/db_8</prop>
            </props>
        </property>
    </bean>

    <import resource="../config-db/postgres.xml"/>
</beans>

设置节点的样式

可以为每个节点定义自定义样式。在中添加新的css文件 catalog/style 文件夹。文件名应如下所示(用正确的值替换NODENAME): NODENAME_custom_style.css

使用实用程序脚本创建节点

WEB-INF/node-utils , the node-mgr.sh 脚本帮助添加新节点,例如添加id为的节点 geosource-1044 ,在主机中 www.geosource.com 连接到 postgres 数据库 db_1044 游泳池大小为 2 连接,使用:

./node-mgr.sh www-data www-data \
              geosource-1044 \
              www.geosource.com \
              jdbc:postgresql://localhost:5432/db_1044 \
              postgres 2

脚本执行以下任务:

  • 添加到|web.xml文件|那个 servlet-mapping 并更新 trustedHost 新节点的元素。

  • 在中创建节点配置 WEB-INF/config-node/{{{{node_id}}}}.xml .

  • 为中的节点创建CSS样式文件 catalog/style 文件夹。