Spring Cloud 微服务项目实战 -
文章目录
微服务“三大功能,两大特性”
三大功能是指微服务核心组件的功能维度,由浅入深层次递进;
两大特性是构建在每个服务组件之上的高可用性和高可扩展性。
微服务框架组件可以按照这三大功能模块分下类
- 服务间通信,包括服务治理、负载均衡、服务间调用;
- 服务容错和异常排查,包括流量整形、降级熔断、调用链追踪;
- 分布式能力建设,包括微服务网关、分布式事务、消息驱动、分布式配置中心。
从微服务组件的功能维度来讲,服务间通信是最基础的功能特性,这个功能模块是最适合作为微服务技术的切入点。
当构建起基础的通信能力之后,就要考虑如何构建服务容错能力,提高服务调用的稳定性了。
在这之后,就可以从全局的角度构建一些分布式支持特性。
除了功能特性以外, 我们从高可用性和可扩展性两个维度来做扩展。
Spring Boot & Spring Cloud
上图是 Spring社区发布的一张简化的架构图 。
我们可以看到有几个 Spring Boot Apps 的应用集群,这就是经过拆分后的微服务。Spring Cloud 和 Spring Boot 达成了一种默契的配合:
- Spring Boot 主内,通过自动装配和各种开箱即用的特性,搞定了数据层访问、RESTful 接口、日志组件、内置容器等等基础功能,轻松搭建起一个应用
- Spring Cloud 主外,在应用集群之外提供了各种分布式系统的支持特性,轻松实现负载均衡、熔断降级、配置管理等诸多微服务领域的功能。
两者合二为一完整构建了微服务领域的全家桶解决方案。
Spring Cloud 组件库一览
Spring Cloud 版本
在大版本发布之前,还要经历很多小版本的迭代, Spring Cloud 的小版本更新策略如下
- SNAPSHOT 版本:正在开发中的快照版本,例如 2021.0.0-SNAPSHOT,快照版代表当前分支最新的代码进度,也是更新最为频繁的小版本类型,不推荐在线上正式环境使用;
- Milestone 版本:在大版本正式发布前的里程碑版本,例如 2021.0.0-M1,M1 代表当前大版本的第一个里程碑版本,M2 代表第二个迭代里程碑,以此类推。在正式版本发布之前要经历多个里程碑的迭代,像 Spring Cloud Finchley 版足足经历了 9 个 M 版本之后,才过渡到了 RC 版。同样地,也不推荐你在正式项目中使用 Milestone 版本;
- Release Candidate 版本: RC 版,例如 2021.0.0-RC1。当一个版本迭代到 RC 版的时候,意味着离正式发布已经不远了。 RC 版是发布前的候选版本,走到这一步通常已经没有新的功能开发,RC 主要目的是开放出来让大家试用并尽量修复严重 Bug。
- Release 版:稳定的正式发布版,比如 2020.0.1。放心使用 Release 稳定版。
建议: 当框架有重大版本更新时,建议你先按兵不动,等大版本做了一两次迭代之后,明显的 Bug 修复得差不多了了,再应用到项目中也不迟。
毕业版本依赖关系推荐使用
在代码中的使用如下:
微服务项目
搭建一个简化版的营销优惠计算系统,实现优惠券模板的创建、用户领取优惠券、下单核销优惠券和订单价格试计算等功能。
要实现一个“领取优惠券”的功能,首先是要创建一个营销规则模板。这个模板就像是一个模具一样,每张优惠券都通过这个模具来铸造,并最终发放到用户手中。
使用模板的好处是可以对优惠券消费规则做一层抽象,比如满减类、打折类这些优惠券只是具体的优惠金额不同,但是玩法类似,把相类似的玩法功能抽象成一个模板,就可以简化具体优惠券的创建和核销流程。
在这个实战项目中,借鉴之前的工作经验,把整个项目划分为了优惠券模板服务、计算服务、用户服务和平台类组件这四大模块
相关文章
- Spring Cloud Alibaba入门到实战原理实践
- 防止内卷和被潜规则,Spring Cloud Alibaba微服务架构实战派(上下册)|35岁程序员那些事
- sql2java-excel(二):基于apache poi实现数据库表的导出的spring web支持
- 基于Spring MVC + Spring + MyBatis的【图书信息管理系统(一)】
- Spring Cloud原理详解[通俗易懂]
- Spring Cloud实战|整合Gateway-网关还能这么整?
- Spring Cloud实战|4.SpringCloud 整合security.实现认证中心
- 微服务组件-----Spring Cloud Alibaba 注册中心 Nacos源码(1.4.x版本)分析
- spring cloud面试题_javaspring面试题
- spring cloud gateway 网关认证登录_golang 网关
- spring cloud系列教程第七篇-服务提供者集群环境搭建及负载均衡配置
- Spring Cloud Alibaba实战派正式开放源码了
- Spring Cloud 2022 正式发布!我的天,OpenFeign 要退出历史舞台了?!
- Spring Cloud Tencent 1.10.2 版本正式发布!
- Spring Boot + MyBatis + MySQL 实现读写分离!
- Spring Cloud Stream应用程序开发-创建消息处理器和发布器
- Spring Cloud LoadBalancer 的核心组件Reactor-based LoadBalancer
- Spring Cloud Bus的基本概念和用途
- Spring Cloud Task 核心组件-Task Execution Listener
- spring的AOP(五)—-Spring AOP 编程(AspectJ )详解编程语言
- Spring Cloud(十一):Spring Cloud Zuul网关 Filter、熔断、重试、高可用的使用方式详解编程语言
- Spring Cloud分布式微服务系统中利用redssion实现分布式锁详解编程语言
- Spring MVC & Boot & Cloud 技术教程汇总(长期更新)详解编程语言
- spring 编码过滤器 防止中文乱码详解编程语言