您的位置:首页 > 职场人生

【码农杂谈】谈谈优先级问题

2021-02-26 21:48 866 查看

丛林小故事

        以前,有两个人在森林里散步,忽然出现了一只大老虎,一个人忙伏下身去系鞋带。另一个人问:你系什么鞋带啊?你难道还能跑得过老虎吗? 这个人说:我哪能跑得过老虎啊。不过我只要跑的过你就行了!

        假设系好鞋带确实可以跑得更快,如果老虎思维正常的话,应该是谁跑得慢吃掉谁,柿子挑软的捏嘛,那么没有系鞋带的童鞋在老虎看来优先级较高,给予优先处理。

广告优先级

        假设现在有一个很火的视频客户端AVideo,有三个广告商想在视频首页投放广告,广告商甲乙丙依次出资5元,3元,2元,那么如何公平公正公开地给这三个广告商播放广告呢?

        因为广告商出资不同,谁给的钞票多当然就优先投放谁的,谁给的钞票多当然优先多次播放谁的。于是开始按照先后播放思路设计,先加播放5次甲的广告,再按此播放3次乙的广告,2次丙的广告。但是客户端那么多,无法保证每个客户端都打开AVideo,有的客户端只打开过一次AVideo,可能乙丙的广告压根看不到,我们需要继续调整优先级。

        出资的多少只是权重占比不同,于是开始按照播放占比的思路设计,假设现在随机产生一个(0,1)数字,命中区间(0,0.5)时播放甲的广告,命中区间(0.5,0.8)时播放乙的广告,命中区间(0.8,1)时播放丙的广告。这样我们就按权重大小,暂时公平地解决了优先级的问题。广告当然还可以继续精准定位投放,暂不考虑。

队列的优先级

        经过广告位优先级的实现,突然发现,优先级的概念已经不只是一系列可以比较大小的数字,而是谁占有更多的资源,谁的优先级就会提高。队里是FIFO的,假设有两个队列A,B,两个普通的队列,如何才能让A队列数据的消费优先级高于B队列?

        要让A队列消费优先级高于B队列,不如限制B队列的消费者,消费速度,A的消费者多同时消费速度快,自然优先级就高于队列B了。扬汤止沸不如釜底抽薪,哈哈。那假如只有一个队列,来了一条优先级比较高的数据,如何才能让这条数据优先于其它已经排在队列里的数据?

SSO登录验证优先级

        假设流程简化,单点登录只是解决一个会话共享的状态。每次请求可以将token信息携带,由服务端获取并验证,也可以由服务端获取cookie信息并验证,如果还是没有token信息则跳转验证中心登录。潜意识自带了优先级概念,先处理request,再处理cookie。


缓存优先级

        为了提高各种响应速度,程序处处加入了缓存,以前单机年代把缓存直接放到本地的内存,先在内存加载数据里找,找不到再去数据库查,查完再次放到本地缓存里,这就是缓存优先级高于数据库。计算机的世界里处处充斥着优先级。

码农小记

        码农小伙伴开发功能,总是先完成,再完美,事分轻重缓急,这就是优先级的概念。生产出现bug时,立马停下手里新开发的功能,优先解决生产的问题。潜意识里自带优先级概念,如何协调好优先级顺序可以帮我们轻轻松松解决很多问题,如何提高一个事物优先级,加大投入,给予更多的资源,或者降低其它事物的占用资源。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: