经验心得
美女客户觉得界面不够美观,抽空帮她美化一下界面哈哈哈。业务开发咱们聊点啥呢?首先核心就是先把增删改查这些基础操作搞懂。在此基础上,咱们再逐步掌握前后端框架的对接,以及后端相关的核心技术栈,比如各类ORM框架的使用,缓存的落地,消息队列MQ,数据库读写分离的实现,分布式模块的搭建,还有高并发场景下的代码编写技巧。咱们就以一个经典的高并发场景展开聊聊,限量100份的抢票或抢优惠券活动。面对这个场景,很多人第一反应应该都是用锁,或者借助缓存来优化对吧?但事情真的就这么简单吗?答案必然是否定的。各位应该经历过双十一或者各类平台的限时优惠活动吧?往往一眨眼的功夫,活动就显示 “已售罄”,一秒钟都撑不住。试想一下,这种场景下,服务器可能要瞬间承接十几万甚至更多的并发请求,仅仅依靠简单的加锁或缓存,真的能扛住吗?而且如果只做简单的锁和缓存优化,又会引发哪些潜在问题呢,比如加锁后,其他请求会一直等待,那服务器cpu会如何呢?其实到了后期的业务开发,咱们核心要做的并不是单纯堆砌技术,而是制定各种合理的安全业务策略框架,核心目标一方面是最大限度降低服务器的承载压力,另一方面是规避各类安全风险。针对刚才说的100份限量抢兑场景,咱们是不是可以换个思路,咱们不一定要让所有十几万请求都进入后端业务逻辑处理,而是在请求节点入口处就做筛选,只接受100个有效请求进行后续处理,其余的九万多请求直接屏蔽,返回 “活动已结束”的提示就行?这样是否能减轻服务器压力,又能提升用户的响应体验,还能避免无效请求占用核心资源?