微服务架构 | 组件目录
§1 微服务架构组件目录
服务相关
服务注册和发现**
[Eureka]
[Zookeeper]
[Consul]
[Nacos (alibaba)]
服务负载均衡
[Ribbon]
[Feign]
[OpenFeign]
[Loadbalancer (alibaba)]
服务隔离(熔断、降级、限流)
[Hystrix]
[resilience4j]
Sentinel (alibaba)
服务网关
[Zuul]
[Zuul2]
[Gateway]
服务配置中心
[config]
服务消息总线
[bus & Stream]
中间件相关
消息队列
中间件 | 消息队列 - [RabbitMq]
微服务架构 | 消息队列 - [常见坑]
缓存
暂无
运维相关
服务监控
[actuator]
链路追踪
[Sleuth]
自动化构建部署
其他内容
定时任务调度
§2 如何选择具体的版本
从官网上查找 General GA(当前最稳定)版本
从此版本的说明中查找应该使用的springboot的对应版本
工具网址:start.spring.io/actuator/info (里面会推荐一个范围)
或在此版本的 LEARN 标签中通过 Reference Doc 查看官方推荐版本(最具体)
§3 为什么对 SpringCloud 不满意
与当初的竞争对手 Dubbo + zookeeper
- 严格的说 Dubbo + zookeeper 的组合不是一套微服务架构,它只是实现了核心的服务注册和发现
- 因此,当 Dubbo 进入维护后,Spring Cloud 凭借齐全的组件库和良好的生态冒泡(给人一种 Spring 输给了 EJB 的感觉)
组件停更较多
但是后来,spring cloud 的组件停更越来越多
- eureka
- feign
- hystrix
- zuul
- config
- bus
SpringCloud 自身问题
- spring cloud 本身也有一些奇怪的地方,比如通信协议依赖 http ,序列化依赖字符序列化(相比来说,效率较低)
- spring cloud 本身底层存在一些莫名奇妙的现象(或问题),比如 变更 Springboot 的启动类位置后,无法自动扫描 mapper 的原因 ,作者认为这本身是个bug[手动捂脸]
§4 SpringCloud alibaba 带来了啥
- 服务降级限流
- 支持 servlet、feign、resttemplate、dubbo、rocketmq 降级限流的接入
- 试试修改限流降级规则
- 查看降级限流的 Metrics 监控
- 服务注册发现
- 服务配置管理
- 分布式系统外部化配置
- 配置修改自动刷新
- 服务消息驱动
- 分布式任务调度
- 秒级、精准、高可靠、高可用的任务调度(基于 Cron)
- 分布式任务执行模型,如网格任务
- 阿里云对象存储
对应技术点
- Nacos:一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。
- Sentinel:把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。
- Seata:阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。
- RocketMQ:一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。
- OSS: 阿里云对象存储服务(Object Storage Service,简称 OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
- SchedulerX: 阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。
- Alibaba Cloud SMS: 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。