微服务解决方案|学习笔记

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 快速学习微服务解决方案

开发者学堂课程【全面讲解 Spring Cloud Alibaba 技术栈微服务解决方案】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/683/detail/11857


微服务解决方案


内容介绍:

一、微服务架构的常见问题

二、微服务架构的常见解决思路

三、微服务架构的常见解决方案


一、微服务架构的常见问题

1.这么多小服务,如何管理他们?

加入用于服务治理的注册中心,来进行自动化管理[发现剔除]

2.这么多小服务,他们之间如何通讯?

采用 restful rpc 风格HTTP 协议进行通讯( restful rpc )

3.这么多小服务,客户端怎么访问他们?

加入网关机制

4.这么多小服务,一旦出现问题了,应该如何自处理?

进行服务的容错(容错包括三个方面)

5.这么多小服务,一旦出现问题了,应该如何排错?

站在程序员角度,加入一个链路追踪的机制

对于上面的问题,是任何一个微服务设计者都不能绕过去的,因此大部分的微服务产品都针对每一个问题提供了相应的组件来解决它们


二、微服务架构的常见解决思路

image.png

(图片从概念上囊括了所有的问题以及解决思路)

1.图片的中间部分,就是微服务,图片中列举了很多的微服务,具体是在前面加设一层网关,用户通过网关来调用各个微服务。

2.图片的左边部分,包括服务配置与治理,

(1)服务治理是利用注册中心,把我们所有的服务都在里面注册,通过注册中心实现注册、发现以及服务剔除。

(2)服务配置是将所有服务的配置进行管理,放在一个单独的组件上就是配置管理。

3.图片的右半部分,包括链路追踪与服务监控

(1)链路追踪,就像一个 GPS,它能跟着你的请求到达每一个微服务上,并记录下在这个调用过程中的各种各样的信息。

(2)服务监控,监控,跟我们的链路追踪有异曲同工之妙,它也是对我们的服务里的各种健康状况,做一个检查,会给报表等一些列东西(知道)

4.图片的下半部分就是消息总线,消息总线主要用于异步消息调用,可以用来发消息(了解即可,后面的课程有具体的讲解


三、微服务架构的常见解决方案

1. ServiceComb

image.png

Apache ServiceComb,前身是华为云的微服务引擎 CSE( Cloud Service Engine )云服务,是全球首个 Apache 微服务顶级项目。它提供了一站式的微服务开源解决方案,致力于帮助企业、用户和开发者将企业应用轻松微服务化上云,并实现对微服务应用的高效运维管理。

2.SpringCloud

SpringCloud 是一系列框架的集合。它利用 SpringBoot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 SpringBoot 的开发风格做到一键启动和部署。

SpringCloud 并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过 SpringBoot 风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

3.SpringCloud Alibaba

Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案。此项目包含开发分布式应用微服务的必需组件,方便开发者通过 SpringCloud 编程模型轻松使用这些组件来开发分布式应用服务。依托 Spring Cloud Alibaba,您只需要添加一些注解和少量配置,就可以将 SpringCloud 应用接入阿里微服务解决方案,通过阿里中间件来讯速搭建分布式应用系统。

4.主要功能

(1)服务限流降级:默认支持 WebServlet、WebFlux,OpenFeign、RestTemplate、Spring Cloud Gateway

Zuul,Dubbo 和 RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。

(2)服务注册与发现:适配 SpringCloud 服务注册与发现标准,默认集成了 Ribbon 的支持。

分布式配置管理:支持分布式系统中的外部化配置,配置更改时自动刷新。

(3)消息驱动能力:基于 SpringCloudStream 为微服务应用构建消息驱动能力。

(4)分布式事务:使用@GlobalTransactional 注解,高效并且对业务零侵入地解决分布式事务问题。

(5)阿里云对象存储:阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。

(6)分布式任务调度:提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分

布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker( schedulerx-client ) 上执行。

(7)阿里云短信服务:零盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业讯速搭建客户触达通道。

5.组件

(1)Sentinel: 把流量作为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。

(2)Nacos: 一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

(3)RocketMQ: 一款开源的分布式消息系统,基于高可用分布式集群技术,提供低延时的、高可靠的消息发布与订阅服务。

(4)Dubbo: Apache Dubbo 是一款高性能 Java RPC 框架。

(5)Seata: 阿里巴巴开源产品,一个易于使用的高性能微服务分布式事务解决方案。

(6)Alibaba Cloud ACM: 一款在分布式架构环境中对应用配置进行集中管理和推送的应用配置中心产品。

(7)Alibaba Cloud OSS: 阿里云对象存储服务( Object Storage Service,简称 OSS ),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。

(8)Alibaba Cloud SchedulerX: 阿里中间件团队开发的一款分布式任务调度产品,提供秒级、精准、高可靠、

高可用的定时(基于 Cron 表达式)任务调度服务。

(9)Alibaba Cloud SMS: 覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
8天前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
46 3
|
3月前
|
数据库 开发者 微服务
微服务架构下的数据一致性挑战与解决方案
在当今的软件开发领域,微服务架构因其灵活性和可扩展性而受到广泛青睐。然而,这种架构风格也带来了数据一致性的复杂问题。本文将深入探讨微服务环境中数据一致性面临的挑战,并提出一系列解决策略。我们将以实际案例分析如何应用这些策略,并讨论它们在不同场景下的利弊。文章旨在为后端开发者提供一套实用工具和方法,帮助他们在设计和实现微服务时确保数据一致性。
118 0
|
2天前
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo:微服务通信的高效解决方案
【10月更文挑战第15天】随着信息技术的发展,微服务架构成为企业应用开发的主流。Spring Cloud Dubbo结合了Dubbo的高性能RPC和Spring Cloud的生态系统,提供高效、稳定的微服务通信解决方案。它支持多种通信协议,具备服务注册与发现、负载均衡及容错机制,简化了服务调用的复杂性,使开发者能更专注于业务逻辑的实现。
11 2
|
4月前
|
存储 消息中间件 运维
从单体到微服务:架构演进中的技术挑战与解决方案
在软件开发的过程中,系统架构的选择对项目的成功与否起到至关重要的作用。本文将深入探讨从单体架构向微服务架构演进过程中所遇到的技术挑战,并提供相应的解决方案。
167 0
|
2月前
|
API 微服务
【Azure 微服务】面对Service Fabric中节点状态不正常(Disabling/Warning/RemoveNode)的几种尝试解决方案
【Azure 微服务】面对Service Fabric中节点状态不正常(Disabling/Warning/RemoveNode)的几种尝试解决方案
|
3月前
|
关系型数据库 分布式数据库 数据库
PolarDB,阿里云的开源分布式数据库,与微服务相结合,提供灵活扩展和高效管理解决方案。
【7月更文挑战第3天】PolarDB,阿里云的开源分布式数据库,与微服务相结合,提供灵活扩展和高效管理解决方案。通过数据分片和水平扩展支持微服务弹性,保证高可用性,且兼容MySQL协议,简化集成。示例展示了如何使用Spring Boot配置PolarDB,实现服务动态扩展。PolarDB缓解了微服务数据库挑战,加速了开发部署,为云原生应用奠定基础。
261 3
|
4月前
|
缓存 Java 微服务
Springboot微服务整合缓存的时候报循环依赖的错误 两种解决方案
Springboot微服务整合缓存的时候报循环依赖的错误 两种解决方案
66 1
|
3月前
|
监控 Java 开发者
使用Java开发微服务架构的挑战与解决方案
使用Java开发微服务架构的挑战与解决方案
|
5月前
|
监控 持续交付 数据库
构建高性能微服务架构:挑战与解决方案
【5月更文挑战第24天】 在数字化转型的浪潮中,企业纷纷采用微服务架构以提升系统的灵活性和可扩展性。然而,随着服务的不断增多,如何保证系统性能和稳定性成为了一个严峻的挑战。本文将深入探讨在构建高性能微服务架构过程中所面临的主要问题,并提出针对性的解决方案。通过实践案例分析、技术选型对比以及性能优化策略,旨在为开发者提供一条清晰的指导思路,确保微服务系统在高并发环境下的高效运行。
|
5月前
|
API 持续交付 开发者
构建高性能微服务架构:挑战与解决方案
【4月更文挑战第29天】 随着现代软件开发的复杂性日益增加,微服务架构成为众多企业和开发者的首选。它通过将大型应用程序拆分为一系列小型、自治的服务来提供灵活性和可扩展性。然而,随之而来的是一系列的挑战,包括服务间通信、数据一致性、安全性和性能优化等。本文将深入探讨在构建高性能微服务架构过程中可能遇到的挑战,并提供针对性的解决方案,以帮助开发者克服这些难题,实现更加健壮和高效的系统。