今天面试问道:实现小米管理智能设备的难易度

AkataMoKa 发布于 2016/03/18 10:45
阅读 154
收藏 0

面试官不是这么直接问的,他问我有没有并发编程的经验,说他们有一个智能设备管理的需求

大概流程是:
客户(网页或App) -> 公司服务器(Linux)-> 控制设备

他说他们以前是Java写的,但是效果不好(没有说具体哪些不好,技术面试官今天不在,我猜是相应时间,不是实时的)
他们现在在用 C 重写架构

我当时说的是,可以用 Netty NIO 实现,我认为这个场景和普通的用户访问 Web 页面类似:
用户 -> App Server -> DB

当时我问了下他们的并发量有多少,他说他们的设备第一年是1w台,这个其实很少

我就设想,如果是100w台设备,加入一个Netty可以承受10w并发,那么需要10个服务器,前面一个网关来分发请求,然后保持长链接,这样我觉得应该可以解决他们的需求

--------------------------------------

谈到并发,我想起我第一个公司碰到的问题就是用户注册,当时只是在代码里面写入了检测用户名是否重复,后来在数据库里面发现了两个相同的用户名,应该是并发注册引起的

现在想起,单机还是很好解决的,在数据库创建唯一索引,或者是在检测用户名是否重复和插入数据库那里用 sync 包一下

不过集群情况就不行了,用户注册数据会分摊到很多数据库服务器上,如果同时发请求会不会比较慢?

我想是不是有一个K/V数据库,保存了所有用户,从那里查就可以了?

加载中
0
AkataMoKa
AkataMoKa
我个人觉得他们用C写的,也许定制性比较高,没有Netty那么通用
返回顶部
顶部