Caching 如何减少微服务之间的API调用spring boot

Caching 如何减少微服务之间的API调用spring boot,caching,apache-kafka,microservices,Caching,Apache Kafka,Microservices,我有两个spring boot微服务,分别是qbank和报告。对于通信,我使用API调用 问题-在repots函数中,我需要从qbank获取一些数据,但由于用户流量过大,该函数被频繁调用 qbank数据不会频繁更改,管理员可能会在一个月内手动更改 那么如何减少API调用呢?我想的解决方案- 缓存-问题-如何保持更新?需要在数据更改后快速修改qbank。(不允许从qbank到报告的API调用) 卡夫卡-我对它了解不多,但它能帮上忙吗?如果是,那怎么办 任何建议都将受到欢迎 qbank数据不经常

我有两个spring boot微服务,分别是
qbank
报告
。对于通信,我使用API调用

问题-在
repots
函数中,我需要从
qbank
获取一些数据,但由于用户流量过大,该函数被频繁调用

qbank
数据不会频繁更改,管理员可能会在一个月内手动更改

那么如何减少API调用呢?我想的解决方案-

  • 缓存-问题-如何保持更新?需要在数据更改后快速修改
    qbank
    。(不允许从
    qbank
    报告的API调用)

  • 卡夫卡-我对它了解不多,但它能帮上忙吗?如果是,那怎么办

  • 任何建议都将受到欢迎

    qbank数据不经常更改,管理员可能会在一个月内手动更改

    CDC(变更数据捕获)通过卡夫卡连接访问qbank数据

    选择之一是将qbank数据的副本保存在报告数据库中

    Kafka Connect可用于监控qbank数据,检测qbank数据(源)上发生的任何更改,并将其复制到报表数据库(接收器)中

    • 源连接器(qbank数据库)
    • 接收器连接器(报告数据库)
    缓存可以是微服务中跨服务共享数据的另一种选择,但选择正确的缓存机制/策略取决于各种因素

    • 缓存策略
    • 驱逐政策
    • 数据访问策略
    • 数据类型智能缓存 等等

    每个报告是否不同?