第三轮面试

Posted day-day--up

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三轮面试相关的知识,希望对你有一定的参考价值。

1、描述一下你上一家公司SSM项目的功能模块有哪些?

举的例子是一个用SSM做的一个进销存的系统具体模块如下:

资料管理:包括商品资料、客户资料、供应商资料、仓库信息、采购合同、销售合同等。

采购管理:进货单、退货管理、历史查询等。
3. 销告管理:销售单、销售退货单、销告历史单、销售排行榜等。
4. 库存管理:出库单、入库单、库存查询、库存转库、库存盘点。报损报益、 上下限设定等。

订单管理:产品列表展示,我选购的产品、订单列表、查看订单。

应付款管理:款明细、应收款汇总、收款单、已收款明细、历史查询。

财务管理:结账日设定。结账统计、进销存汇总历史查询。

系统用户管理:管理员模块、普通用户模块。权限管理模块。

 

2.描述一下你上一家公司dubbo+zookeeper项目的功能模块有哪些?

支付模块、登录、注册模块、商品模块、订单模块、购物车模块、运营商店铺模块、商家管理模块、物流模块。

 

3.描述一下你上一家公司springcloud项目的功能模块有哪些?

springcloud项目的功能模块:

1EurekaNetflix公司开发的框架,用于微服务的注册和发现,提供相似功能的还可以使用Zookeeper,但官方推荐使用Eureka

   <!--maven依赖配置-->

   <dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka-server</artifactId>

   </dependency>

   <dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-eureka</artifactId>

   </dependency> 

 

2Zookeeper:基于Apache Zookeeper的分布式调度框架,提供微服务的注册和发现,与Eureka提供相似的功能。

  但是Zookeeper需要安装服务端,而Eureka无需安装。

  <!--maven依赖配置-->

  <dependency>  

  <groupId>org.springframework.cloud</groupId>  

  <artifactId>spring-cloud-starter-zookeeper-all</artifactId>  

  </dependency> 

 

3Actuator:展示当前运用程序的运行情况,例如运行状态、数据库、jdk版本等信息。

<!--maven依赖配置-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-actuator</artifactId>

</dependency>

 

4Security:基于Spring Security的安全工具包,为应用程序增加安全认证。例如为Eureka增加认证机制方可注册和发现服务。

<!--maven依赖配置-->

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-security</artifactId>

</dependency>

 

5RibbonNetflix公司开发的框架,实现客户端侧负载均衡。Ribbon可以与Eureka无缝整合使用,也可以脱离Eureka来使用。

<!--maven依赖配置-->

   <dependency>

<groupId>org.springframework.cloud</groupId>

<artifactId>spring-cloud-starter-ribbon</artifactId>

   </dependency>

 

6Feign:实现声明式RESTful调用。主要为请求时的多参数问题提供方便。    

  <!--maven依赖配置-->

  <dependency>  

  <groupId>org.springframework.cloud</groupId>  

  <artifactId>spring-cloud-starter-feign</artifactId>  

  </dependency> 

 

7HystrixNetflix公司开发的框架,是个熔断器,实现微服务的容错处理,防止雪崩效应。  

  <!--maven依赖配置-->

    <dependency>

  <groupId>org.springframework.cloud</groupId>

  <artifactId>spring-cloud-starter-hystrix</artifactId>

    </dependency>

<dependency>

  <groupId>org.springframework.cloud</groupId>

  <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>

    </dependency>

 

8TurbineNetflix公司开发的框架,聚合Hystrix的监控数据,使其整合到一起进行展示。

    <!--maven依赖配置,注意turbineturbine-stream不能同时使用-->

    <dependency>

   <groupId>org.springframework.cloud</groupId>

   <artifactId>spring-cloud-starter-turbine</artifactId>

    </dependency>

<dependency>

   <groupId>org.springframework.cloud</groupId>

   <artifactId>spring-cloud-starter-turbine-stream</artifactId>

    </dependency>

 

9RabbitMQ:此MQ是用Erlang语言编写的高效率开源消息队列框架,Spring Cloud整合了此MQ,用于消息队列功能。

<!--maven依赖配置-->

     <dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-starter-stream-rabbit</artifactId>

     </dependency>

 

10ZuulNetflix公司开发的框架,构建微服务网关,提供路由功能,聚合多个微服务方便一次调用。

<!--maven依赖配置-->

     <dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-starter-zuul</artifactId>

     </dependency>

 

11Sidecar:整合非JVM微服务,即整合由其他语言编写的服务,例如Node.js提供的服务。

<!--maven依赖配置-->

     <dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-netflix-sidecar</artifactId>

     </dependency>

 

 

12Config:统一管理微服务配置,包含有服务端和客户端。服务端的配置信息可以从gitsvn、本地文件等读取,然后供客户端查询。

<!--maven依赖配置-->

     <dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-config-server</artifactId>

     </dependency>

<dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-starter-config</artifactId>

     </dependency>

 

 

13Bus:事件、消息总线,用于在集群中传播状态的变化,需要借助MQ。配合Config框架,可以实现项目自动刷新配置。

<!--maven依赖配置,依赖rabbitMQ-->

     <dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-starter-bus-amqp</artifactId>

     </dependency>

 

 

14Sleuth:日志收集工具包,实现微服务的跟踪,分析系统瓶颈,解决系统问题。

<!--maven依赖配置-->

     <dependency>

    <groupId>org.springframework.cloud</groupId>

    <artifactId>spring-cloud-starter-sleuth</artifactId>

     </dependency>

 

4.描述一下你上一家公司项目中权限模块的思路

最基本的权限管理是要定义角色和权限
每个用户都有若干角色身份,比如项目负责人,项目参与者都是角色
权限就是操作,比如下载数据,浏览项目这些都是权限
角色表和权限表是多对多的关系
如果要给某个用户分配某个权限,就把一个权限和一个角色关联起来,同时确保这个用户有这个被关联的角色身份,这样就可以通过用户查角色,通过角色查关联权限,如果用户有关联当前操作需要的权限,就可以通过了。
以上是粗粒度的方法级权限管理的基本思想
细粒度的数据级权限控制要复杂得多,比如有两个项目,两个用户分别是它们的项目组长,而每个用户只能管自己的那个项目组,因为他们角色都是项目组长,所以就不能用上面的方法来验证权限了。
解决方案说来话长,采纳以后可以hi我详细说

授权时间可以使用定时器,到一定时间以后将角色和权限的关联关系删掉,也可以定期轮循检查,发现有权限过期了就删掉,前提当然是你的权限关联要记好生效时间和有效期

5.描述一下上一家公司项目中的报表模块的思路?

报表模块,一般采用 t + 1 统计,使用定时任务在凌晨空闲的时候,统计昨天的数据情况。然后前端开发页面,展示响应的报表。

 

以上是关于第三轮面试的主要内容,如果未能解决你的问题,请参考以下文章

2018面试总结第三轮

原创Bigo的Java面试,我挂在了第三轮技术面上.........

今日头条Android面试

面经分享工作两年多,面试Bigo(Java岗)居然挂在三轮技术面...

商汤科技面试——深度学习

泪目!蚂蚁金服三轮面试,四个小时灵魂拷问,艰难上岸