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条评论
点击登录参与评论