小编fon*_*kap的帖子

检测Galera集群DB(mysql)中的更改.实现应用程序缓存失效

我想为使用Galera集群(mysql)作为DB的分布式应用程序添加缓存.每个应用程序节点(java)都有一个本地缓存,用于读取和与数据库节点通信.

问题是当集群中的另一个节点修改了条目时,我不知道如何使缓存中的条目无效.
我的第一次尝试是使用数据库触发器,但我很快就意识到复制更新不会引发触发器.
其他想法是监视网络流量搜索修改或观看DB的binlog,但它们似乎都很难实现.

问题是:是否有任何实用的方法来检测复制中来自另一个节点的变化?
实现缓存失效的其他想法?

我想我也可以使用通过应用程序节点传递更改的分布式缓存,但我更喜欢在每个应用程序节点中使用隔离缓存,并将节点之间的数据同步委托给数据库集群.我认为缓存通信是冗余的网络流量......

提前致谢.

java mysql distributed caching galera

9
推荐指数
1
解决办法
190
查看次数

Google Maps和Richfaces 3.3.3(prototype.js 1.6.0.3)可能不兼容

我有一个基于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以获得更现代的版本......当我知道更多时,我会更新.

提前致谢!

---更新---

  • 使用Google地图的生产版解决了这个问题.现在有必要在脚本标记的src中明确地输入v = 3.谢谢Dr.Molle.
  • 将prototypejs更新为(1.7.2).与实验一起工作也很好.谢谢@eepete.

---更新2 ---

  • 如果你需要使用这个旧版本的原型,使用v = 3不再使用richfaces 3.3.3(prototype-1.6.0.3.js),现在你需要在谷歌地图中明确使用v = 3.17.

换句话说,在页面中使用它来保护与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)

google-maps richfaces prototypejs google-maps-api-3

4
推荐指数
1
解决办法
1943
查看次数