可在某个副本集中配置一个集合体控制器 server.xml 包含文件,然后自动更新该副本集中的其他副本的配置。自动共享配置意味着您不必手动更新其他副本的配置。对于使用自动缩放的集合体,自动共享配置特别有用。
关于此任务
可将控制器配置的包含文件放置到该控制器的 configDropins/defaults 目录中,以自动更新副本的配置。或者,可使用 ControllerConfigMBean
操作以列示、添加或移除集合体控制器的共享配置文件。
过程
- 为控制器创建带有您要在副本间共享的配置的 configDropins 目录。
如果副本集的控制器还没有 configDropins/defaults 目录,请为该控制器创建 $WLP_USER_DIR/servers/server_name/configDropins/defaults
目录。
注: 有关
configDropins 子目录中的文件的优先顺序的信息,请参阅
使用配置 dropins 文件夹指定服务器配置。此主题同时提到了
configDropins/defaults
目录和
configDropins/overrides 目录。放置到
configDropins/overrides 目录中的控制器配置不会在副本间共享。要在副本间共享配置,必须使用
configDropins/defaults 目录。
- 与副本集中的其他副本共享控制器配置。
- 将副本集控制器的配置放置到其 configDropins/defaults 目录中。
例如,将该控制器的 server.xml
包含文件复制到其 configDropins/defaults 目录。
- 使用 ControllerConfigMBean 操作以列示、添加或移除集合体控制器的共享配置文件。
配置文件存储在控制器的
$WLP_USER_DIR/servers/server_name/configDropins/defaults
目录中,并且与副本的 configDropins/defaults 目录共享。
使用 Jython 脚本或 Java 客户机(例如,JConsole)执行以下集合体控制器 ControllerConfigMBean 操作:
- listSharedConfig
- listSharedConfig 操作列示副本的共享配置目录中的文件。
- addSharedConfig
- addSharedConfig 操作将配置添加至文件并将该文件存储在每个副本的 configDropins/defaults 目录中。必须对该操作指定以下两个参数:
- fileName
- 要共享的控制器配置的文件名。如果指定共享配置目录中已存在的文件名,那么现有文件会被覆盖。(字符串)
- config
- 有效 server.xml 包含文件的内容。(字符串)
例如:
<?xml version="1.0" encoding="UTF-8"?>
<server>
<logging traceSpecification="com.ibm.ws.collective.repository.internal.SharedConfigManager=all"/>
</server>
- removeSharedConfig
- removeSharedConfig 操作从每个副本的 configDropins/defaults 目录移除文件。必须对该操作指定以下参数:
- fileName
- 要从每个副本的共享配置目录中删除的控制器配置的文件名。(字符串)
控制器配置自动与副本集中其他每个副本的配置 dropins 目录同步。将副本添加至自动共享其配置的控制器时,该控制器的 configDropins/defaults
目录的内容将复制到新副本。您对一个控制器的缩放策略定义进行的任何更改会自动与其他副本的配置 dropins 目录中的配置同步。
如果控制器配置未自动与其他副本的配置同步,请检查控制器和副本日志。而且,如果已使用 configDropins/defaults
目录共享控制器配置,请确保配置监视未关闭。缺省情况下,配置监视处于已启用状态。如果配置监视被禁用,那么您可使用 FileNotificationMBean
向控制器通知配置更改,于是副本会共享更改。ControllerConfigMBean
操作存储的配置在副本间自动共享,不管是否启用配置监视都是如此。请参阅控制动态更新。
示例:使用 JConsole 在副本间共享控制器配置
此示例描述如何使用 JConsole
以将控制器 configDropins/defaults 目录中的 server.xml 包含文件与所有副本共享:
- 将 JConsole 连接至集合体控制器进程。
- 确保集合体控制器正在运行。
wlp/bin/server status collective_controller_name
副本不必处于运行状态。未在运行的副本在启动时同步共享配置。
- 如果 JConsole 未在运行,请启动 JConsole。在 Windows 上,运行 Java_installation\bin\jconsole.exe 文件。
- 对集合体控制器选择该进程。
要将 REST 连接器与 JConsole 配合使用以通过底层 HTTPS 连接远程访问 MBean,请参阅在 Liberty 中创建远程 JMX 连接。
- 在 JConsole 中运行 ControllerConfigMBean addSharedConfig
操作以将控制器 server.xml 包含文件添加至每个副本的 configDropins/defaults 目录。
- 在 JConsole MBean 选项卡上,选择 ControllerConfigMBean addSharedConfig 操作。
- 对于 fileName,指定 server.xml 包含文件的路径;例如:
$WLP_USER_DIR/servers/collective_controller_name/trace.xml
- 对于 config,指定要添加的配置;例如:
<?xml version="1.0" encoding="UTF-8"?>
<server>
<logging traceSpecification="com.ibm.ws.collective.repository.internal.SharedConfigManager=all"/>
</server>
- 单击 addSharedConfig 以运行该操作。
- 确认该操作已在副本间成功共享控制器配置。