Littlehui's Notes

古代有一位将军喝酒成瘾,将军啊将军,他越喝越有型。


  • 首页

  • 关于

  • 标签

  • 分类

  • 搜索

大型网站的高并发读写总结

发表于 2022-12-01 | 分类于 concurrent
高并发的读写场景解析不管什么系统,都是做读和写。 侧重”高并发读”的系统存储引擎 ES,solr等终端用户-搜索(读)-> 搜索引擎 <-发布(写)- 内容生产者 数量级的差别:终端用户成千上百万个。生产者是公司内部产生,数量级不会太高。 响应时间。读的响应时间要求在毫秒级。 侧重” ...
阅读全文 »

【秒杀系统4】订单链路兜底方案,限流和熔断降级

发表于 2022-11-30 | 分类于 seckill
高并发场景下实现系统稳定运行微服务网关常见限流方案客户端限流 服务端限流 网关限流 应用层限流 微服务网关限流详情页入口流量保护,黑订单,限制一个IP访问频率。 基于Redis + Lua的脚本限流RequestRateLimiter过滤工厂。算法:令牌桶。 初始化令牌数量。每次请求过来获取一个令牌 ...
阅读全文 »

【秒杀系统3】优化订单交易全链路优化

发表于 2022-11-30 | 分类于 seckill
下单定时检查的优化RocketMq事务消息 Redis扣减库存优化 分布式锁,存在锁竞争,一个商品对应一个锁。几百个商品同时秒杀,Redis压力巨大。 优化方案: 分布式锁变成本地锁。秒杀服务开始前,由配置中心给每个应用服务实例下发一个库存数胡亮。然后每次下单,每个服务器只管自己的库存数量。与其他 ...
阅读全文 »

【秒杀系统2】设计与实现下

发表于 2022-11-29 | 分类于 seckill
秒杀前的流量控制预约开放预约获得资格后才能参与秒杀。 预约也有高并发所以需要一些设计: 预约管理后台。 预约短信和消息提醒。 面向终端的雨夜核心微服务,提供给用户预约和取消资格能力。 详情页在展示时获取预约信息的能力,比如商品是否预约,当前预约人数等等。 秒杀下单时检查预约资格的能力。 核心 ...
阅读全文 »

【秒杀系统1】设计与实现上

发表于 2022-11-29 | 分类于 seckill
业务分析 系统挑战 瞬时流量 库存有限 持续时间短 预约,限购 涉及 商品详情页,订单结算,支付 要解决的问题 瞬时流量带来的服务端压力,造成单个请求增加。打挂服务器,用户体验不佳。 库存有限。造成多卖,超卖。 刷子流量,黄牛抢单,刷订单。黑产!道高一尺魔高一丈。 通用秒杀架构问题分析解决大流量 ...
阅读全文 »

【tomcat调优系列4】Tomcat 类加载机制,和热部署

发表于 2022-11-23 | 分类于 tomcat
Tomcat类加载机制JVM类加载器Java中有3个类加载器,并且你可以自定义加载器。 BoostrapClassLoader 是启动类加载器,由C预演实现,用来加载JVM启动时所需的核心类,比如rt.jar。 ExtClassLoader是扩展类加载器,用来加载\jre\lib\ext 目录下J ...
阅读全文 »

【tomcat调优系列3】Tomcat底层BIO和NIO实现原理

发表于 2022-11-22 | 分类于 tomcat
Tomcat IO选择历史 Tomcat7时默认用的BIO,同步阻塞。可以通过配置修改为NIO 12<Connector port="8080" protocol="org.apache.coyote.http11.Http11Ni oProtocol" ...
阅读全文 »

【tomcat调优系列2】Tomcat响应数据过程

发表于 2022-11-18 | 分类于 tomcat
Tomcat响应数据过程关键部件解释 OutputStream: 用于response的输出流。Tomcat这里是CoyoteOutputStream OutputBuffer: 输出流的缓冲 ByteChunk: OutputBuffer的一个对象,缓冲的,缓冲区。 ByteChunk的buff构 ...
阅读全文 »

【tomcat调优系列1】Tomcat的请求过程

发表于 2022-11-18 | 分类于 tomcat
Tomcat请求过程几个部件: Endpoint: tomcat接收socket链接的组件。 Socket:请求的通道链接 InputBuffer. InternalInputBuffer,AbstractInputBuffer:缓冲内存 Request:请求对象 MessageBytes: 请求对 ...
阅读全文 »

云原生下的Java虚拟机 GraalVM

发表于 2022-10-27 | 分类于 java
背景java 的编译器C1,C2C1不进行优化,C2会进行优化。热点代码缓存,JIT等等。 C2 C++写的,太复杂,不维护,而且有bugjava语言一直在进步,C2没有办法维护,需要一种新的编译器来进行支持,所以有了GraalVM 事实JIT,性能优化、垃圾回收等代表的特性需要一段时间来达到最佳 ...
阅读全文 »
<i class="fa fa-angle-left"></i>1234…17<i class="fa fa-angle-right"></i>

163 日志
50 分类
127 标签
RSS
© 2026 Littlehui
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.2