博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高并发吹牛经验
阅读量:5099 次
发布时间:2019-06-13

本文共 778 字,大约阅读时间需要 2 分钟。

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

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

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

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

 

转载于:https://www.cnblogs.com/iCanhua/p/9091109.html

你可能感兴趣的文章
Validate a sudo puzzle
查看>>
bzoj1044 [HAOI2008]木棍分割——前缀和优化DP
查看>>
使用 Override 和 New 关键字进行版本控制
查看>>
安装Ubuntu的那些事儿
查看>>
Safari导入书签
查看>>
HTML列表
查看>>
c#FTP应用---windows iis
查看>>
linux下调整java版本
查看>>
AutoCAD实用技巧基础篇
查看>>
Junit测试工具
查看>>
ubuntu 系统环境配置记录
查看>>
C# 流总结
查看>>
org.apache.hadoop.mapreduce.lib.input.InvalidInputException: Input path does not exist: file:/input
查看>>
jumpserver安装与部署
查看>>
Apache,php配置
查看>>
Python特殊语法:filter、map、reduce、lambda
查看>>
vs2008 此安装不支持该项目类型
查看>>
C# Hash算法
查看>>
转:C语言深度剖析三
查看>>
HDU 2095 find your present (2) 异或
查看>>