我想向使用 Galera 集群(mysql)作为数据库的分布式应用程序添加缓存。每个应用程序节点 (java) 都有一个本地缓存,用于读取并与 DB 节点通信。
问题是当集群中的另一个节点修改这些条目时,我不知道如何使缓存中的条目无效。
我的第一次尝试是使用数据库触发器,但我很快意识到复制更新不会引发触发器。
其他想法是监控网络流量搜索修改或查看 DB 的二进制日志,但它们似乎都很难实现。
问题是:是否有任何实用的方法来检测一个节点在复制中来自另一个节点的变化?
实现缓存失效的其他想法?
我想我也可以使用分布式缓存来通过应用程序节点传达更改,但我更喜欢在每个应用程序节点中使用隔离缓存并将节点之间的数据同步委托给数据库集群。我将缓存通信视为冗余网络流量......
提前致谢。