当前位置: 首页 > news >正文

网站没有备案用什么cdn如何自己设计广告图

网站没有备案用什么cdn,如何自己设计广告图,南京市建筑工程网站,自豪地采用wordpress如何设置高并发接口一、并发队列的选择二、请求接口的合理设计三、高并发下的数据安全3.1 超发的原因3.2 悲观锁思路3.3 FIFO队列思路3.4 乐观锁思路一、并发队列的选择Java的并发包提供了三个常用的并发队列实现#xff0c;分别是#xff1a;ArrayBlockingQueue、Concurrent…如何设置高并发接口一、并发队列的选择二、请求接口的合理设计三、高并发下的数据安全3.1 超发的原因3.2 悲观锁思路3.3 FIFO队列思路3.4 乐观锁思路一、并发队列的选择Java的并发包提供了三个常用的并发队列实现分别是ArrayBlockingQueue、ConcurrentLinkedQueue 和 LinkedBlockingQueue 。ArrayBlockingQueue是初始容量固定的阻塞队列我们可以用来作为数据库模块成功竞拍的队列比如有10个商品那么我们就设定一个10大小的数组队列。ConcurrentLinkedQueue使用的是CAS原语无锁队列实现是一个异步队列入队的速度很快出队进行了加锁性能稍慢。LinkedBlockingQueue也是阻塞的队列入队和出队都用了加锁当队空的时候线程会暂时阻塞。在请求预处理阶段由于我们的系统入队需求要远大于出队需求一般不会出现队空的情况所以我们可以选择ConcurrentLinkedQueue来作为我们的请求队列实现二、请求接口的合理设计一个秒杀或者抢购页面通常分为2个部分一个是静态的HTML等内容另一个就是参与秒杀的Web后台请求接口。通常静态HTML等内容是通过CDN的部署一般压力不大核心瓶颈实际上在后台请求接口上。这个后端接口必须能够支持高并发请求同时非常重要的一点必须尽可能“快”在最短的时间里返回用户的请求结果。为了实现尽可能快这一点接口的后端存储使用内存级别的操作会更好一点。仍然直接面向MySQL之类的存储是不合适的如果有这种复杂业务的需求都建议采用异步写入。当然也有一些秒杀和抢购采用“滞后反馈”就是说秒杀当下不知道结果一段时间后才可以从页面中看到用户是否秒杀成功。但是这种属于“偷懒”行为同时给用户的体验也不好容易被用户认为是“暗箱操作”。三、高并发下的数据安全我们知道在多线程写入同一个文件的时候会存现“线程安全”的问题(多个线程同时运行同一段代码如果每次运行结果和单线程运行的结果是一样的结果和预期相同就是线程安全的)。如果是MySQL数据库可以使用它自带的锁机制很好的解决问题但是在大规模并发的场景中是不推荐使用MySQL的。秒杀和抢购的场景中还有另外一个问题就是“超发”如果在这方面控制不慎会产生发送过多的情况。我们也曾经听说过某些电商搞抢购活动买家成功拍下后商家却不承认订单有效拒绝发货。这里的问题也许并不一定是商家奸诈而是系统技术层面存在超发风险导致的。3.1 超发的原因假设某个抢购场景中我们一共只有100个商品在最后一刻我们已经消耗了99个商品仅剩最后一个。这个时候系统发来多个并发请求这批请求读取到的商品余量都是99个然后都通过了这一个余量判断最终导致超发。(同文章前面说的场景)在下面的这个图中就导致了并发用户B也“抢购成功”多让一个人获得了商品。这种场景在高并发的情况下非常容易出现。3.2 悲观锁思路解决线程安全的思路很多可以从“悲观锁”的方向开始讨论。悲观锁也就是在修改数据的时候采用锁定状态排斥外部请求的修改。遇到加锁的状态就必须等待。虽然上述的方案的确解决了线程安全的问题但是别忘记我们的场景是“高并发”。也就是说会很多这样的修改请求每个请求都需要等待“锁”某些线程可能永远都没有机会抢到这个“锁”这种请求就会死在那里。同时这种请求会很多瞬间增大系统的平均响应时间结果是可用连接数被耗尽系统陷入异常。3.3 FIFO队列思路那好那么我们稍微修改一下上面的场景我们直接将请求放入队列中的采用FIFO(First Input First Output先进先出)这样的话我们就不会导致某些请求永远获取不到锁。看到这里是不是有点强行将多线程变成单线程的感觉哈。然后我们现在解决了锁的问题全部请求采用“先进先出”的队列方式来处理。那么新的问题来了高并发的场景下因为请求很多很可能一瞬间将队列内存“撑爆”然后系统又陷入到了异常状态。或者设计一个极大的内存队列也是一种方案但是系统处理完一个队列内请求的速度根本无法和疯狂涌入队列中的数目相比。也就是说队列内的请求会越积累越多最终Web系统平均响应时候还是会大幅下降系统还是陷入异常。3.4 乐观锁思路这个时候我们就可以讨论一下“乐观锁”的思路了。乐观锁是相对于“悲观锁”采用更为宽松的加锁机制大都是采用带版本号(Version)更新。实现就是这个数据所有请求都有资格去修改但会获得一个该数据的版本号只有版本号符合的才能更新成功其他的返回抢购失败。这样的话我们就不需要考虑队列的问题不过它会增大CPU的计算开销。但是综合来说这是一个比较好的解决方案。有很多软件和服务都“乐观锁”功能的支持例如Redis中的watch就是其中之一。通过这个实现我们保证了数据的安全。最后欢迎大家有兴趣的可以关注我的公众号【java小瓜哥的分享平台】文章都会在里面更新还有各种java的资料都是免费分享的。
http://www.sadfv.cn/news/163712/

相关文章:

  • 怎样不让网站自动跳转wap深圳龙华建网站
  • 各大游戏网站成都建设厅官方网站查询
  • 网站建设投入产出分析杭州网络排名优化
  • 重庆网站设计方案网站建设格式
  • 深圳专业做网站建网站价格网站改版需要向百度000提交吗
  • 汕头论坛建站模板wordpress查看数据库文件大小
  • 女的有没有做网站的室内设计找图片的网站
  • 网站开发公司地址购物网站首页设计
  • 建网站哪家好案例杭州免费建站
  • 表白网站制作源码长治网站开发
  • 湖北省建设局网站wordpress google翻译插件
  • 想要网站导航正式推广关于网站建设的意义
  • 珠海网站搭建学动漫设计我后悔了
  • 那间公司做网站好wordpress内容只有自已可见
  • 科技公司网站系统dede模板蓝色大气简洁企业网站模板下载
  • 青浦做网站公司wordpress 视频教程
  • 公明网站建设怎么做网页设计大赛新闻稿
  • 东莞市五金有限公司 寮步 技术支持 网站建设windows优化软件排行
  • 关于设计的网站有哪些南京网站设计公司兴田德润放心
  • 手机做的兼职网站wordpress出现两个首页
  • wordpress设置网站主题甘肃省路桥建设集团网站
  • 做360网站优化快速排亲子装网站建设
  • 如何对网站进行爬虫郑州网页制作
  • 科技网站制作案例7474网页游戏大全
  • 苏州网站建设布局网站运营经验分享ppt模板
  • 机构改革 住房与城乡建设厅网站自己建个网站怎么挣钱
  • 网站一定要公司吗图片压缩wordpress
  • 电影网页设计与制作教程seo在线推广
  • 网站开发公司招聘技术人员0元代理注册公司
  • 网站设计网站类型如何增加网站关键词库