我想为使用Galera集群(mysql)作为DB的分布式应用程序添加缓存.每个应用程序节点(java)都有一个本地缓存,用于读取和与数据库节点通信.
问题是当集群中的另一个节点修改了条目时,我不知道如何使缓存中的条目无效.
我的第一次尝试是使用数据库触发器,但我很快就意识到复制更新不会引发触发器.
其他想法是监视网络流量搜索修改或观看DB的binlog,但它们似乎都很难实现.
问题是:是否有任何实用的方法来检测复制中来自另一个节点的变化?
实现缓存失效的其他想法?
我想我也可以使用通过应用程序节点传递更改的分布式缓存,但我更喜欢在每个应用程序节点中使用隔离缓存,并将节点之间的数据同步委托给数据库集群.我认为缓存通信是冗余的网络流量......
提前致谢.
我有一个基于RichFaces 3.3.3的Web应用程序,它使用谷歌地图(maps-api v3),直到最近一直运行正常.
最近未能绘制地图的用户控件.地图绘制正常,但控件不会出现,例如地图类型或缩放控件.
调查一下,似乎与prototype.js的兼容性问题.
如果您只是将此行添加到developers.google.com中的示例:
<script src="http://prototypejs.org/assets/2008/9/29/prototype-1.6.0.3.js"></script>
Run Code Online (Sandbox Code Playgroud)
Chrome浏览器中的js控制台记录下:
Uncaught TypeError: undefined is not a function prototype-1.6.0.3.js:641
Run Code Online (Sandbox Code Playgroud)
并且用户控制消失...
有人知道如何解决这个问题?
现在我将尝试在richfaces中更改prototype.js以获得更现代的版本......当我知道更多时,我会更新.
提前致谢!
---更新---
---更新2 ---
换句话说,在页面中使用它来保护与prototype-1.6.0.3.js的兼容性:
<script src="https://maps.googleapis.com/maps/api/js?v=3.17"></script>
Run Code Online (Sandbox Code Playgroud) caching ×1
distributed ×1
galera ×1
google-maps ×1
java ×1
mysql ×1
prototypejs ×1
richfaces ×1