「Java」SpringCloud的自我介绍Sprin

这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战

SpringCloud

什么是微服务

微服务就是将一个应用分成了多个应用,这多个应用就被称为微服务,每个微服务运行在自己独立的进程中,并使用轻量级的通信机制,这些服务按照业务进行拆分,并进行独立部署

SpringCloud是什么

SpringCloud是一系列框架的有序集合,使用Springboot的开发便利性简化了分布式系统基础设施的开发,如服务的发现注册,配置中心,智能路由,消息总线,负载均衡,断路器,数据监控等,都可以使用Springboot的开发风格,

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

SpringCloud的优缺点

优点

1.耦合度比较低。不会影响其他模块的开发。

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

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

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

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

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

缺点

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

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

3.系统集成测试比较麻烦

4.性能的监控比较麻烦。【最好开发一个大屏监控系统】

SpringBoot和SpringCloud的区别

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

  • SpringCloud是关注全局的微服务协调整理治理框架,它将SpringBoot开发的一个个单体服务整合并管理起来

  • 为各个微服务之间提供配置管理,服务发现,断路器,路由,微代理,事件总线,全局锁,决策竞选,分布式会话等等

  • SpringBoot可以离开SpringCloud独立使用开发项目,但是SpringCloud离不开SpringBoot.

SpringCloud 和SpringBoot版本对应关系

Spring Cloud Version Spring Boot Version
Hoxton 2.2.x
Greenwich 2.1.x
Finchley 2.0.x
Edgware 1.5.x
Dalston 1.5.x

SpringCloud 重要组件

  • Spring Cloud Eureka : 服务注册与发现

  • Spring Cloud Zuul : 服务网关

  • Spring Cloud Ribbon : 服务端负载均衡

  • Spring Cloud Feign : 声明性的Web服务客户端

  • Spring Cloud Hystrix : 断路器

  • Spring Cloud Config : 分布式统一配置管理

SpringCloud和Dubbo的区别

  1. 服务调用方式 : dubbo是RPC , SpringCloud 是 Rest Api

  2. 注册中心 : dubbo是zookeeper, SpringCloud 是eureka 也可以是zookeeper

  3. 服务网关 : dubbo本身没有实现,只能通过其他第三方技术整合,springcloud有Zuul路由网关,作为路由服务器,进行消费者的请求分发,springcloud支持断路器,与git完美集成配置文件支持版本控制,事物总线实现配置文件的更新与服务自动装配等等一系列的微服务架构要素。