-
灰度发布是怎么做的?
-
SpringBoot的组件的加载机制?
-
SpringBoot starter的加载?有没有自己实现过Starter
-
有没有了解过SPI
-
Java锁有没有了解过?
-
乐观锁与悲观锁有没有在项目中使用过?
-
分布式锁 redis zk 具体实现机制?
-
Redission如何解决redis分布式锁的缺陷?
-
可用性系统的实时性?
-
报警是怎样实现的?
-
MySQL索引的数据结构?
-
Hash索引和B树索引有什么区别?
-
hash索引是否可以进行范围查询?
-
MySQL 行级锁,表级锁?
innodb 行级锁分为两种(共享锁(shared lock)读锁)和(排他锁(exclusive lock)写锁)
读锁是共享的,或者说是互相不阻塞的。多个客户在同一时刻可以同时读取同一个资源,而互不干扰。
写锁是排他的,也就是说一个写锁会阻塞其他的写锁和读锁,这是出于安全模式的考虑,只有这样,才能确保在给定时间内,只有一个用户能执行写入,并防止其他用户读取正在写入的同一资源。
在一个事务中无论开启了排它锁还是共享锁,对于另一个事务中的普通查询(非锁查询)都是不影响的(可以查询出来的),因为普通查询没有任何锁机制
如果事务A开启了排他锁
事务B在执行的时候无论使用共享锁还是排他锁,都查询不出来
如果事务A开启了共享锁
事务B如果开启了共享锁,可以查询
如果开启了排他锁,无法查询 因为排他锁与共享锁不能存在同一数据上。
mysql InnoDb引擎中update,delete,insert语句自动加排他锁
-
限流是怎么做的?限制的QPS还是限制的数
-
SpringCloud Alibaba有没有了解 dubbo gateway zuul
-
Kafka的限流是怎么做的?
可以通过bin/kafka-configs.sh脚本来实现限流
可以针对 user client-id (user,client-id)三个维度来配置限额。
//配置user+clientid。例如,user为”user1”,clientid为”clientA”。
bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048' --entity-type users --entity-name user1 --entity-type clients --entity-name clientA
//配置user。例如,user为”user1”
bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048' --entity-type users --entity-name user1
//配置client-id。例如,client-id为”clientA”
bin/kafka-configs.sh --zookeeper localhost:2181 --alter --add-config 'producer_byte_rate=1024,consumer_byte_rate=2048' --entity-type clients --entity-name clientA