我们有一个部署在 AWS RDS 上的定制 CRM 系统。我们的FE和BE系统是JavaScript,数据库禁止JS开发人员直接操作数据库。他们必须通过预定义的 API 或受控的查询系统。它工作得很好,开发人员从未设法损害数据库:)
数据库有自己的内部错误报告系统,该系统运行得很好,主要是因为 JS 开发人员通常不会报告失败(grr)的存储过程调用的错误。因此数据库在跟踪表中报告这些错误。这样我们就可以看到 JS 开发人员正在发送哪些错误的有效负载,或者捕获 SQL 中偶尔出现的错误。
问题是我们已经部署了数据库的只读副本,现在内部错误报告系统在失败的 RR 调用上变得毫无用处。
是否有一种技术或方法可以让 RR 以某种方式向主站发送写出调用?或者我必须切换到日志文件系统吗?如果我必须这样做,那几乎需要我们放弃我们的主错误表跟踪......
所以我想核心问题是:对于使用只读副本的企业级 CRM 数据库,我们应该考虑使用哪种内部 MySQL 错误报告系统和技术?
谢谢!
对于使用只读副本的企业级 CRM 数据库,我们应该考虑什么内部 MySQL 错误报告系统和技术?
检测并报告处理请求的后端代码中的无效负载,而不是存储过程中。
您的代码可以将错误请求记录到您想要的任何实例。我的意思是,即使请求(一旦验证)会导致在只读副本实例上执行存储过程,您也可以将错误记录到源实例。
但我建议将错误请求记录到其他日志系统,而不是数据库。错误请求与数据库中的任何其他数据无关,它只是增加了更多存储负载和查询负载以在数据库中记录错误请求。
AWS 目前提供了一项名为 Centralized Logging with OpenSearch 的服务。这听起来像是一个可以向其发送错误请求报告的候选者,但我还没有使用过这项 AWS 服务,所以我无法报告任何使用它的体验。这只是我正在谈论的这类事情的一个例子。
日志系统通常比使用成熟的 RDBMS 来完成该任务更简单且更便宜。