1.监控系统,监控哪些数据查询比较频繁,哪些服务调用频繁
2.临时活动是否结束通过前端js cookie来判断,减少对服务器的请求次数。
3消息队列 RocketMQ,消息堆积能力强,单机堆积上亿条
3.日志系统建议用 kafka,可以增加storm ,hdfs.logstash等配套设施。
4。限流,算法 令牌桶,漏桶;
5.程序在CPU工作原理,CUP运行原理
6.悲观锁,乐观锁: 读取-》操作-》存储
悲观锁 从读取开始加锁
自旋锁,适应性自旋锁:尝试的次数区别
无锁,偏向锁,轻量级锁,重量级锁,公平锁,非公平锁,可重入锁,非可重入锁,共享锁,排他锁
6.算法和数据结构:时间复杂度,空间复杂度
数组链表,排序:选择,冒泡,插入,快速,桶,堆,kim。
7.synchronzied lock bus,悲观锁
8.lock 和synchronzied区别:
性能没啥区别,lock可以更加细腻操作锁,很多接口 trylock ,lok,…
9.微服务架构:第一代 micro service 第二代:mesh service
10.volatitle 修饰变量使得多线程间变量可见性,并不能说是线程安全,应属多线程通信。
JUC(java.util.concurrent)包实现CAS多线程安全方式。
CAS缺点
CAS存在一个很明显的问题,即ABA问题。
问题:如果变量V初次读取的时候是A,并且在准备赋值的时候检查到它仍然是A,那能说明它的值没有被其他线程修改过了吗?
如果在这段期间曾经被改成B,然后又改回A,那CAS操作就会误认为它从来没有被修改过。针对这种情况,java并发包中提供了一个带有标记的原子引用类AtomicStampedReference,它可以通过控制变量值的版本来保证CAS的正确性。
令牌通
来源:CSDN
作者:奔跑的蜗牛kei
链接:https://blog.csdn.net/weixin_46021767/article/details/103944845