SpringCloud入门简述

1、微服务简述#微服务 , 是一个小型的服务 , 也是一种设计理念 , 将一个大型繁杂的系统拆分为多个小型的服务 , 进行独立部署 , 这些服务在独立进程中运行 , 通过特定的协议进行通信
? 优点:

  1. 轻量化:一个服务不再像一个系统一个繁杂 , 更加小巧 , 功能相对单一
  2. 低耦合:不同的服务模块之间的依赖性降低 , 可以更加专注于一个功能的开发
  3. 灵活性高:可以进行独立的部署 , 也可以支持不同开发语言之间进行服务的调用
? 缺点:
  1. 运维成本高:微服务架构项目往往是由多个微服务构成 , 随着服务的增多 , 项目出现异常时不易查询根源
  2. 重复性高:微服务的工具类不能够被其他服务调用 , 所以每个微服务都需要进行重复添加该类 , 导致重复
  3. 接口调整成本高:一个被多个服务调用的服务一旦更改了接口 , 那么其他的接口也要做相应的修改 , 这一修改造成的成本会明显提高
1.1 常见的微服务框架#
  1. SpringCloud:SpringBoot基础上构建的微服务框架 , 通用组件较多 , 通信方式基于HTTP的rest方式
  2. Dubbo:阿里巴巴的服务框架 , 使用RPC通信
? 在服务通信性能上RPC更强 , 但是Rest更为灵活
1.2 微服务经常考虑的问题#
  1. 网关:提供统一的服务入口
  2. 服务间调用
  3. 服务发现:负载均衡时发现可用服务 , 下线不可用
  4. 容错:服务调用失败的处理方式
  5. 熔断:在特定场景下关闭服务的调用 , 防止错误的扩散
  6. 限流和降级:请求数量过载 , 进行请求拒绝(限流)或者返回一个预先设置的返回值(降级)
2、SpringCloud简述#? SpringCloud是基于SpringBoot实现的微服务框架 , 为开发人员提供了很多快速构建分布式系统中常见模式的工具 , 包括配置管理、服务发现、断路器、智能路由、微代理 , 控制总线等 。
2.1 常用的一些组件#
  1. Netflix-Eureka:服务注册与发现
  2. Netflix-Ribbon:负载均衡 , 分发请求到不同的服务器 , 缓解服务器压力
  3. Netflix-Hystrix:服务保护与熔断机制
  4. Netflix-Zuul:服务网关
  5. Feign:服务间通讯
  6. Config:配置中心
2.2 特点#? ‎Spring Cloud专注于为典型的用例提供良好的开箱即用体验 , 并为其他用例提供扩展性机制 。‎
  • Distributed/versioned configuration——‎分布式/版本化配置‎
  • Service registration and discovery——‎服务注册和发现‎
  • Routing——‎路由‎
  • Service-to-service calls——‎服务到服务呼叫‎
  • Load balancing——负载平衡‎
  • Circuit Breakers——‎断路器‎
  • Global locks——‎全局锁‎
  • Leadership election and cluster state——主节点投选与聚集状态
  • Distributed messaging——‎分布式消息传递‎
2.3 与SpringBoot的区别#
  1. SpringBoot是基于Spring的快速配置脚手架 , 而SpringCloud是基于SpringBoot的云应用开发工具
  2. SpringBoot专注于开发单个微服务 , SpringCloud关注全局的微服务协调治理框架 , 用于整合管理SpringBoot开发的一个个微服务
  3. SpringBoot可以离开SpringCloud独立开发使用 , 而SpringCloud离不开SpringBoot
参考地址:
  1. Spring Cloud中文网-官方文档中文版:https://www.springcloud.cc
  2. Spring Cloud中文API文档:https://www.springcloud.cc/spring-cloud-dalston.html
  3. Spring Cloud中国社区:http://springcloud.cn/
3、Eureka 服务注册和发现#? Eureka是Netflix开发的基于Rest的服务发现框架 , SpringCloud基于此进行二次封装 , 实现服务的管理 。


推荐阅读