06-微服务架构分析及发展

本文介绍了微服务架构的基本概念,强调了其优点如独立部署和快速更新,并详细讨论了SpringCloud和SpringCloudAlibaba在微服务解决方案中的角色,包括核心组件和架构设计。作者分享了微服务不是万能的,适用于快速迭代的公司环境。
摘要由CSDN通过智能技术生成

微服务架构(MSA)的基础是将单个应用程序开发为一组小型独立服务,这些独立服务在自己的进程中运行,独立开发和部署。如图所示:

在这里插入图片描述

这些服务使用轻量级 API 通过明确定义的接口进行通信。这些服务是围绕业务功能构建的,每项服务执行一项功能。由于它们是独立运行的,因此可以针对各项服务进行更新、部署和扩展,以满足对应用程序特定功能的需求。

生活中的微服务,如图所示:

在这里插入图片描述

程序中的微服务,如图所示:

在这里插入图片描述

总之,微服务是分布式系统中的一种流行的架构模型,它并不是银弹,所以,也不要寄希望于微服务构架能够解决所有的问题。微服务架构主要解决的是如何快速地开发和部署我们的服务,这对于一个能够适应快速开发和成长的公司是非常必要的。同时,微服务设计中有很多很不错的想法和理念,通过学习微服务架构我们可以更快的迈向卓越。

微服务解决方案

=================================================================

SpringCloud Netflix 解决方案(了解)


概述

对于微服务架构,几乎所有的大公司走的都是自研路线。例如,国内最初的典型代表最早都是基于阿里的Dubbo进行实现,后来国外的netflix公司将他们内部的微服务技术架构进行了开源,在互联网行业产生了很大的影响力,然后接着就被整合到了spring社区,变成了spring cloud项目。

核心组件分析

Spring Cloud这个项目里面整合的基本上都是netflix公司的微服务相关组件,例如借助eureka做注册中心、feign和ribbon结合实现远程过程调用和负载均衡、zuul做网关、hystrix做熔断,用zipkin和sleuth做链路监控,stream做消息中间件集成,contract做契约测试支持,然后跟spring security配合的做安全认证,跟k8s配合的进行容器化操作等。Spring cloud将这些组件打包集成在一起,进行微服务架构实现,最初在国外比较有市场,几年前在国内也火了,大量公司都开始拥抱spring cloud,尤其是中小型公司。

解决方案架构设计

基于Spring Cloud实现的一代微服务架构,解决方案设计架构如图所示(了解):

在这里插入图片描述

说明:在现阶段SpringCloud netflix公司的这套微服务解决方案,官方的很多组件,现在已经不提供维护了。

…….

Spring Cloud Alibaba 解决方案(掌握)


概述

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

核心组件分析

Spring Cloud Alibaba 默认提供了如下核心功能(先了解):

*服务限流降级:

默认支持 WebServlet、OpenFeign、RestTemplate、Spring Cloud Gateway, RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。

  • 服务注册与发现:

基于Spring Cloud 服务注册与发现标准,借助Nacos进行实现,默认还集成了 Ribbon 的支持。

  • 分布式配置管理:

基于Nacos支持分布式系统中的外部化配置,配置更改时自动刷新。

  • 消息驱动能力:

基于Spring Cloud Stream 为微服务应用构建消息驱动能力。

  • 分布式事务:

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

  • 分布式任务调度:

提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker上执行。

解决方案架构设计

基于Spring Cloud Alibaba实现的微服务,解决方案设计架构如图所示:

在这里插入图片描述

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!**](https://bbs.csdn.net/topics/618164986)

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值