大家好,最近做一个消息推送系统,批量推送到用户后,会有一个同时的大量拉取消息的行为,想法是做读写分离来支持瞬时较高并发。
实现时,从多个从库(只读)筛选出用户的消息,然后同时连主库(可写),更新对应消息的读取状态。这样就是在程序里同时配置两个数据库连接池,对此大家有什么更好的方案吗?
另外主库压力也不小。不知道大家有无相关经验分享。
1
aru 2015-01-17 22:10:09 +08:00 1
这部分用mongodb来做?
|
2
zado 2015-01-17 23:09:17 +08:00 1
用内存做缓存。
|
3
zhicheng 2015-01-17 23:11:44 +08:00 1
静态化,并使用 hash 做多机分布。
|
4
virusdefender 2015-01-17 23:25:33 +08:00 1
这个使用缓存比较好吧,比如 redis,然后高峰期过后统一写入数据库。
|
5
hjxx 2015-01-18 01:04:34 +08:00 1
热点公共数据 上缓存 不用每次去库里查询
|
6
hh3755 OP |
7
invite 2015-01-18 10:35:11 +08:00
写内存同步到数据库.
|
8
zado 2015-01-18 13:08:30 +08:00 1
读写都用内存去做,不存在同步的问题。需要持久保存的数据,有空的时候再慢慢写到数据库里面去。
|
9
hh3755 OP @zado 但是用内存。如果程序挂了。不能从内存中恢复,一些状态丢失了,尤其是一些写的状态丢失了,会给人感觉程序很不稳定。
|
10
hh3755 OP @zhicheng 静态化是指将什么静态化呢,是指将数据hash到不同数据库吗。但是hash有个不好的地方,一旦做调整就很麻烦。
|
11
hh3755 OP |