Spring Cloud阿里巴巴新一代微服务解决方案

本篇是「跟我学 Spring Cloud Alibaba」系列的第一篇:Spring Cloud Alibaba 是什么Spring Cloud Alibaba

大家好,感谢邀请,今天来为大家分享一下Spring Cloud阿里巴巴新一代微服务解决方案的问题,以及和的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

马总左手双十一,右手阿里巴巴的开源组件,不仅占领了程序员的购物车,也占领了大家的开发工具。

先说说 Spring Cloud

说到微服务,就不得不提到Spring Cloud全家桶系列。 Spring Cloud是多个框架的集合,包括spring-cloud-config、spring-cloud-bus等近20个子项目。它提供服务治理、服务网关、智能路由、负载均衡、断路器、监控追踪、分布式消息队列、配置管理等领域的解决方案。

Spring Cloud通过Spring Boot风格的封装,屏蔽了复杂的配置和实现原理,最终给开发者留下了一套简单易懂、易于部署的分布式系统开发工具包。

总体来说,Spring Cloud包括以下几个组件,主要是Netflix开源的:

Spring Cloud Alibaba

和Spring Cloud 一样,Spring Cloud Ali 也是一套微服务解决方案,包含了开发分布式应用微服务所必需的组件,使得开发者可以轻松地使用这些组件通过Spring Cloud 编程模型来开发分布式应用服务。

依托Spring Cloud Ali,您只需要添加一些注解和少量配置,即可将Spring Cloud应用连接到阿里巴巴微服务解决方案,并通过阿里巴巴中间件快速构建分布式应用系统。

Spring Cloud Ali作为Spring Cloud体系下的新实现,比官方组件或其他第三方实现如Netflix、Consul、Zookeeper等拥有更多的功能。

Spring Cloud Alibaba 包含组件

此图为Spring Cloud阿里巴巴系列组件,包括阿里巴巴开源组件、阿里云商业组件、集成Spring Cloud组件。

阿里开源组件

Nacos:动态服务发现、配置管理和服务管理平台,让构建云原生应用变得更加容易。

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

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

Dubbo:不用说,这是一个在国内广泛使用的高性能Java RPC框架。

Seata:阿里巴巴开源产品,简单易用、高性能的微服务分布式事务解决方案。

Spring Cloud阿里巴巴新一代微服务解决方案

Arthas:一个基于字节码增强技术的开源Java动态跟踪工具,功能非常强大。

阿里商业化组件

作为一家商业公司,阿里巴巴推出Spring Cloud Ali,很大程度上是希望通过抢占开发者生态来帮助推广自己的云产品。因此,在开源社区中,存在着很多私货。我在阿里巴巴工作的时候就用过这些组件。整体易用性和稳定性还是很高的。

阿里云ACM:应用配置中心产品,在分布式架构环境下集中管理和推送应用配置。

阿里云OSS:阿里云对象存储服务(OSS)是阿里云提供的云存储服务。

阿里云SchedulerX:阿里中间件团队开发的分布式任务调度产品,提供秒级精准定时(基于Cron表达式)任务调度服务。

集成 Spring Cloud 组件

Spring Cloud阿里巴巴是一套完整的微服务解决方案组件。仅仅依靠阿里巴巴目前的开源组件是不够的。它更多的是关于集成当前的社区组件。因此,Spring Cloud阿里巴巴可以集成Zuul、OpenFeign等网关,同时也支持Spring。云流消息传递组件。

Spring Cloud Alibaba 功能

那么Spring Cloud Ali作为一个微服务解决方案,是如何支持微服务治理的各种功能的。

服务注册与发现

Spring Cloud阿里巴巴基于Nacos提供了spring-cloud-alibaba-starter-nacos-discovery spring-cloud-alibaba-starter-nacos-config来实现服务注册和配置管理功能。依靠@EnableDiscoveryClient来注册服务,并使用兼容RestTemplate OpenFeign的客户端来进行服务调用。

适配Spring Cloud服务注册和发现标准,默认集成Ribbon支持。

支持多协议的服务调用

Spring Cloud默认服务调用依赖OpenFeign或RestTemplate使用REST进行调用。

使用@DubboTransported注解将底层Rest协议无缝切换为Dubbo RPC协议进行RPC调用。

@FeignClient(‘dubbo-provider’)@DubboTransported(protocol=’dubbo’)公共接口DubboFeignRestService { @GetMapping(value=’/param’) String param(@RequestParam(‘param’) String param); @PostMapping(‘ /saveB’) String saveB(@RequestParam(‘a’) int a, @RequestParam(‘b’) String b);}

服务限流降级

作为稳定性核心要素之一,服务限流降级在微服务领域特别重要的一环是Spring Cloud Ali基于Sentinel,适配了Spring系统中基本上所有的客户端和网关。

默认支持WebServlet、WebFlux、OpenFeign、RestTemplate、Spring Cloud Gateway、Zuul、Dubbo、RocketMQ的限流降级功能的访问。

Spring Cloud阿里巴巴新一代微服务解决方案

Sentinel 应用程序相对简单。只需要引入starter即可生效。您可以在运行时通过控制台实时修改限流和降级规则。还支持查看限流和降级Metrics监控。

微服务消息驱动

支持为微服务应用构建消息驱动能力,并提供基于Spring Cloud Stream : Spring Cloud Stream RocketMQ Binder 的新Binder 实现,

还添加了Spring Cloud Bus 消息总线的新实现Spring Cloud Bus RocketMQ。

分布式事务

使用Seata解决微服务场景下面临的分布式事务问题。

在微服务中使用@GlobalTransactional注解传递事务上下文可以解决分布式事务问题,对业务零侵入。

阿里云提供的商业能力

通过上述OSS、schedulerx等组件,开发者可以在阿里云上实现对象存储、分布式任务调度等功能。

为什么我看好 Spring Cloud Alibaba

Spring Cloud Ali虽然诞生不久,但由于其强大的技术影响力和背靠大树,已经成为微服务解决方案的重要选择之一。

我认为Spring Cloud阿里巴巴的优势有以下几点:

阿里巴巴强大的技术输出能力

阿里巴巴无疑是国内开源技术领域最具影响力的公司之一。它已经拥有Dubbo、Druid、FastJson 等成功的开源组件。再加上阿里巴巴不遗余力的推广,社区也发展得很快。

集成Dubbo,利用Dubbo在微服务领域的超高人气

Dubbo是国内应用最广泛的分布式服务框架之一。基于Dubbo的Dubbox也被很多公司使用。

Spring Cloud阿里巴巴在整合Dubbo方面做得很好,能够吸引很多使用Dubbo的开发者。

云原生趋势,集成阿里云商业化组件

云原生是今年技术领域特别热门的一个词。云原生是一种专门为云应用程序设计的方法,用于构建和部署应用程序以充分利用云计算。

用户评论

Spring Cloud阿里巴巴新一代微服务解决方案
淡抹烟熏妆丶

春云阿里的新生态确实挺吸引人的,阿里巴巴多年积累的技术沉淀在产品上体现得也很明显,比如 nacos 注册中心、seata 分布式事务等等都是很成熟的方案,想要快速搭建一套稳定可靠的微服务体系用它应该不会太难.

    有14位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
心亡则人忘

以前折腾spring cloud一直遇到各种各样的坑,这个 Spring Cloud Alibaba 是不是会更易于上手一些?想了解一下具体的部署和配置过程,有没有官方文档能推荐?

    有15位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
嗯咯

阿里终于自己出家了!Spring Boot 和 Spring Cloud 都很喜欢用,但是集成成一套完整的微服务体系还是需要投入很多精力,希望这套方案能够解决大家的痛点!

    有15位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
走过海棠暮

作为一名经验丰富的开发工程师,我还是觉得没有一套万金油的解决方案。每个项目的情况都不一样,选择 Spring Cloud Alibaba 是否合适需要进行深入评估和对比,而不是盲目跟风。

    有12位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
◆乱世梦红颜

我之前一直在使用的方案是自己搭建 Dubbo+ZooKeeper,感觉太复杂而且维护成本高了,Spring Cloud Alibaba 能否简化这些过程?比如自动配置、安全部署等等?

    有8位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
花海

这个 Spring Cloud Alibaba 主要是针对企业级服务治理设计的吗?对于中小公司的项目来说是否过重?能否提供一些轻量级的解决方案?

    有6位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
清原

看了下官网文档,这套方案的生态系统还是蛮完善的,从注册中心到网关、限流、熔断都囊括了。感觉可以替代我之前一直用的其他的开源框架!

    有18位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
々爱被冰凝固ゝ

我对 Spring Cloud Alibaba 非常期待! 期待它能打通上下游的互联互通,加速企业业务发展!

    有5位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
寻鱼水之欢

这个解决方案会不会比较封闭? 如果我想使用其他第三方服务,比如 Kafka或者Redis 这类,需要怎么进行集成呢?

    有7位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
海盟山誓总是赊

阿里开发的东西一直都很有水准,相信 Spring Cloud Alibaba 也是一个值得信赖的微服务方案。看我还能不能赶上我的同事用Spring Boot 和 Spring cloud 开发的速度…

    有9位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
艺菲

感觉这个新一代的解决方案比传统微服务框架更强大了一些,比如可以更好地支持多语言和平台部署等等,这对于我们公司来说非常重要!

    有10位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
瑾澜

Spring Cloud Alibaba 真正的一站式微服务吗?会不会还需要其他一些工具来辅助开发呢?期待更多的实践案例分享!

    有10位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
请在乎我1秒

虽然 Spring Cloud Alibaba 听起来很不错,但我还是比较喜欢开源社区的力量,不知道这个方案是否会成为“闭源”?

    有19位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
ー半忧伤

Springboot + Alibaba 的组合让我感觉很强大,希望它能快速融入到更多项目中去,加速微服务的普及!

    有5位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
↘▂_倥絔

我觉得 Spring Cloud Alibaba 这套解决方案可能会让开发人员更专注于业务逻辑本身,而不是花费大量的时间在技术搭建上。真是太棒了!

    有14位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
把孤独喂饱

这篇文章主要介绍Spring Cloud Alibaba 的功能? 希望作者能够多分享一些使用案例和实战经验,更容易理解它的优势!

    有12位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
几妆痕

阿里家大户的微服务解决方案一般都很高大上,但实际开发过程中是否会遇到一些比较现实的问题呢?例如成本控制、团队协作等等。期待看到更加全面的评价。

    有16位网友表示赞同!

Spring Cloud阿里巴巴新一代微服务解决方案
绝版女子

Spring Cloud Alibaba 确实给开发带来了很大便利,但是我希望方案能够不断迭代更新,完善一些功能,比如支持更灵活的部署方式、更强大的监控系统等等。

    有11位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/118492.html

(0)
小su's avatar小su
上一篇 2024年9月1日 上午10:44
下一篇 2024年9月1日 上午10:54

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注