java面试题——常见项目真实面试题(实际面试被问到)

Posted 码云铁粉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java面试题——常见项目真实面试题(实际面试被问到)相关的知识,希望对你有一定的参考价值。

1、项目包含哪些微服务?你负责哪些?

登录微服务,注册微服务,搜索微服务,购物车微服务,订单微服务等10来个微服务


2、调用第三方接口异常,你是怎么处理的?

  1. 看下有没超过设置的超时时间,检查网络
  2. 如果网络都正常,去看下返回的错误码是什么

3、你们是对服务进行常见的容错处理的?

熔断、限流、降级


4、请求流量最大设置1W,突然来2W请求,多出来的1w怎么处理的?

  1. 线程池里面的workque排队,,可以让一万个请求都在排队
  2. 线程池的拒绝策略,直接拒绝
  3. 排队一部分,拒绝一部分

5、购物车同步redis,异步mysql场景中,mysql数据一直写入不进去怎么办?

  1. 用的rabbitmq的延时队列,还有一些死信队列
  2. 也有可能数据库并发量太高,处理不过来

6、项目上线前你是怎么进行测试的?

我们在公司内网搭了一个内部环境,我们这些微服务呢,一共用了两三台机器,然后把环境和微服务都搭好,一台机器上可以跑多个微服务。


7、自定义注解有用过吗?说个你在开发中使用时的场景?

鉴定权限,有的需要一个登录的,有的不需要登录的,和拦截器一起使用


8、分布式锁有使用过吗?

我在项目中确实没用过,但有过一些了解,像这种乐观锁、redis的锁、zookeeper锁,实现原理基于临时有序,让后一个节点监听前一个节点,前一个节点一删,后一个节点自动获取锁


9、说一下你们的微服务项目是怎么部署的?

环境搭好、项目打包放到各个服务器上去


10、如何在spring框架中解决多数据源的问题?(如何维护数据源)

在 spring 中配置

我们应当在 spring 中做如下配置:

xml 代码

< bean id = "dynamicLoadBean" class = "com.htxx.service.dao.DynamicLoadBean" > bean >

< bean id = "dataSource" class = "com.htxx.service.dao.MultiDataSource" >

< property name = "dataSource" >

< ref bean = "dataSource1" />

property >

bean >

< bean id = "sessionFactory" class = "org.springframework.orm.hibernate3.LocalSessionFactoryBean" >

< property name = "dataSource" >

< ref bean = "dataSource" />

property >

......

bean >

其中dataSource 属性实际上更准确地说应当是 defaultDataSource ,即 spring 启动时以及在客户没有指定数据源时应当指定的默认数据源。

该方案的优势

首 先,这个方案完全是在 spring 的框架下解决的,数据源依然配置在 spring 的配置文件中, sessionFactory依然去配置它 的 dataSource 属性,它甚至都不知道 dataSource 的改变。唯一不同的是在真正的 dataSource 与 sessionFactory 之间增加了一个 MultiDataSource 。

其 次,实现简单,易于维护。这个方案虽然我说了这么多东西,其实都是分析,真正需要我们写的代码就只有 MultiDataSource 、 SpObserver 两个类。 MultiDataSource 类真正要写的只 有 getDataSource() 和getDataSource(sp) 两个方法,而 SpObserver 类更简单了。实现越简单,出错的可能 就越小,维护性就越高。

最 后,这个方案可以使单数据源与多数据源兼容。这个方案完全不影响 BUS 和 DAO 的编写。如果我们的项目在开始之初是单数据源的情况下开发,随着项 目的进行,需要变更为多数据源,则只需要修改 spring 配置,并少量修改 MVC 层以便在请求中写入需要的数据源名,变更就完成了。如果我们的项 目希望改回单数据源,则只需要简单修改配置文件。这样,为我们的项目将增加更多的弹性。

 序号链接地址
1java面试题:Redis常见面试题(实际面试有被问到)
2java面试题:Spring核心面试题(必须理解背诵)
3java面试题:集合常见面试题
4java面试题:MQ、RabbitMQ面试题(面试必问,精华版)
5java面试题:Mysql常见面试题
6java面试题:线程、线程池、锁常见的15道面试题
7java面试题:jvm常见的5道面试题
8java面试题:自定义注解常见面试题
9java面试题:单例模式5道常见面试题
10java面试题:Nacos常见面试题
11java面试题:Elasticsearch面试突击
12java面试题:springboot常见面试题(一)
13Java面试题:SpringBoot常见面试题(二)
14java面试题:HTTP的常见状态码(实际面试有被问到)
15java面试题:常见项目真实面试题(实际面试被问到)
16java面试题:项目常见面试题(单点登录、购物车)
17java面试题:适用于2-5年后端开发面试(一)
18java面试题:适用于2-5年后端开发面试(二)
19java面试题:适用于2-5年后端开发面试(三)
20java面试题:2-5年后端开发常见面试题(四)
21java面试题:2-5年经验后端开发面试记录(五)
22java面试题——2-5年后端开发常见面试题(六)

以上是关于java面试题——常见项目真实面试题(实际面试被问到)的主要内容,如果未能解决你的问题,请参考以下文章

面试中被问到你遇到的java编程中的bug你如何解决的

Java面试必考题

设计模式这话题,我面试又被问了

设计模式这话题,我面试又被问了

那些经常被问的JAVA面试题

Java集合面试题汇总篇