当前位置: 首页 > 科技观察

SA实战·《SpringCloud Alibaba实战》微服务介绍

时间:2023-03-12 23:50:32 科技观察

今天给大家分享一下微服务开发过程中的一些常用概念,方便大家在后面正式开始实战内容时统一概念。微服务化后的问题一个系统,尤其是使用微服务架构模型搭建和开发的大型系统,虽然一般可以提高研发效率,支持更高的并发,但也可以提高系统的整体性能和可靠性系统。和可维护性。但在实施细节上还存在不少问题。(1)将系统拆分成微服务后,那么多的服务如何管理和感知?(2)将系统拆分成微服务后,微服务之间如何通信?(3)拆分系统拆分成微服务后,一旦系统出现问题,如何快速定位问题?(4)将系统拆分成微服务后,如何最大程度保证系统的可用性?(5)将系统拆分成微服务服务之后,客户端如何访问这么多微服务呢?这些问题你可以先想一想,冰河会在下一篇文章中为你揭晓这些问题的答案。微服务常用概念微服务中有一些常用概念需要大家了解,以便更好地学习后面的实际章节。今天,冰河简单的梳理了一些概念性的知识。服务调用将一个系统拆分成微服务后,微服务之间可以协同工作,对外提供完整的服务,这就涉及到微服务之间的调用。目前各种微服务一般使用Restful接口或者RPC协议来调用。(1)Restful接口Restful接口一般是基于HTTP协议实现的,应用广泛,几乎所有的编程语言都支持HTTP协议。(2)RPC协议RPC是一种远程过程调用,可以像调用本地服务一样调用远程服务。RPC框架在底层屏蔽了数据传输方式、序列化方式和交互细节,使得使用RPC框架开发微服务的人更容易,更容易实现。服务治理服务治理,说白了就是如何自动管理各种微服务。核心功能是服务的注册、发现和淘汰。(1)服务注册每个微服务实例在启动时,都可以将自己提供的服务注册到一个注册中心。(2)服务发现当一个微服务向注册中心注册自己的服务时,其他微服务实例可以通过注册中心感知到该微服务提供的服务,并可以获取该微服务的实例信息,通过该微服务的实例信息可以调用这个微服务的方法来进行相应的读写操作。(3)服务移除如果一个微服务实例出现故障,或者连接已经超时,注册中心会认为当前微服务实例不可用,并将该微服务实例从注册中心移除,使其不再被其他微服务使用。服务感知和调用。注册中心提供微服务注册、发现和移除功能的服务组件。服务网关服务网关是所有微服务的入口。客户端访问每一个微服务时,首先需要经过服务网关。接入服务网关后,所有的API调用都会统一连接到API网关层,网关层统一接收参数进行路由转发,并将返回的结果数据返回给客户端。通常,服务网关最基本的功能包括:统一接入、限流、断路器、降级、安全保护、协议适配、容错等,主要侧重于系统安全、流量和路由的管理。这样,业务开发人员就可以专注于开发业务逻辑。业务限流在高并发、大流量场景下,经常会出现由于调用流量过大导致某个服务或接口不可用的情况。某个服务或接口不可用也可能导致整个系统崩溃。此时,系统将通过限流的方式进行保护。当请求达到一定频率或速率时,会对这些请求采取排队、等待、降级甚至拒绝服务等策略。服务熔断如果某个服务出现故障不可用,或者调用超时,为了不牵连到其他服务导致整个系统不可用,断开与该服务的连接,暂停对该服务的调用。服务降级服务降级主要从整个系统的负载来考虑。如果某些服务的负载比较高,为了防止某些功能负载过大导致响应慢的问题,会在提供这些功能的方法内部。暂时放弃对一些非核心功能接口的调用,直接返回一个事先准备好的错误处理信息。服务降级对服务不利,但可以保证整个系统的稳定性和可用性。服务容错服务容错是指微服务适应某些错误条件的能力。从某种意义上说,服务限流、服务熔断、服务降级都是服务容错的措施。LinkTracking当系统拆分成微服务时,一个请求往往会涉及到多个服务之间的调用关系。如果系统出现问题,会增加定位问题的难度。为了解决这个问题,需要跟踪记录一次请求涉及的多个服务链路的日志。一方面可以记录被调用的链路,另一方面可以监控系统中各个调用链路的性能。这是链接跟踪。SpringCloudAlibabaSpringCloudAlibaba是阿里开源的一套微服务解决方案,包括各种微服务组件,可以极大方便开发者构建微服务应用。主要功能服务限流降级:默认支持WebServlet、WebFlux、OpenFeign、RestTemplate、SpringCloudGateway、Zuul、Dubbo、RocketMQ接入。可以在运行时通过控制台实时修改限流和降级规则,也支持ChecktheratelimitinganddegradationMetrics监控。服务注册与发现:适配SpringCloud服务注册与发现标准,默认集成Ribbon支持。分布式配置管理:支持在分布式系统中进行外部配置,配置变化时自动刷新。消息驱动能力:基于SpringCloudStream构建微服务应用的消息驱动能力。分布式事务:使用@GlobalTransactional注解高效解决分布式事务问题,对业务零侵入。阿里云对象存储:阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持随时随地在任何应用程序中存储和访问任何类型的数据。分布式任务调度:提供秒级、精准、高可靠、高可用的定时(基于Cron表达式)任务调度服务。同时提供分布式任务执行模型,如网格任务。网格任务支持海量任务均匀分布到所有Worker(schedulerx-client)执行。阿里云短信服务:覆盖全球的短信服务,友好、高效、智能的互联沟通能力,帮助企业快速搭建客户接入渠道。除了上述功能,针对企业级用户场景,SpringCloudAlibaba配套的企业版微服务管理解决方案微服务引擎MSE还提供了企业级微服务管理中心,包括全链路灰度化、服务预热、线上线下无损、异常实例剔除等更强大的治理能力。同时,还提供企业级Nacos注册配置中心、企业级云原生网关等产品和解决方案。ComponentSentinel:以流量为切入点,从流量控制、断路器降级、系统负载保护等多个维度保障服务稳定性。Nacos:一个动态的服务发现、配置管理和服务管理平台,可以更轻松地构建云原生应用程序。RocketMQ:一个开源的分布式消息系统,基于高可用的分布式集群技术,提供低延迟、高可靠的消息发布和订阅服务。Dubbo:ApacheDubbo?是一个高性能的JavaRPC框架。Seata:阿里巴巴开源产品,简单易用的高性能微服务分布式事务解决方案。AlibabaCloudOSS:阿里云对象存储服务(AlibabaCloudObjectStorageService,简称OSS),是阿里云提供的海量、安全、低成本、高可靠的云存储服务。您可以随时随地在任何应用程序中存储和访问任何类型的数据。阿里云SchedulerX:阿里中间件团队研发的分布式任务调度产品,提供秒级、精准、高可靠、高可用的定时(基于Cron表达式)任务调度服务。阿里云短信:覆盖全球的短信服务,友好、高效、智能的互联沟通能力,帮助企业快速构建客户接入渠道。

猜你喜欢