草庐IT

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

码云铁粉 2023-04-20 原文

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面试题——常见项目真实面试题(实际面试被问到)的更多相关文章

  1. ruby-on-rails - 如何验证 update_all 是否实际在 Rails 中更新 - 2

    给定这段代码defcreate@upgrades=User.update_all(["role=?","upgraded"],:id=>params[:upgrade])redirect_toadmin_upgrades_path,:notice=>"Successfullyupgradeduser."end我如何在该操作中实际验证它们是否已保存或未重定向到适当的页面和消息? 最佳答案 在Rails3中,update_all不返回任何有意义的信息,除了已更新的记录数(这可能取决于您的DBMS是否返回该信息)。http://ar.ru

  2. ruby - 如何在 buildr 项目中使用 Ruby 代码? - 2

    如何在buildr项目中使用Ruby?我在很多不同的项目中使用过Ruby、JRuby、Java和Clojure。我目前正在使用我的标准Ruby开发一个模拟应用程序,我想尝试使用Clojure后端(我确实喜欢功能代码)以及JRubygui和测试套件。我还可以看到在未来的不同项目中使用Scala作为后端。我想我要为我的项目尝试一下buildr(http://buildr.apache.org/),但我注意到buildr似乎没有设置为在项目中使用JRuby代码本身!这看起来有点傻,因为该工具旨在统一通用的JVM语言并且是在ruby中构建的。除了将输出的jar包含在一个独特的、仅限ruby​​

  3. ruby-on-rails - 项目升级后 Pow 不会更改 ruby​​ 版本 - 2

    我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby​​版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby​​版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘

  4. ruby-on-rails - 新 Rails 项目 : 'bundle install' can't install rails in gemfile - 2

    我已经像这样安装了一个新的Rails项目:$railsnewsite它执行并到达:bundleinstall但是当它似乎尝试安装依赖项时我得到了这个错误Gem::Ext::BuildError:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcheckingforlibkern/OSAtomic.h...yescreatingMakefilemake"DESTDIR="cleanmake"DESTDIR="

  5. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  6. Ruby 从大范围中获取第 n 个项目 - 2

    假设我有这个范围:("aaaaa".."zzzzz")如何在不事先/每次生成整个项目的情况下从范围中获取第N个项目? 最佳答案 一种快速简便的方法:("aaaaa".."zzzzz").first(42).last#==>"aaabp"如果出于某种原因你不得不一遍又一遍地这样做,或者如果你需要避免为前N个元素构建中间数组,你可以这样写:moduleEnumerabledefskip(n)returnto_enum:skip,nunlessblock_given?each_with_indexdo|item,index|yieldit

  7. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  8. java - 我的模型类或其他类中应该有逻辑吗 - 2

    我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我

  9. java - 什么相当于 ruby​​ 的 rack 或 python 的 Java wsgi? - 2

    什么是ruby​​的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht

  10. ruby - 如何使用 CarrierWave 从 S3 获取真实文件 - 2

    我有一个应用程序可以读取文件的内容并为其编制索引。我将它们存储在磁盘本身中,但现在我使用的是AmazonS3,因此以下方法不再适用。事情是这样的:defperform(docId)@document=Document.find(docId)if@document.file?#Youshould'tcreateanewversion@document.versionlessdo|doc|@document.file_content=Cloudoc::Extractor.new.extract(@document.file.file)@document.saveendendend@docu

随机推荐