关于内存缓存的可伸缩性问题

13-03-09 banq
         

2013-03-08 18:19 "@tangxuehua

"的内容

内存缓存遇到集群部署,Domain就没那么容易一致了,面对这种情况,大家是怎么处理的呢? ...

你的这个帖子信息量很大,我试图回答一下,但是可能没抓住重点,请多多谅解了,我是朝架构的可伸缩性Scalable方向上理解回答的。

集群或分布式缓存的一致性问题,一般我建议用NoSQL来解决,不同的NoSQL策略不同,不能一概而论,当然他们在分区容错性方面还是有待提高,第二代NoSQL应该在可靠性上有提升,见文章:

The nosql Partition Tolerance Myth

下面回答两个问题,我挑选回答如下:

>如何做服务器之间不同内存缓存之间的数据同步问题;

采取数据网格产品可以实现同步,如terracotta兵马俑, hazelcast或者 Oracle 的coherence。采取Big Memory能让一台机器支持到几十G容量,注意因为是缓存,有大小限制,而聚合根只适合CQRS中的命令写操作,写操作不可能特别大,如果特别大,采取LMAX架构。

>如何确保domain产生的event的持久化顺序与查询端接收到event的顺序一致。

在持久化之前,将event放入一个Queue队列排队,如同LMAX架构中的事件队列一样,这样必然是先到先出,如同排队进入一个管道一样。

[该贴被admin于2013-03-09 14:47修改过]

         

netroby
2013-04-05 10:07

放入queue里面,是不是会比较慢?