springcloud 就基于 SpringBoot 的优雅简
洁把市场上优秀的服务框架组合起来,通
过 SpringBoot 风格进行再封装屏蔽掉了
复杂的配置和实现原理
springcloud 开箱即用,只需要一个 jar 的
依赖就可以了!
springcloud 大多数子模块都是直击痛点,像 zuul 解决的跨域,fegin 解决的负载均
衡,hystrix 的熔断机制等
SpringCloud 是一系列框架的有序集合,
它利用 SpringBoot 的开发便利性巧妙地
简化了分布式系统基础设施的开发,如
服务发现注册、配置中心、智能路由、
消息总线、负载均衡、断路器、数据监
控等,都可以用 SpringBoot 的开发风格
做到一键启动和部署
SpringCloud 并没有重复制造轮子,它只
是将各家公司开发的比较成熟、经得起实
际考验的服务框架组合起来,通过 Spring
Boot 风格进行再封装屏蔽掉了复杂的配置
和实现原理,最终给开发者留出了一套简
单易懂、易部署和易维护的分布式系统开
发工具包
优点:
① 耦合度比较低,不会影响其他模块的开
发
② 减轻团队的成本,可以并行开发,不用关注其他人怎么开发,先关注自己的开
发
③ 配置比较简单,基本用注解就能实现,不用使用过多的配置文件
④ 微服务跨平台的,可以用任何一种语言开发
⑤ 每个微服务可以有自己的独立的数据库也有用公共的数据库
⑥ 直接写后端的代码,不用关注前端怎么开发,直接写自己的后端代码即可,然
后暴露接口,通过组件进行服务通信
缺点:
① 部署比较麻烦,给运维工程师带来一定
的麻烦
② 针对数据的管理比麻烦,因为微服务可以每个微服务使用一个数据库
③ 系统集成测试比较麻烦
④ 性能的监控比较麻烦 (最好开发一个大屏监控系统)
SpringBoot 专注于快速方便的开发单个个
体微服务
SpringCloud 是关注全局的微服务协调整理治理框架,它将 SpringBoot 开发的一个
个单体微服务整合并管理起来,为各个微
服务之间提供,配置管理、服务发现、断
路器、路由、微代理、事件总线、全局锁、
决策竞选、分布式会话等等集成服务
SpringBoot 可以离开 SpringCloud 独立使用开发项目,但是 SpringCloud 离不开
SpringBoot,属于依赖的关系 SpringBoot
专注于快速、方便的开发单个微服务个体,
SpringCloud 关注全局的服务治理框架
SpringCloud Eureka:服务注册与发现
SpringCloud Zuul:服务网关
SpringCloud Ribbon:客户端负载均衡
SpringCloud Feign:声明性的 Web 服务客户端
SpringCloud Hystrix:断路器
SpringCloud Config:分布式统一配置管理
等20几个框架,开源一直在更新
与分布式系统相关的复杂性-这种开销包括
网络问题,延迟开销,带宽问题,安全问
题
服务发现-服务发现工具管理群集中的流程和服务如何查找和互相交谈。它涉及一个
的工作负荷,诸如计算机,计算机集群,
网络链路,中央处理单元,或磁盘驱动器
的分布
性能-问题 由于各种运营开销导致的性能问题
服务调用方式:dubbo 是 RPC
springcloud 是 Rest Api
注册中心:dubbo 是 zookeeperspringcloud是 eureka/zookeeper
服务网关:dubbo 本身没有实现,只能通过其他第三方技术整合;
springcloud 有 Zuul 路由网关,
作为路由服务器,进行消费者的
请求分发,springcloud支持断路
器,与git完美集成配置文件
支持版本控制,事物总线实现配置文件的更新与服务自动装配等
等一系列的微服务架构要素
当我们开始一个项目时,我们通常在属性
文件中进行所有的配置,随着越来越多的
服务开发和部署,添加和修改这些属性变
得更加复杂,有些服务可能会下降,而某
些位置可能会发生变化,手动更改属性可
能会产生问题</