1. openFeign的主要作用

    基于http请求,通过负载均衡获取其他服务的ip和端口执行接口

  2. SpringCould中的重要组件

    注册中心、配置中心、网关、熔断器

  3. mysql索引

    分为主键索引、二级索引……

  4. B+树的优势

  5. 建索引考虑哪些方面

    索引区分度,索引失效的问题,不建冗余的索引,考虑业务是否需要频繁新增修改而查询较少的情况下不建索引

  6. 虽然走了索引但是还是很慢

    索引区分度低,相同数据太多

  7. 数据量小为什么要分成多个服务

  8. 微服务和单体应用如何选择

  9. excel导入导出数据量比较大的话怎么考虑设计

    考虑内存,做成分段上传下载

  10. synchronized 和 ReentrantLock 的区别

    两者的共同点:

    1. 都是用来协调多线程对共享对象、变量的访问
    2. 都是可重入锁,同一线程可以多次获得同一个锁
    3. 都保证了可见性和互斥性

    两者的不同点:

     11. ReentrantLock 显式的获得、释放锁,synchronized 隐式获得释放锁
     22. ReentrantLock 可响应中断、可轮回,synchronized 是不可以响应中断的,为处理锁的 不可用性提供了更高的灵活性
     33. ReentrantLock 是 API 级别的,synchronized 是 JVM 级别的 
     44. ReentrantLock 可以实现公平锁 
     55. ReentrantLock 通过 Condition 可以绑定多个条件 
     66. 底层实现不一样, synchronized 是同步阻塞,使用的是悲观并发策略,lock 是同步非阻塞,采用的是乐观并发策略 
     77.  Lock 是一个接口,而 synchronized 是 Java 中的关键字,synchronized 是内置的语言 实现。
     88.  synchronized 在发生异常时,会自动释放线程占有的锁,因此不会导致死锁现象发生; 而 Lock 在发生异常时,如果没有主动通过 unLock()去释放锁,则很可能造成死锁现象, 因此使用 Lock 时需要在 finally 块中释放锁。 
     99.  Lock 可以让等待锁的线程响应中断,而 synchronized 却不行,使用 synchronized 时, 等待的线程会一直等待下去,不能够响应中断。 
    1010. 通过 Lock 可以知道有没有成功获取锁,而 synchronized 却无法办到。 
    1111. Lock 可以提高多个线程进行读操作的效率,既就是实现读写锁等。
    
  11. synchronized原理上是怎么实现的

  12. 服务发现用什么

  13. redis用于哪方面

    用户登录后的session信息缓存jwt的token为key,用户信息为value

  14. redis的数据类型

    • String
    • Hash
    • Set
    • ZSet
    • List