今天面试面到了这个……然后面试官对把user_id到Websocket IP address + connection object的mapping存起来用于寻找很不认同。主要是websocket server一挂,所有和这个websocket server关联的那些data都失效了,如果重连之前很可能deliver不到相应的client 或者deliver到出错的client
比如user Alice - websocket server 1 - connect object 1
websocket server 挂了 但是这条记录还存着
我的回答是确实可能deliver不到,那message service就收不到websocket server的response;然后就暂时存着好了;他问如果这时候websocket server 1上线了,然后有个用户Bob连上了connection object 1,就deliver错了
我说connection object是跟IP有关的不会错(但是我也不知道connection object具体存的是什么)
总之被问的有点懵
他说让我想更好的从message service找web socket server的方法,我说可以用consistent hashing
总之问题就是:
- 怎么处理他说的这种web socket server挂了1M个重连的情况;
- 有没有更好的找到相应的websocket server的方法……