wso2 - 为什么 WSO2AM 一遍又一遍地对 mb_metadata 表执行计数查询?
问题描述
我们为 WSO2AM 2.6.0 启用了高级限制。启用此功能并正确创建执行计划后,我们注意到每小时针对 MB_METADATA 表执行超过 35M 的选择计数查询。
此外,MB_METADATA 和 MB_CONTENT 表不断增长,行数永远不会下降。
我已禁用所有统计信息和跟踪。我们有 4 台 WSO 服务器,每台服务器与网关、密钥管理器和流量管理器在同一个盒子上独立运行。数据库是甲骨文。
我们看到这个查询运行 3500 万次/小时:
SELECT COUNT(MESSAGE_ID) AS count FROM MB_METADATA WHERE QUEUE_ID=:1 AND MESSAGE_ID BETWEEN :2 AND :3 AND DLC_QUEUE_ID=-1
我希望表大小是可管理的,并且此查询不会以如此高的速率运行。
关于可能发生的事情有什么建议吗?可能是我需要禁用的配置?
解决方案
共享 MB 数据库不正确。每个流量管理器节点都应该有自己的 MB 数据库,它可以是默认的 H2 数据库。
引用自文档:
不要在 Active-Active 设置或流量管理器 HA 场景中的节点之间共享 WSO2_MB_STORE_DB 数据库,因为每个节点都应该有自己的本地 WSO2_MB_STORE_DB 数据库来充当单独的流量管理器。
后者提到的 DB 可以是 H2 DB 或任何 RDBMS,例如 MySQL。
如果数据库损坏,那么您需要用产品分发中可用的新数据库替换数据库。
参考:https ://docs.wso2.com/display/AM260/Installing+and+Configuring+the+Databases
推荐阅读
- ubuntu - scrot 命令覆盖文件
- html - 为人类可读的 url 创建 url 和文件名的正确方法是什么?
- ansible - 在 Eks 集群上安装 Ansible
- html - CSS中元素一侧的左边框倾斜
- excel - 为什么使用 Access VBA 导入 excel 时出现错误 462?
- verilog - 错误:(vlog-2110)非法引用网络“代码”
- flutter - 具有隐身性的可拖动废墟图像
- javascript - 'google-chart' 不是已知元素:角度
- javascript - 抛出错误的角度单元测试未覆盖
- angular - 如何在 Angular 中显示来自 Spring MVC 的返回视图