zoukankan      html  css  js  c++  java
  • 高并发吹牛经验

      日后理解后补全细节和核心,主要是现在技术技巧的几个点

      记录这些不仅仅是因为以后要做高并发的,当有感悟后再来提升自己的技术水平。

      其实说到本质,这些都没啥意思,就是利用技术的技巧来达到某件事,其实本身问题来源于技术,也是由技术解决,真可笑

      1、缓存:

        内存数据库 redis、memcache

        客户端 缓存,如Http的加载文件缓存,利用版本

      2、异步:

        多线程编程

        NIO编程,Netty

        MQ、Subscribe/Publish,这里比较有意义,首先异步可以用发布/订阅,也可以用生产/消费者,也涉及了观察者模式,注意,发布/订阅是广义上的观察者模式!而MQ,也有不少技术规范,如JMS,AMQP,MQTT;JMS吧就是类似与JPA(ActiveMQ就是典型实现),JDBC这样的规范,个人比较喜欢AMQP(adanced message queue protocal),因为它只规范了传输协议,类似与HTTP,能做到跨平台,如RabbitMQ;最后那个是面向小设备的。最后提下,Kafka是有一套自己的协议的;

      3、限流:

        秒杀系统的限流,

      4、服务降级:

        还记得鹿晗事件导致微博崩溃,就做了服务降级,还有抖音评论功能关闭防止内涵段友撑爆

      5、并发安全问题

        利用数据库保证原子性事务,有时候不一定需要事务,比喻并发签到,可以利用唯一性索引(签到日期+用户ID)保证一个用户只能成功更新一次,否则会因为数据库约束而更新失败,成功避免多次签到;又例如库存系统-1,可以用 update 库存-1 where 库存> = 1 操作保持符合条件的操作保证原子性;

  • 相关阅读:
    判断一个序列是否是另一个序列的前缀
    Ant-打增量包
    cas-单点登录-应用说明
    firebug离线安装方法-拖入法
    oracle-获取数据库中所有表的注释 comments
    跨浏览器的placeholder – 原生JS版
    birt IE8 IE9 兼容问题
    websphere部署--web应用-以自己的项目为例
    JSP-页面跳转大全
    Oracle中Union与Union All的区别(适用多个数据库)
  • 原文地址:https://www.cnblogs.com/iCanhua/p/9091109.html
Copyright © 2011-2022 走看看