1、微服务简述#微服务 , 是一个小型的服务 , 也是一种设计理念 , 将一个大型繁杂的系统拆分为多个小型的服务 , 进行独立部署 , 这些服务在独立进程中运行 , 通过特定的协议进行通信
? 优点:
- 轻量化:一个服务不再像一个系统一个繁杂 , 更加小巧 , 功能相对单一
- 低耦合:不同的服务模块之间的依赖性降低 , 可以更加专注于一个功能的开发
- 灵活性高:可以进行独立的部署 , 也可以支持不同开发语言之间进行服务的调用
- 运维成本高:微服务架构项目往往是由多个微服务构成 , 随着服务的增多 , 项目出现异常时不易查询根源
- 重复性高:微服务的工具类不能够被其他服务调用 , 所以每个微服务都需要进行重复添加该类 , 导致重复
- 接口调整成本高:一个被多个服务调用的服务一旦更改了接口 , 那么其他的接口也要做相应的修改 , 这一修改造成的成本会明显提高
- SpringCloud:SpringBoot基础上构建的微服务框架 , 通用组件较多 , 通信方式基于HTTP的rest方式
- Dubbo:阿里巴巴的服务框架 , 使用RPC通信
1.2 微服务经常考虑的问题#
- 网关:提供统一的服务入口
- 服务间调用
- 服务发现:负载均衡时发现可用服务 , 下线不可用
- 容错:服务调用失败的处理方式
- 熔断:在特定场景下关闭服务的调用 , 防止错误的扩散
- 限流和降级:请求数量过载 , 进行请求拒绝(限流)或者返回一个预先设置的返回值(降级)
2.1 常用的一些组件#
- Netflix-Eureka:服务注册与发现
- Netflix-Ribbon:负载均衡 , 分发请求到不同的服务器 , 缓解服务器压力
- Netflix-Hystrix:服务保护与熔断机制
- Netflix-Zuul:服务网关
- Feign:服务间通讯
- Config:配置中心
- 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——分布式消息传递
- SpringBoot是基于Spring的快速配置脚手架 , 而SpringCloud是基于SpringBoot的云应用开发工具
- SpringBoot专注于开发单个微服务 , SpringCloud关注全局的微服务协调治理框架 , 用于整合管理SpringBoot开发的一个个微服务
- SpringBoot可以离开SpringCloud独立开发使用 , 而SpringCloud离不开SpringBoot
- Spring Cloud中文网-官方文档中文版:https://www.springcloud.cc
- Spring Cloud中文API文档:https://www.springcloud.cc/spring-cloud-dalston.html
- Spring Cloud中国社区:http://springcloud.cn/
推荐阅读
- 简述C语言的三个标准:ANSI/ISO C99 C11
- 蒙特卡洛树搜索入门教程
- 新手使用mac电脑教程?mac电脑新手入门教程?
- C++基础入门
- 网络工程师快速入门---网络架构及传输介质详解
- 怎么开网店新手入门 自己如何开网店详细步骤
- grpc的入门使用
- 可以秒杀全场的SpringCloud微服务电商实战项目,文档贼全
- 简述淘宝网店的流量来源有哪些渠道 淘宝的流量来源
- 使用Clover安装macOS入门指南