4.10. 覆盖代理的默认内存限值
您可以覆盖为代理设置的默认内存限值。默认情况下,代理被分配为代理 Java 虚拟机可用的最大内存的一半。以下流程演示了如何为代理部署配置自定义资源(CR)实例,以覆盖默认内存限值。
先决条件
- 您应该熟悉如何使用 CR 实例创建基本代理部署。请参阅 第 3.4.1 节 “部署基本代理实例”。
流程
开始配置自定义资源(CR)实例以创建基本代理部署。
使用 OpenShift 命令行界面:
以具有特权的用户身份登录 OpenShift,以便在代理部署的项目中部署 CR。
oc login -u <user> -p <password> --server=<host:port>
-
打开一个名为
broker_activemqartemis_cr.yaml
的示例 CR 文件,该文件包含在您下载和提取的 Operator 安装的deploy/crs
目录中。
使用 OpenShift Container Platform Web 控制台:
- 以具有特权的用户身份登录控制台,以便在代理部署的项目中部署 CR。
-
根据主代理 CRD 启动新的 CR 实例。在左侧窗格中,单击
。 - 单击 ActiveMQArtemis CRD。
- 点 实例 选项卡。
单击 Create ActiveMQArtemis。
在控制台中,会打开 YAML 编辑器,供您配置 CR 实例。
例如,基本代理部署的 CR 可能类似以下:
apiVersion: broker.amq.io/v1beta1 kind: ActiveMQArtemis metadata: name: ex-aao spec: deploymentPlan: size: 1 image: placeholder requireLogin: false persistenceEnabled: true journalType: nio messageMigration: true
在 CR 的
spec
部分,添加一个brokerProperties
部分。在brokerProperties
部分中,添加一个globalMaxSize
属性并指定内存限制。例如:spec: ... brokerProperties: - globalMaxSize=500m ...
globalMaxSize
属性的默认单位是字节。要更改默认单元,请将后缀 m (用于 MB)或 g (用于 GB)添加到值。将更改应用到 CR。
使用 OpenShift 命令行界面:
- 保存 CR 文件。
切换到代理部署的项目。
$ oc project <project_name>
应用 CR。
$ oc apply -f <path/to/broker_custom_resource_instance>.yaml
使用 OpenShift Web 控制台:
- 编辑完 CR 后,点 Save。
(可选)验证您为
globalMaxSize
属性设置的新值会覆盖分配给代理的默认内存限值。- 连接到 AMQ 管理控制台。更多信息请参阅 第 5 章 连接到基于 Operator 的代理部署的 AMQ 管理控制台。
- 从菜单中,选择 JMX。
- 选择 org.apache.activemq.artemis。
-
搜索
全局
。 -
在显示的表中,确认 Global max 列中的值与您为
globalMaxSize
属性配置的值相同。