重点:学习资料
https://spring.io/projects/spring-cloud
https://www.springcloud.cc/spring-cloud-netflix.html
api:
https://cloud.spring.io/spring-cloud-static/Greenwich.SR3/single/spring-cloud.html
中文版:https://www.springcloud.cc/spring-cloud-dalston.html
微服务是什么
马丁福勒
把单一应用服务划分成一组小的服务,每个服务运行在单独的进程中
化整为零,一般按业务拆分服务
dubbo是基于rpc远程调用,微服务Cloud是基于rest的
微服务与微服务架构
微服务:微小的一个服务,可以认为是eclipse里面的某个工程,完成某一个业务功能
微服务的关键词:微小服务 独立进程部署 轻量级 rest
微服务优点缺点
https://www.bilibili.com/video/av22613028?p=7
优点:
1、单个服务足够小,降低复杂度
2、开发效率高,成本低,每个服务专注做一件事
3、每个服务可以由小的团队开发3-5人
4、松藉合,独立部署
5、语言无关性
6、易于集成
7、易维护
8、前后端分离
9、数据可独立也可以共享
缺点:
1、服务间通讯成本提高
2、部署麻烦
3、运维压力大
4、分布式通讯和事务控制难
5、集成测试时间长
6、性能监控
微服务技术
多种技术的集合:
Spring Cloud是什么鬼?
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务注册与发现、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
微服务是可以独立部署、水平扩展、独立访问(或者有独立的数据库)的服务单元,springcloud就是这些微服务的大管家,采用了微服务这种架构之后,项目的数量会非常多,springcloud做为大管家需要管理好这些微服务,自然需要很多小弟来帮忙。
简洁版:springcloud是基于springboot的一套完整的微服务架构,包括:服务注册与发现、配置中心、全链路监控、服务网关、负载均衡、熔断服务等。
分布式微服务架构下的一站式解决方案,是微服务全家桶
核心成员
主要的小弟有:Spring Cloud Config、Spring Cloud Netflix(Eureka、Hystrix、Zuul、Archaius…)、Spring Cloud Bus、Spring Cloud for Cloud Foundry、Spring Cloud Cluster、Spring Cloud Consul、Spring Cloud Security、Spring Cloud Sleuth、Spring Cloud Data Flow、Spring Cloud Stream、Spring Cloud Task、Spring Cloud Zookeeper、Spring Cloud Connectors、Spring Cloud Starters、Spring Cloud CLI
Spring Cloud与springboot的关系
1、一个是宏观Spring Cloud一个是微观springboot
2、Spring Cloud依赖springboot,springboot可以单独存在
dubbo是怎么到Spring Cloud的?这两个框架你是如何选择的
https://www.bilibili.com/video/av22613028?p=12
微服务的框架那么多比如:dubbo、Kubernetes,为什么就要使用Spring Cloud的呢?
- 产出于spring大家族,spring在企业级开发框架中无人能敌,来头很大,可以保证后续的更新、完善。比如dubbo现在就差不多死了
- 有Spring Boot 这个独立干将可以省很多事,大大小小的活Spring Boot都搞的挺不错。
- 作为一个微服务治理的大家伙,考虑的很全面,几乎服务治理的方方面面都考虑到了,方便开发开箱即用。
- Spring Cloud 活跃度很高,教程很丰富,遇到问题很容易找到解决方案
- 轻轻松松几行代码就完成了熔断、均衡负载、服务中心的各种平台功能
学习资料
https://spring.io/projects/spring-cloud
https://www.springcloud.cc/spring-cloud-netflix.html
api:
https://cloud.spring.io/spring-cloud-static/Greenwich.SR3/single/spring-cloud.html
中文版:https://www.springcloud.cc/spring-cloud-dalston.html
springcloud中文社区springcloud.cn
springcloud中文网springcloud.cc
总体架构
我们从整体上来看一下Spring Cloud各个组件如何来配套使用:
从上图可以看出Spring Cloud各个组件相互配合,合作支持了一套完整的微服务架构。
- 其中Eureka负责服务的注册与发现,很好将各服务连接起来
- Hystrix 负责监控服务之间的调用情况,连续多次失败进行熔断保护。保险丝的作用,防止崩溃。
- Hystrix dashboard,Turbine 负责监控 Hystrix的熔断情况,并给予图形化的展示,dashboard仪表盘,监控集群模式和单点模式,其中集群模式需要收集器Turbine配合。
- Spring Cloud Config 提供了统一的配置中心服务,方便修改配置的,支持本地仓库、SVN、Git、Jar包内配置等模式
- 当配置文件发生变化的时候,Spring Cloud Bus 负责通知各服务去获取最新的配置信息
- 所有对外的请求和服务,我们都通过Zuul来进行转发,起到API网关的作用,也是加在整个微服务最前沿的防火墙和代理器,隐藏微服务结点IP端口信息,加强安全保护的。
- 最后我们使用Sleuth+Zipkin将所有的请求数据记录下来,方便我们进行后续分析
- Feign是方便我们程序员写更优美的代码的。
(Dashboard侧重故障诊断,Zipkin侧重性能优化。)
springcloud常用的5个组件
- 服务发现——Netflix Eureka
- 客服端负载均衡——Netflix Ribbon
- 断路器——Netflix Hystrix
- 服务网关——Netflix Zuul
- 分布式配置——Spring Cloud Config
bbbbbbbbbb