http/https学习
redis主从同步学习
redis基础学习
由mysql的默认隔离级别引出的几个问题
- 讲讲mysql有几个隔离级别?
- mysql的默认隔离级别是哪个?
- 你们项目中选了哪个隔离级别,为什么?
这上面三个问题是面美团的时候被问到的。。前两个还好。。第三个让我有点摸不着头脑。。查了些资料之后就记录一下这个问题吧
操作系统
RocketMQ学习
一、消息队列能用来干什么?
异步,解耦,削峰。
1. 异步:
比如在电商的业务场景下,下单成功后要调用短信模块,邮件模块提醒买家下单成功的信息,而下单和发短信,发邮件使用消息队列来异步执行可以提高响应速度,增强用户体验。
2. 解耦
如果不用消息队列的话,对不同功能模块的调用是要写死在业务代码里的,也就是调用方在调用逻辑还耦合了”调用哪一个服务”这一层逻辑在里面逻辑,日后增加功能或删掉功能的时候,修改业务代码成本会比较大… 而使用消息队列的topic在中间进行一层解耦就能减轻这种问题,发送方只负责发送消息,消费方只负责消费消息,服务的类型被抽象成topic,由消息队列来管理。
3. 削峰
如果上游请求规模超出了下游服务的负载的话,使用消息队列可以起到一个缓冲的作用,即将请求先存起来然后让下游服务尽自己所能的去消费,保护了下游服务系统。
Java并发基础总结
详解AQS
什么是AQS
我们常用的j.u.c包里,提供了许多强大的同步工具,例如ReentrantLock,Semphore,ReentrantReadWriteLock等,但当这些工具难以满足某个场景的需求时,我们就需要定制化我们自己的同步器,这时,我们可能会想,如果能有一个像Servlet这种只要重写某几个方法就能完成一把定制锁的实现的就好了!! 没错,AQS就是提供了这样一种功能,它如果要实现一个同步器的大部分通用功能都帮我们实现好了,然后提供出抽象函数供我们重写来定制化自己想要的同步器。 实际上,上面所说的ReentrantLock,Semphore,ReentrantReadWriteLock等juc包中同步工具的实现,也都是在AQS的辅助下进行的“二次开发”。 例如在ReentrantLock继承了Lock接口,然后利用定制化了的继承了AQS的类,来去实现Lock接口。
Hello World
本文字数: 357 阅读时长 ≈ 1 分钟
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.