使用 AOP 或 Solace 异步记录对 MongoDB 的微服务请求和响应?
Logging microservice requests and responses to MongoDB asynchronously using AOP or Solace?
我有多个 Java REST 微服务 API,我想将它们的请求和响应记录到 MongoDB。我是否使用异步服务方法创建单独的日志记录 API 并使用 AOP 从所有其他微服务控制器 类 调用它?或者我是否使用像 Solace/Kafka 这样的事件代理,其中微服务将日志发布到一个主题,并在 MongoDB 中选择和存储一个单独的服务?
哪种方法更好,我可以承受丢失一些日志而不存储在 MongoDB 中,但我不能承受影响我的微服务性能的后果。
使用事件代理处理日志数据绝对有优势,因为它可以在日志记录 API 不可用或速度慢时用作缓冲区。请注意,AOP 也可以与事件代理一起使用,它只使用事件端点,而不是 HTTPS 端点。
其他几个相关点:
- 您是否考虑过 MongoDB 以外的持久层? OpenTelemetry 后端旨在准确解决您的用例类型,并为 auditing/troubleshooting 微服务提供一些非常有用的工具。
- 与其使用 REST,不如 connecting the microservices themselves through an event broker。它可以提供一些非常好的性能优势,并使您的微服务更加敏捷。
最好的,
杰西
我有多个 Java REST 微服务 API,我想将它们的请求和响应记录到 MongoDB。我是否使用异步服务方法创建单独的日志记录 API 并使用 AOP 从所有其他微服务控制器 类 调用它?或者我是否使用像 Solace/Kafka 这样的事件代理,其中微服务将日志发布到一个主题,并在 MongoDB 中选择和存储一个单独的服务? 哪种方法更好,我可以承受丢失一些日志而不存储在 MongoDB 中,但我不能承受影响我的微服务性能的后果。
使用事件代理处理日志数据绝对有优势,因为它可以在日志记录 API 不可用或速度慢时用作缓冲区。请注意,AOP 也可以与事件代理一起使用,它只使用事件端点,而不是 HTTPS 端点。
其他几个相关点:
- 您是否考虑过 MongoDB 以外的持久层? OpenTelemetry 后端旨在准确解决您的用例类型,并为 auditing/troubleshooting 微服务提供一些非常有用的工具。
- 与其使用 REST,不如 connecting the microservices themselves through an event broker。它可以提供一些非常好的性能优势,并使您的微服务更加敏捷。
最好的, 杰西