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 操作保持符合条件的操作保证原子性;

  • 相关阅读:
    SQL怎么随机提取出一条信息 mysql 获取随机记录
    css3 渐变 各浏览器兼容
    php的curl和socket的区别 转
    php获取本机真实IP地址
    SSH超时断开 ssh 老掉线
    php 获取远程服务器信息 get_headers 的使用
    如何删除右键菜单中的Catalyst(TM) Control Center选项
    多线程概念、案例!
    网络编程
    我的博客开通啦
  • 原文地址:https://www.cnblogs.com/iCanhua/p/9091109.html
Copyright © 2011-2022 走看看