问一道system design的题# JobHunting - 待字闺中
c*t
1 楼
onsite被问设计一个定时发送消息的系统,就是当create message时,给一个future
time。到了那个时间就把消息发出去。
我给出的设计是当create时,存入DB. 然后有一个scheduler每分钟query db, 把这一
分钟需要发送的消息发出去。面试官问消息太多,如果server不能发完这一分钟的消息
怎么办。我说scheduler 除了发这一分钟的,也可以发送历史留下未发出的,这一分钟
没发出,下一分钟数量少了就可以发出。或者单独有一个thread专门发送历史未发出的
。面试官说server就是有资源限制,不管几个thread只能一分钟发10个,如果每分钟有
11个消息怎么办?我说加server,面试官说不管加多少server, 总有限制,如果消息数
量超过限制怎么办?他说我的design不work. 我就傻了,不太明白他要什么了。
请问大侠这个应该怎么设计?
time。到了那个时间就把消息发出去。
我给出的设计是当create时,存入DB. 然后有一个scheduler每分钟query db, 把这一
分钟需要发送的消息发出去。面试官问消息太多,如果server不能发完这一分钟的消息
怎么办。我说scheduler 除了发这一分钟的,也可以发送历史留下未发出的,这一分钟
没发出,下一分钟数量少了就可以发出。或者单独有一个thread专门发送历史未发出的
。面试官说server就是有资源限制,不管几个thread只能一分钟发10个,如果每分钟有
11个消息怎么办?我说加server,面试官说不管加多少server, 总有限制,如果消息数
量超过限制怎么办?他说我的design不work. 我就傻了,不太明白他要什么了。
请问大侠这个应该怎么设计?