网站首页 关于我
面试中的问题解决思路与方案
发布时间:2016-05-24 11:05查看次数:5040
跨平台 APP 登陆以及安全性
为啥有这个问题: 基于安卓 IOS纯应用层开发 而不是内置浏览器 那么没有COOKIE 和SESSION如何做个这些
解决思路如下:
1. 利用到网络游戏的封包思维.AJAX其他也是一个包 用户登陆发包给服务器 服务器如何判断他登陆了?
就是给他一个标示符(这个标识符可以是一个加密的字符串,也可以是一个UID + USERNAME )但是如果被人抓了包
如果判断他的有效性? 就是给他加个附加校验~ 以及登陆后的生命周期!
登陆后的生命周期 考虑到用时钟 但是在高并发下 多个时钟 如果内存溢出? 也就是这个方案不好!
另外一个就是memcached了 存内存 利用他的有效期 咋利用?
用户登陆后->返回标示头->写内存周期->客服端在此访问带着标示头->复校验->去内存存->如果存在继续执行->不存在
嘿嘿嘿 麻烦重新登陆吧!
这样的好处在于 不增加代码 复杂度 以及服务器成本!
第二个思路 (换个思路做网站! 就是基于网络通信了websocker协议的长连接)
这个如何做就更简单了 只要安卓与IOS层建立长连接 进行通讯即可->如何判断一个用户是否在线?心跳包->1个字节的
验证比如发12返回13 发13返回14~ 这个比ajax更节约流量!
2.WEB 产品高并发
其实压力不在于服务器而是在于 数据库 这才是WEB的瓶颈~~~
换个游戏角度理解 这个memcached 其实就是游戏的DB程序 用来在内存中记录数据的~~~这样理解其实就简单多了
他们之间又有不同点 WEB数据库 不用频繁更新 而这个游戏程序需要频繁更新 周期存贮
这样的数据库设计是这样的一个用户登路 去取内存!!
而网站的是同时高峰访问!!! memcached 就可以常驻内存! 这样理解 你就知道什么位置用MEMCACHED了!!!
面试中的进步
3.队列模式!
游戏的队列是用户长连接 根据用户数据量判断
网站其实也可以~~他的队列 可以写内存 用异步时钟处理!就是所谓的队列!
例如(秒杀抢购)首先商品有100件~ 一个字段存数量 一个字段存用户订单信息 假定我们订单信息的头部是
theme_1....theme..100 字段-1 这里写入一个theme_1 99 theme_2
这样订单信息也存下来了 那个数据库还没有压力!
(这里可能会有人想到memcached挂了咋办? 难道活动的时间 不能临时加一台有保证的服务器? 一般写内存 一边记录订单
信息写数据库~~~)
这个时间在用脚本循环的去内存取出来写入数据库!
关键字词:面试中的问题解决思路与方案