java高并发学习笔记
文章平均质量分 87
-无妄-
本人主要记录的是学习笔记和其他参考,持续学习中。。。
展开
-
高并发之消息队列
简单模型 比如一个接口处理短信发送,如果没处理完就可以放入消息队列;然后等待接口处理,如果接口处理短信发送失败则可以再次放入消息队列,减少尝试的次数和占用的线程,再次进行处理。 消息队列的特性 业务无关:只做消息分发 FIFO:先投递先到达 容灾:节点的动态增删和消息的持久化 性能:吞吐量提升,系统内部通信效率提高 为什么需要消息队列 【生产】和【消费】的速度或稳定性等因素不一致 举几个...原创 2018-11-09 10:36:34 · 3536 阅读 · 1 评论 -
高并发之应用拆分
文章目录原则思考框架 比如一个股票系统有用户信息、开户、股票行情、交易、订单等,拆分后如下图所示: 原则 业务优先 每个系统都会有多个模块,每个模块又有多个业务功能;按照业务边界进行切割,再对模块进行拆分。 循序渐进 边拆分边测试,保证系统的正常运行。 兼顾技术:重构、分层 不能为了分布式而分布式,拆分过程不仅是业务梳理也是代码重构的过程,根据技术进行分层来分配工作,ui对用户体验,熟悉C和C...原创 2018-11-09 11:25:16 · 433 阅读 · 0 评论 -
高并发之扩容思路
垂直扩容(纵向扩展) 垂直扩容(纵向扩展) :提高系统部件能力,比如增加系统内存的容量。 在这个例子中,我们假设有3辆卡车,每辆车一次可以运25根木材,计算花费1小时的情况下可以运送到指定地点等待处理的木材数量。通过这些数字我们可以算出我们系统最大的负荷量: 3辆卡车 * 25根木材 * 1小时=75根木材/小时 如果我们选择垂直扩展模型,那么我们将怎么做来使我们每小时可以处理150根木材?我们需...原创 2018-11-07 15:26:03 · 740 阅读 · 0 评论 -
高并发之缓存
文章目录缓存的特征缓存命中率影响因素缓存分类和应用场景 一般来说,现在的互联网应用网站或者APP,它的整体流程可以用我们这个图里展示的来表示,用户请求开始,从这个界面是最里面的浏览器和APP,到网络转发,再到应用服务,最后到存储,这纯属可能是数据库文件系统,然后再返回到界面呈现内容。 随着互联网的普及,内容信息越来越复杂,用户数和访问量越来越大,我们的应用需要支撑更多的并发量,同时,我们的应用服...原创 2018-11-08 15:44:37 · 2545 阅读 · 0 评论 -
高并发之应用限流思路
文章目录应用限流的常用算法:计数器法滑动窗口漏桶算法令牌桶算法小结 在开发高并发系统时,有三把利器用来保护系统:缓存、降级和限流: 缓存:缓存的目的是提升系统访问速度和增大系统处理容量 降级:降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开 限流:限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝...原创 2018-11-23 14:56:46 · 1084 阅读 · 0 评论