Spring Cloud 微服务项目实战 -_springcloud项目实战-程序员宅基地

技术标签: 【实战-Spring Cloud Alibaba】  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 修复得差不多了了,再应用到项目中也不迟。


毕业版本依赖关系推荐使用

版本说明

在这里插入图片描述
在代码中的使用如下:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述


微服务项目

搭建一个简化版的营销优惠计算系统,实现优惠券模板的创建、用户领取优惠券、下单核销优惠券和订单价格试计算等功能。

要实现一个“领取优惠券”的功能,首先是要创建一个营销规则模板。这个模板就像是一个模具一样,每张优惠券都通过这个模具来铸造,并最终发放到用户手中。

使用模板的好处是可以对优惠券消费规则做一层抽象,比如满减类、打折类这些优惠券只是具体的优惠金额不同,但是玩法类似,把相类似的玩法功能抽象成一个模板,就可以简化具体优惠券的创建和核销流程。

在这个实战项目中,借鉴之前的工作经验,把整个项目划分为了优惠券模板服务、计算服务、用户服务和平台类组件这四大模块

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/yangshangwei/article/details/127769017

智能推荐

VS2019生成一个Mydll.DLL并用另一个mytest.exe调用(静态)。_vs2019生成dll-程序员宅基地

文章浏览阅读1k次。VS2019生成一个Mydll.DLL并用另一个mytest.exe调用(静态)。_vs2019生成dll

【python】获取某一天是星期几_python 读取星期几报错-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏6次。方法一:import re;import time;import datetime;anyday=datetime.datetime(2019,12,11).strftime("%w")print anyday方法二:from datetime import datetimedayOfWeek = datetime.now().isoweekday() ###返回数字1-7代..._python 读取星期几报错

2020年毕业生腾讯校园招聘提前批——后台开发——面试经验——分享给大家交流经验。_腾讯2020秋招提前批-程序员宅基地

文章浏览阅读5k次,点赞9次,收藏11次。个人博客地址:代码集结地,点击访问我的个人博客,不定时发布各种信息嘻嘻。前言:本人现在也已经大三下学期了,从大一下学到现在,也算是学了两年的编程,间间断断学过很多编程知识,C语言能说掌握有点自大,但是毕竟很经常使用STM32,所以也不差。掌握的很好的有Python、LinuxShell(Bash)、Django(Python的一个WEB框架)、爬虫(使用Python的requests和..._腾讯2020秋招提前批

activiti6.0(二)节点处理人_activiti6 用户处理人 和候选人 表达式-程序员宅基地

文章浏览阅读3.2k次,点赞2次,收藏8次。1. 候选人和处理人候选人:candidateUser 处理人,指派人:assignee一个task可以有多个候选人,但是只能有一个处理人activiti6.0的数据库表结构中 ,identityLink表保存用户和task之间一对多的候选关系。处理人assignee直接是task表中的一个字段通常情况下,系统根据流程的定义,自动为一个task指定候选人。比如..._activiti6 用户处理人 和候选人 表达式

数据结构与算法分析——java语言描述第三版图论部分java实现,使用邻接表实现图论相关算法。_《数据结构与算法分析:java语言描述》中的代码-程序员宅基地

文章浏览阅读442次,点赞3次,收藏2次。这篇文章是笔者,学习《数据结构与算法分析——java语言描述第三版》一书的第九章图论部分,根据书中的提示加上自己的理解,编写的源代码。注意点:1.使用HashMap + LinkedList的方式来实现邻接表。2.实现了广度优先搜索,及其应用(无圈图中的单源最短路径问题,关键路径分析),深度优先搜索及其应用(无向图中的割点寻找)3.后续还会陆续更新第九章的其他问题。import java.util..._《数据结构与算法分析:java语言描述》中的代码

jquery.js:5 Uncaught TypeError: Illegal invocation_jquery.min.js:5 uncaught typeerror: illegal invoca-程序员宅基地

文章浏览阅读906次。jquery.js:5 Uncaught TypeError: Illegal invocation解决String与Long类型转换注意:不然mapper不能识别!正确写法:Long.parseLong(xxx)_jquery.min.js:5 uncaught typeerror: illegal invocation

随便推点

统计学方法&机器学习实战(四) 朴素贝叶斯算法_multinamialnb方法-程序员宅基地

文章浏览阅读1.1k次。理论难点:理论知识强烈推荐看Jack Cui 真是讲得非常好,理论也太通俗了。这部分实现难点:_multinamialnb方法

Linux/Android之获取当前进程ID/进程名/进程路径(十六)_android获取当前进程pid-程序员宅基地

文章浏览阅读3.4k次。【代码】Linux/Android之获取当前进程ID/进程名/进程路径(十六)_android获取当前进程pid

CentOS 6.5安装配置Cacti_centos6.5下cacti服务器安装-程序员宅基地

文章浏览阅读1.2k次。CentOS 6.5安装配置Cacti 一、安装http + php + mysql 环境[root@test ~]# yum -y install httpd mysql mysql-server php php-mysqlphp-mbstring mysql-devel wget 二、安装依赖包 [root@test ~]# yum -y install net-snmpnet-snmp-d..._centos6.5下cacti服务器安装

[软件下载]Skype for Windows 1.1.0.81 Beta_skypebeta-程序员宅基地

文章浏览阅读1.8k次。Skype 是一种简单的免费软件,使您能够在数分钟之内在世界上的任何角落拨打免费电话。 Skype 是 KaZaA 开发人员的又一杰作,它使用全新的 P2P(对等)技术将您与其他 Skype 用户相连接。 如果您已厌倦支付极不合理的电话服务费,那么 Skype 是您的解决之道! Skype可以快速简便地装入您的电脑。 您只需下载并注册,在数分钟之内,您便可以使用 PC 耳机通过 Sky_skypebeta

关于SpringBoot 2.0,Pageable 无法注入,提示缺少默认构造方法的解决办法_spring boot 2.0构造其注入失败-程序员宅基地

文章浏览阅读207次。关于SpringBoot 2.0,Pageable 无法注入,提示缺少默认构造方法的解决办法_spring boot 2.0构造其注入失败

Failed with exception MetaException(message:javax.jdo.JDODataStoreException: Error(s) were found whi...-程序员宅基地

文章浏览阅读527次。hive (db_emp)> load data local inpath '/opt/datas/emp.txt' into table emp_part partition(`date`='2018120');在加载数据到HDFS上时,报错:Failed with exception MetaException(message:javax.jdo.JDODataStoreExce..._failed with exception metaexception

推荐文章

热门文章

相关标签