1.4 微服务的问题
一旦采用微服务系统架构,就势必会遇到这样几个问题:
1这么多小服务,如何管理他们?(服务治理 注册中心[服务注册 发现 剔除] nacos)
2这么多小服务,他们之间如何通讯?(restful rpc openfeign)
3这么多小服务,客户端怎么访问他们?(网关 gwateway)
4这么多小服务,一旦出现问题了,应该如何自处理?(容错 sentinel)
5这么多小服务,一旦出现问题了,应该如何排错? (链路追踪 sleuth+zipkin)
对于上面的问题,是任何一个微服务设计者都不能绕过去的,因此大部分的微服务产品都针对每一个问题提供了相应的组件来解决它们
1.4 SpringCloud
SpringCloud:是一系列框架的集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
官网地址:Spring Cloud
首先,尽管Spring Cloud带有“Cloud”这个单词,但它并不是云计算解决方案,而是在Spring Boot基础之上构建的,用于快速构建分布式系统的通用模式的工具集。
其次,使用Spring Cloud开发的应用程序非常适合在Docker和PaaS(比如Pivotal Cloud Foundry)上部
署,所以又叫做云原生应用(Cloud Native Application)。云原生可以简单地理解为面向云环境的软件架
构
1.5 SpringCloud Alibaba
Spring Cloud Alibaba为分布式应用程序开发提供了一站式解决方案。它包含开发分布式应用程序所需的所有组件,使您可以轻松地使用Spring Cloud开发应用程序。使用Spring Cloud Alibaba,您只需添加一些注释和少量配置即可将Spring Cloud应用程序连接到Alibaba的分布式解决方案,并使用Alibaba中间件构建分布式应用程序系统。
1.6 SpringCloud Alibaba核心组件
服务限流降级(Sentinel):把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性
服务注册与发现(Nacos):更易于构建云原生应用的动态服务发现、配置管理和服务管理平台
分布式配置管理(Nacos):支持分布式系统中的外部化配置,配置更改时自动刷新
消息驱动能力(RocketMQ):一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务
分布式事务(Seata):使用 @GlobalTransactional 注解, 高效并且对业务零侵入地解决分布式事务问题。
阿里云对象存储(OSS):阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。
分布式任务调度(SchedulerX):提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker(schedulerx-client)上执行。
阿里云短信服务(SMS):覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。
声明式服务调用(Openfeign):一种声明式、模板化的HTTP客户端,不是阿里的组件
网关中心(Gateway):是作为一个 API 架构,用来保护、增强和控制对于 API 服务的访问,不是阿里的组件