2023-08-23 16:12

SpringCloud常见面试题

少尉

JavaEE

(179)

(0)

收藏

1. 什么是微服务架构?

微服务架构就是将单体的应用程序分成多个应用程序,这多个应用程序就成为微服务,每个微服务运行在自己的进程中,并使用轻量级的机制通信。

这些服务围绕业务能力来分,并通过自动化部署机制来独立部署,这些服务可以使用不同的编程语言,不同数据库,以保证最低限度的集中式管理。


2. 为什么需要学习 SpringCloud?

springcloud 就基于 SpringBoot 的优雅简洁把市场上优秀的服务框架组合起来,通过 SpringBoot 风格进行再封装屏蔽掉了复杂的配置和实现原理。springcloud 开箱即用,只需要一个 jar 的依赖就可以了!springcloud 大多数子模块都是直击痛点,像 zuul 解决的跨域,fegin 解决的负载均衡,hystrix 的熔断机制等


3. SpringCloud 是什么?

SpringCloud 是一系列框架的有序集合,它利用 SpringBoot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、智能路由、消息总线、负载均衡、断路器、数据监控等,都可以用 SpringBoot 的开发风格做到一键启动和部署。

SpringCloud 并没有重复制造轮子,它只是将各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 SpringBoot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。


4. SpringCloud 的优缺点?

优点:

① 耦合度比较低,不会影响其他模块的开发

② 减轻团队的成本,可以并行开发,不用关注其他人怎么开发,先关注自己的开发

③ 配置比较简单,基本用注解就能实现,不用使用过多的配置文件

④ 微服务跨平台的,可以用任何一种语言开发

⑤ 每个微服务可以有自己的独立的数据库也有用公共的数据库

⑥ 直接写后端的代码,不用关注前端怎么开发,直接写自己的后端代码即可,然后暴露接口,通过组件进行服务通信

缺点:

① 部署比较麻烦,给运维工程师带来一定的麻烦

② 针对数据的管理比麻烦,因为微服务可以每个微服务使用一个数据库

③ 系统集成测试比较麻烦

④ 性能的监控比较麻烦 (最好开发一个大屏监控系统)


5. SpringBoot 和 SpringCloud 的区别?

SpringBoot 专注于快速方便的开发单个个体微服务

SpringCloud 是关注全局的微服务协调整理治理框架,它将 SpringBoot 开发的一个个单体微服务整合并管理起来,为各个微服务之间提供,配置管理、服务发现、断路器、路由、微代理、事件总线、全局锁、决策竞选、分布式会话等等集成服务。

SpringBoot 可以离开 SpringCloud 独立使用开发项目,但是 SpringCloud 离不开SpringBoot,属于依赖的关系 SpringBoot专注于快速、方便的开发单个微服务个体,SpringCloud 关注全局的服务治理框架


6. SpringCloud 由什么组成?

SpringCloud Eureka:服务注册与发现

SpringCloud Zuul:服务网关

SpringCloud Ribbon:客户端负载均衡

SpringCloud Feign:声明性的 Web 服务客户端

SpringCloud Hystrix:断路器

SpringCloud Config:分布式统一配置管理等20几个框架,开源一直在更新


7. SpringCloud 和 dubbo 区别?

服务调用方式:

dubbo 是 RPC

springcloud 是 Rest Api

注册中心:

dubbo 是 zookeeper

springcloud是 eureka/zookeeper

服务网关:

dubbo 本身没有实现,只能通过其他第三方技术整合;

springcloud 有 Zuul 路由网关,作为路由服务器,进行消费者的请求分发,springcloud支持断路器,与git完美集成配置文件支持版本控制,事物总线实现配 置文件的更新与服务自动装配等 等一系列的微服务架构要素。


0条评论

点击登录参与评论