学习 SpringCloud 五大组件后的总结 一
1、什么是微服务?
把某一功能独立出来单独作为一个进程类似的微小的服务。独立做某件事,与其他的服务直接不影响。
微服务之间的优缺点?
优点:
每个服务足够内聚,足够小,代码容易理解,这样能聚焦一个指定的业务功能或业务需求
微服务是松耦合的,是有功能意义的服务,无论是在开发阶段还是部署阶段都是独立的
微服务能够使用不同的语言开发
易于与第三方集成,微服务允许容易且灵活的方式集成自动部署,通过集成工具,如 Jenkis,Hudson、bamboo。
微服务只是业务逻辑代码,不会和HTML,CSS 或其他的界面组件混合
每个微服务都有自己的存储能力,可以有自己单独的数据库,也可以有统一的数据库
缺点:
开发人员要处理分布式系统的复杂性
多服务运维难度,随着服务增加,运维压力也在增大
系统部署时的依赖
服务间的通信成本
数据一致性
系统集成测试+性能监控....等等
2、微服务之间是如何独立通讯的?
把dubbo和SpringCloud 通讯的方式举例出来
Dubbo 通讯是 RPC 方式 ------------- SpringCloud 通讯是 RESTFUL API 方式
3、SpringCloud和Dubbo有哪些区别?
— 可以基于几个不同的方面来解释 二者之前的差别
1、二者的开源社区,SpringCloud 的开源社区一直是处于活跃状态
而Dubbo 从2017 年才被 阿里重新维护,这导致整体解决方案和框架的成熟度不同
2、 基于技术栈维度的不同
SpringCloud 是完整的微服务框架,Dubbo 是单一的服务框架
通讯方式一种 支持 RPC 一种支持 REST
二者支持 服务注册与发现
SpringCloud 通过Eureka 开实现服务注册与发现
支持负载均衡
SpringCloud 以服务端 Zuul+客户端 Ribbon 的方式
Zuul 实现服务 动态路由 云端负载均衡
SpringCloud 支持配置服务—Config Server 集中配置管理
服务调用链监控 Zuul提供边缘服务,API网关
以业务需求来看,SpringCloud 有着一整套的 微服务体系,无疑是要比 Dubbo开发更加简便
4、什么是服务熔断、什么是服务降级 ?
服务熔断,服务降级,首先,SpringCloud 使用Hystrix 组件来进行熔断降级
这是 Hystrix 组件的客户端,作用是来监控 已经注册过的服务,而其中的 五个 圈圈上的颜色代表各自的 服务访问状态。
红色代表 很危险的一个状态,基本上这个时候可能就会因为某些原因变得不可用,这个时候监控到了就会对 此服务做一个熔断并降级的处理。
让此服务在不可用的情况下,返回一串可识别的标识来给 前端 让其反馈给客户,而不至于服务一直访问堆积导致服务系统大幅度瘫痪。宕机
5、SpringCloud 和SpringBoot是 什么关系
SpringBoot 专注于快速方便开发单个个体微服务
SpringCloud是关注全局的微服务协调治理框架,它将SpringBoot开发的一个个微服务整合并管理起来,为各个服务之间提供 配置管理、服务发现、断路器、路由、微代理,事件总线、全局锁、决策竞选、 分布式会话等集成服务。。
SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot,属于依赖关系
总结:SpringBoot专注快速方便开发单个微服务个体,SpringCloud 关注全局的服务治理框架