您的当前位置:首页正文

Java面试题--SpringCloud篇

2024-11-08 来源:个人技术集锦

一、Spring Cloud

1. 什么是微服务架构?

2. 为什么需要学习 SpringCloud?

springcloud 就基于 SpringBoot 的优雅简

把市场上优秀的服务框架组合起来,通

过 SpringBoot 风格进行再封装屏蔽掉了

复杂的配置和实现原理

springcloud 开箱即用,只需要一个 jar 的

依赖就可以了!
springcloud 大多数子模块都是直击痛点,

像 zuul 解决的跨域,fegin 解决的负载均

衡,hystrix 的熔断机制等

3. SpringCloud 是什么?

SpringCloud 是一系列框架的有序集合

它利用 SpringBoot 的开发便利性巧妙地

简化了分布式系统基础设施的开发,如

服务发现注册、配置中心、智能路由、

消息总线、负载均衡、断路器、数据监

控等,都可以用 SpringBoot 的开发风格

做到一键启动和部署

SpringCloud 并没有重复制造轮子,它只

是将各家公司开发的比较成熟、经得起实

际考验的服务框架组合起来,通过 Spring

Boot 风格进行再封装屏蔽掉了复杂的配置

和实现原理,最终给开发者留出了一套

单易懂、易部署和易维护的分布式系统开

发工具包

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. 使用 SpringBoot 开发分布式微服务时,我们面临什么问题?

与分布式系统相关的复杂性-这种开销包括

网络问题,延迟开销,带宽问题,安全问


服务发现-服务发现工具管理群集中的流程

和服务如何查找和互相交谈。它涉及一个

的工作负荷,诸如计算机,计算机集群,

网络链路,中央处理单元,或磁盘驱动器

的分布
性能-问题 由于各种运营开销导致的性能

                 问题

8. SpringCloud 和 dubbo 区别?

服务调用方式:dubbo 是 RPC

                        springcloud 是 Rest Api
注册中心:dubbo 是 zookeeper

                springcloud是 eureka/zookeeper
服务网关:dubbo 本身没有实现,只能通过

                其他第三方技术整合;

                springcloud 有 Zuul 路由网关,

                作为路由服务器,进行消费者的

                请求分发,springcloud支持断路

                器,与git完美集成配置文件
                支持版本控制,事物总线实现配

                置文件的更新与服务自动装配等

                等一系列的微服务架构要素

二、Eureka

9. 服务注册和发现是什么意思?SpringCloud 如何实现?

当我们开始一个项目时,我们通常在属性

文件中进行所有的配置,随着越来越多的

服务开发和部署,添加和修改这些属性变

得更加复杂,有些服务可能会下降,而某

些位置可能会发生变化,手动更改属性可

能会产生问题</

显示全文