1.业务场景如下,两个用户捞漂流瓶,那么怎么保证在并发度很高的情况下保证两个用户不会捞到同一个瓶子?
并发场景下,一定是要加锁的,但是要使锁的粒度比较小,这样的话,就可以考虑分段式锁了。
2.为什么用户数据存在MongoDB中
见随笔。
3.jvm调优语句
见随笔。
4.token是无状态的
5.场景如下,假如说我们后台封禁了一个用户的登陆权限,而这个用户正在使用APP,那么怎样可以让这个用户的登陆状态消失并且立刻退出?
要考虑到token这个东西本身是个无状态的。
可以加个拦截器去鉴权,也就是说每次请求都要查看Redis缓存中的是否有用户的token。
6.dubbo框架你用来做什么的?
它是一个工作在SOA面向服务分布式框架中的服务管理中间件。提供的是高性能和透明化的RPC远程调用方案,还有SOA服务治理方案。
最大的特点就是松耦合。把服务分成服务提供者和服务消费者。
采用长连接和NIO异步通信。
zookeeper在里面做注册中心。
7.为什么要用到zookeeper,为啥用它做注册中心?
zookeeper是一个分布式的协调服务的开源框架。解决分布式集群中应用系统的一致性问题。
他可以提供统一的命名服务,统一的配置管理,统一集群管理,集群选主,服务动态上下线,分布式锁。
zookeeper本身的话是一个树状的小文件存储系统,服务注册的时候zookeeper会生成永久节点记录下服务,后面有临时节点记录url地址。
服务消费方法可以基于监听机制获取临时节点的变化。
8.rocketMQ应用场景?
项目比较大,做分布式系统,所有的远程服务调用请求都是同步执行的不好,所以引入rocketMQ。