- 博客(109)
- 收藏
- 关注
原创 微服务设计模式
通过使用 CQRS 模式,我们可以独立地优化写操作和读操作,从而提高系统的性能和响应能力。一个长事务,之前支付成功,然后后端的配送订单也成功等等,全部成功之后这个长事务才能完整的结束。引入MQ后,每个小的事务成功之后,就成功了,保证最终一致性即可。
2024-08-31 10:57:59
1236
原创 MySQL 深度分页优化
分页使用limit ,前提是要排序好的数据,这时候,就推荐使用带索引的字段排序,因为索引是天然有序的,不需要像是无序的字段一样,全表扫描,如果太大的话,还filesort ,利用文件排序,排序完成之后,才能分页,很慢。但是,如果分页过深的话,比如limit100万,仍然无需要查询到100万数据,中间有大量的io操作(回表查询其它字段),这时候考虑用上子查询,先查到100万位置的往后10条数据(直接用id主键查,因为没有回表,直接索引查,所以很快),然后再关联10条数据,取得完整的数据。
2023-08-15 13:37:24
636
原创 性能优化必知必会
当我们分配内存时,如果在满足功能的情况下,可以在栈中分配的话,就选择栈这里面的性能优化技术,要么减少了磁盘的工作量(比如 PageCache 缓存),要么减少了 CPU 的工作量(比如直接 IO),要么提高了内存的利用率(比如零拷贝)。你在学习其他磁盘 IO 优化技术时,可以延着这三个优化方向前进,看看究竟如何降低时延、提高并发能力Nginx 的开放式架构允许第三方模块通过 10 多个钩子函数,在不同的生命周期中处理请求。同时,还允许 C 模块自行解nginx.conf 配置文件。
2023-08-08 17:39:01
568
1
原创 高并发40问
横向扩展:分而治之是一种常见的高并发系统设计方法,采用分布式部署的方式把流量分流开,让每个服务器都承担一部分并发和流量缓存:使用缓存来提高系统的性能。缓存的语义很丰富,可以将任何降低响应时间的中间存储都称为缓存。异步:在某些场景下,未处理完成之前,我们可以让请求先返回,在数据准备好之后再通知请求方,这样可以在单位时间内处理更多的请求。请求丢到消息队列中,快速响应用户。选择最小的结构,满足业务和流量的要求,避免过度设计带来的成本上升。
2023-07-03 17:27:49
737
原创 Aop源码解析(二)核心对象创建
AspectJAwareAdvisorAutoProxyCreator,AspectJPointcutAdvisor
2023-03-12 15:54:33
212
原创 Spring源码对注解处理 @Bean、@ComponentScan、@Import、@ImportResource等
注解@Bean、@Component、@ComponentScan、@Import、@ImportResource
2023-02-17 13:43:40
230
1
原创 注解解析原理:ConfigurationClassPostProcessor及ConfigurationClassParser
ConfigurationClassPostProcessor及ConfigurationClassParser
2022-12-06 17:03:15
227
原创 ConfigurationClassPostProcessor 如何放入processors中
ConfigurationClassPostProcessor初始化调用
2022-12-05 13:15:02
302
原创 五、Spring源码之invokeBeanFactoryPostProcessors方法
invokeBeanFactoryPostProcessors方法
2022-11-28 17:13:44
91
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人