最新文章
-
你知道哪些微服务技术栈
参考答案 维度:springcloud 服务开发:springboot spring springmvc 服务配置与管理:Netfix的Archaiusm,阿里的Diamond 服务注册与发现:Eureka,Zookeeper 服务调用:Rest RPC gRpc 服务熔断器:Hystrix 服务负载均衡:Ribbon Nginx 服务接口调用:Fegin 消 息 队 列:Kafka Rabbitm…... -
Spring 如何解决循环依赖问题
参考答案 在Spring中,循环依赖问题主要有以下三种情况: 通过构造方法进行依赖注入时产生的循环依赖问题。 通过setter方法进行依赖注入且是在多例(原型)模式下产生的循环依赖问题。 通过setter方法进行依赖注入且是在单例模式下产生的循环依赖问题。 在Spring中,只有第3种方式的循环依赖问题被解决了,第1和第2种方式在遇到循环依赖问题时都会产生异常。 原因: 第1种构造方法注入的情况下…... -
什么是Redis持久化、Redis持久化机制,以及各自的优缺点
参考答案 一、Redis持久化 持久化就是把内存的数据写到磁盘中去,防止服务宕机了内存数据丢失。 二、Redis 的持久化机制、以及其优缺点 Redis 提供两种持久化机制: RDB(默认) 和 AOF 机制。 1. RDB:是Redis DataBase缩写快照 RDB是Redis默认的持久化方式。按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件为dump.rdb。通过配…... -
CAS的底层原理是什么
参考答案 1. CAS(compareAndSwap)的概念 前往查看:什么是CAS 2. CAS的优点、缺点 前往查看:CAS有什么优点、缺点 3. CAS的底层原理 CAS的实现主要在JUC中的atomic包,我们以AtomicInteger类为例: 通过代码追溯,可见: Java中的CAS操作,都是通过sun包下Unsafe类实现。 而Unsafe类中的方法都是native方法,由JV…... -
如何保证缓存与数据库双写时的数据一致性
参考答案 只要用缓存,就可能会涉及到缓存与数据库双存储双写。只要是双写,就一定会有数据一致性的问题。 如何解决数据一致性的问题呢?有两个方案供参考: 解决方案一:读请求和写请求串行化,串到一个内存队列里去。 这种方式可以保证一定不会出现不一致的情况。 串行化之后,会导致系统的吞吐量会大幅度的降低,用比正常情况下多几倍的机器去支撑线上的一个请求。 一般来说,如果系统不是严格要求缓存+数据库必须一致性…... -
MySQL进行慢SQL优化的优化思路、解决办法
参考答案 MySQL进行慢SQL优化: 一、MySQL进行慢SQL优化的思路 通过慢查询日志去寻找哪些 SQL 执行效率低。 使用 explain 获取低效率 SQL 的执行计划。 结合 SQL 与执行计划,进行分析与优化。 二、引起 SQL 查询很慢的原因,以及解决办法 1. 没有索引 解决办法: 根据 where 和 order by 使用比较频繁的字段创建索引,提高查询效率。 索引不宜过…...