java核心技术第九版-java核心知识点
前言
Spring Cloud 是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。Spring Cloud 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来java核心技术第九版,通过 Spring Boot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
小编分享的这份Java后端开发面试总结包含了JavaOOP、Java集合容器、Java异常、并发编程、Java反射、Java序列化、JVM、Redis、Spring MVC、MyBatis、MySQL数据库、消息中间件MQ、Dubbo、Linux、ZooKeeper、 分布式&数据结构与算法等25个专题技术点,都是小编在各个大厂总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!【已完结】
完整版Java面试题地址:2021最新面试题合集集锦。
| 序号 | 专题 | 内容 | 链接 |
|:----|:----|:----|:----|
| 1 | 中间件 | Java中间件面试题(2021最新版) | |
| 2 | 微服务 | Java微服务面试题(2021最新版) | |
| 3 | 并发编程 | Java并发编程面试题(2021最新版) | |
| 4 | Java基础 | Java基础知识面试题(2021最新版) | |
| 5 | Spring Boot | Spring Boot面试题(2021最新版) | |
| 6 | Redis | Redis面试题(2021最新版) | |
| 7 | Spring MVC | Spring MVC面试题(2021最新版) | |
| 8 | Spring Cloud | Spring Cloud面试题(2021最新版) | |
| 9 | MySQL优化 | MySQL优化面试题(2021最新版) | |
| 10 | JVM | JVM性能调优面试题(2021最新版) | |
| 11 | Linux | Linux面试题(2021最新版) | |
| 12 | Mybatis | Mybatis面试题(2021最新版) | |
| 13 | 网络编程 | TCP,UDP,Socket,Http网络编程面试题(2021最新版) | |
| 14 | 设计模式 | 设计模式面试题(2021最新版) | |
| 15 | 大数据 | 大数据面试题100道(2021最新版) ||
| 16 | Tomcat | Tomcat面试题(2021最新版) | |
| 17 | 多线程 | 多线程面试题(2021最新版) | |
| 18 | Nginx | Nginx\_BIO\_NIO\_AIO面试题(2021最新版) | |
| 19 | memcache | memcache面试题(2021最新版) | |
| 20 | java异常 | java异常面试题(2021最新版) | |
| 21 | Java虚拟机 | Java虚拟机面试题(2021最新版) | |
| 22 | Java集合 | Java集合面试题(2021最新版) | |
| 23 | Git常用命令 | Git常用命令(2021最新版) | |
| 24 | Elasticsearch | Elasticsearch面试题(2021最新版) | |
| 25 | Dubbo | Dubbo面试题(2021最新版) | |
一、 什么是微服务架构1. 什么是微服务架构
微服务架构就是将单体的应用程序分成多个应用程序,这多个应用程序就成为微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信。这些服务围绕业务能力来划分,并通过自动化部署机制来独立部署。这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理。
2. 为什么需要学习Spring Cloud3. Spring Cloud 是什么4. SpringCloud的优缺点
优点:
1.耦合度比较低。不会影响其他模块的开发。
2.减轻团队的成本,可以并行开发,不用关注其他人怎么开发,先关注自己的开发。
3.配置比较简单,基本用注解就能实现,不用使用过多的配置文件。
4.微服务跨平台的java核心技术第九版,可以用任何一种语言开发。
5.每个微服务可以有自己的独立的数据库也有用公共的数据库。
6.直接写后端的代码,不用关注前端怎么开发,直接写自己的后端代码即可,然后暴露接口,通过组件进行服务通信。
缺点:
1.部署比较麻烦,给运维工程师带来一定的麻烦。
2.针对数据的管理比麻烦,因为微服务可以每个微服务使用一个数据库。
3.系统集成测试比较麻烦
4.性能的监控比较麻烦。【最好开发一个大屏监控系统】
5. SpringBoot和SpringCloud的区别?6. Spring Cloud和SpringBoot版本对应关系7. SpringCloud由什么组成8. 使用 Spring Boot 开发分布式微服务时,我们面临什么问题9. Spring Cloud 和dubbo区别?二、Eureka10. 服务注册和发现是什么意思?Spring Cloud 如何实现?11. 什么是Eureka12. Eureka怎么实现高可用13. 什么是Eureka的自我保护模式,14. DiscoveryClient的作用15. Eureka和ZooKeeper都可以提供服务注册与发现的功能,请说说两个的区别ZooKeeper中的节点服务挂了就要选举 在选举期间注册服务瘫痪,虽然服务最终会恢复,但是选举期间不可用的, 选举就是改微服务做了集群,必须有一台主其他的都是从 Eureka各个节点是平等关系,服务器挂了没关系,只要有一台Eureka就可以保证服务可用,数据都是最新的。 如果查询到的数据并不是最新的,就是因为Eureka的自我保护模式导致的 Eureka本质上是一个工程,而ZooKeeper只是一个进程 Eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像ZooKeeper 一样使得整个注册系统瘫痪 ZooKeeper保证的是CP,Eureka保证的是AP
CAP: C:一致性>Consistency; 取舍:(强一致性、单调一致性、会话一致性、最终一致性、弱一致性) A:可用性>Availability; P:分区容错性>Partition tolerance;
三、Zuul16. 什么是网关?17. 网关的作用是什么18. 什么是Spring Cloud Zuul(服务网关)19. 网关与过滤器有什么区别20. 常用网关框架有那些?21. Zuul与Nginx有什么区别?22. 既然Nginx可以实现网关?为什么还需要使用Zuul框架23. 如何设计一套API接口24. ZuulFilter常用有那些方法25. 如何实现动态Zuul网关路由转发26. Zuul网关如何搭建集群四、Ribbon27. 负载平衡的意义什么?28. Ribbon是什么?29. Nginx与Ribbon的区别30. Ribbon底层实现原理@LoadBalanced注解的作用五、Hystrix31. 什么是断路器32. 什么是 Hystrix?33. 谈谈服务雪崩效应34. 在微服务中,如何保护服务?35. 服务雪崩效应产生的原因36. 谈谈服务降级、熔断、服务隔离37. 服务降级底层是如何实现的?六、Feign38. 什么是Feign?39. SpringCloud有几种调用接口方式40. Ribbon和Feign调用服务的区别七、Bus41. 什么是 Spring Cloud Bus?八、Config42. 什么是Spring Cloud Config?43. 分布式配置中心有那些框架?44. 分布式配置中心的作用?45. SpringCloud Config 可以实现实时刷新吗?九、Gateway46. 什么是Spring Cloud Gateway?十、 SpringCloud主要项目47. SpringCloud主要项目Spring Cloud ConfigSpring Cloud Netflix(重点,这些组件用的最多)Spring Cloud BusSpring Cloud ConsulSpring Cloud SecuritySpring Cloud SleuthSpring Cloud StreamSpring Cloud TaskSpring Cloud ZookeeperSpring Cloud GatewaySpring Cloud OpenFeignSpring Cloud的版本关系48. Spring Cloud和SpringBoot版本对应关系49. Spring Cloud和各子项目版本对应关系