【微服务架构设计实施】第一部分:架构篇-1:微服务架构与Spring Cloud介绍
〇、概述
一、微服务架构与Spring Cloud
(一)概念
不同说法:细粒度的、清凉组件化的小型SOA(面向服务架构)
统一说法:小型应用程序(服务组件),使用轻量级设计方法和HTTP协议通信
理想说法:可以不同语言编写,完全独立自治
(二)定义
广义:复杂系统组件化拆分,轻量通信方式整合,得到拆分的独立组件化小应用
组件:代码库&函数式调用
微服务组件:应用&HTTP通信提供接口服务
精髓:分而治之(复杂系统拆分)、合而用之(轻量方式整合【多实例、多服务、多副本整合,分布式资源和低廉机器组成强大服务系统】)
HTTP通信:通过服务注册与发现,使用服务实例名调用【通过负载均衡器从服务注册列表选用可用的服务实例,再通过实例注册的ip+端口路由到相关的服务】,而非ip+端口【优点:基于api的微服务,可以在任意主机发布,随时更改主机端口,发布任意个副本】
特点:小型化(每个组件变小&专注)、自治化(解耦&服务迭代降低影响)、扁平化(有序可控、杂而不乱、发挥更大优势)、轻量级设计(api同步通信-REST协议、消息异步通信-轻量消息总线)、渐进式设计(业务驱动、快速迭代 不断调整、使产品趋于成熟)
(三)微服务架构与整体式架构的区别
整体式架构:笨重、难以更新(牵一发动全身)、稳定性欠缺(整个崩溃)、不方便持续开发(难以适应需求变更、快速迭代敏捷开发,成为业务发展绊脚石)
微服务架构:复杂事情简单化、快速更新迭代、高可用(并发、高流量访问、规模化发展)
结构图:整体式六边形(不同适配器)




微服务架构

参考:https://www.sohu.com/a/439667700_715776
(四)微服务架构与SOA的比较
SOA:粗粒度&松耦合的面向服务架构设计方法,使用企业服务总线ESB构建信息系统【工具:Dubbo/Dubbox】

SOA本质:业务访问基础服务
区别:微服务轻量级(HTTP协议,通过restful实现),SOA重量级(复杂协议,如WebService)
微服务优势:高可用、伸缩性、负载均衡、故障转移,通过微服务治理(三维结构),提供无限可扩展空间

(五)为什么要使用微服务架构
开发简单
快速响应需求变化
随时随地更新
系统稳定可靠
规模持续扩展
(六)为实施微服务架构做好准备
观念转换:做项目改为做产品(不断迭代),构建生态体系
团队管理方式转变:围绕业务功能分配
自动化基础设施建设:CICD+docker实施交付
(七)为什么使用Spring Cloud
Netflix OSS开源组件
Spring Cloud开发套件:

阿里巴巴实现了标准,并整合多个组件

左边是Spring Cloud自己写了接口和实现类
右边是各个厂商写的实现类(实现Spring Cloud的标准)
(八)Spring Cloud组件说明




(九)Spring Cloud的版本说明


二、微服务架构最佳设计
(一)合理划分微服务
(二)微服务治理
(三)Rest API微服务设计
(四)Web UI微服务设计
(五)微服务之间调用规则设计
(六)数据最终一致性设计
(七)分布式集群架构设计
(八)微服务运行环境安全设计
三、电商平台微服务设计实例
(一)电商平台总体设计
(二)电商平台业务模型设计
(三)创建Rest API微服务
(四)创建Web UI微服务
(五)电商平台微服务体系结构
【微服务架构设计实施】第一部分:架构篇-1:微服务架构与Spring Cloud介绍的更多相关文章
- 微服务架构之spring cloud 介绍
在当前的软件开发行业中,尤其是互联网,微服务是非常炽热的一个词语,市面上已经有一些成型的微服务框架来帮助开发者简化开发工作量,但spring cloud 绝对占有一席之地,不管你是否为java开发,大 ...
- [转帖]微服务框架Spring Cloud介绍 Part1: 使用事件和消息队列实现分布式事务
微服务框架Spring Cloud介绍 Part1: 使用事件和消息队列实现分布式事务 http://skaka.me/blog/2016/04/21/springcloud1/ APR 21ST, ...
- 微服务框架Spring Cloud介绍 Part1: 使用事件和消息队列实现分布式事务
http://skaka.me/blog/2016/04/21/springcloud1/ 不同于单一架构应用(Monolith), 分布式环境下, 进行事务操作将变得困难, 因为分布式环境通常会有多 ...
- [第十八篇]——Docker 安装 Node.js之Spring Cloud大型企业分布式微服务云架构源码
Docker 安装 Node.js Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,是一个让 JavaScript 运行在服务端的开发平台. 1.查看可用的 N ...
- 【Spark亚太研究院系列丛书】Spark实战高手之路-第3章Spark架构设计与编程模型第3节:Spark架构设计(2)
三,深入RDD RDD本身是一个抽象类,具有很多具体的实现子类: RDD都会基于Partition进行计算: 默认的Partitioner如下所示: 其中HashPartitioner的文档说明如下: ...
- 【第一篇】- Maven 系列教程之Spring Cloud直播商城 b2b2c电子商务技术总结
Maven 教程 Maven 翻译为"专家"."内行",是 Apache 下的一个纯 Java 开发的开源项目.基于项目对象模型(缩写:POM)概念,Maven ...
- Atitit.架构设计趋势 设计模式 ---微服务架构 soa
Atitit.架构设计趋势 设计模式 ---微服务架构 soa 什么是微服务架构?1 .微服务与SOA的关系 :微服务架架构师面向服务架构(SOA)的一种特定实现1 微服务与康威定律2 微服务的一些 ...
- 微服务架构-选择Spring Cloud,放弃Dubbo
Spring Cloud 在国内中小型公司能用起来吗?从 2016 年初一直到现在,我们在这条路上已经走了一年多. 在使用 Spring Cloud 之前,我们对微服务实践是没有太多的体会和经验的.从 ...
- 微服务架构集大成者—Spring Cloud (转载)
软件是有生命的,你做出来的架构决定了这个软件它这一生是坎坷还是幸福. 本文不是讲解如何使用Spring Cloud的教程,而是探讨Spring Cloud是什么,以及它诞生的背景和意义. 1 背景 2 ...
- 放弃Dubbo,选择最流行的Spring Cloud微服务架构实践与经验总结
http://developer.51cto.com/art/201710/554633.htm Spring Cloud 在国内中小型公司能用起来吗?从 2016 年初一直到现在,我们在这条路上已经 ...
随机推荐
- flutter系列之:flutter中常用的Stack layout详解
[toc] 简介 对于现代APP的应用来说,为了更加美观,通常会需要用到不同图像的堆叠效果,比如在一个APP用户背景头像上面添加一个按钮,表示可以修改用户信息等. 要实现这样的效果,我们需要在一个Im ...
- .Net 7内容汇总(2)--原始字符串
在C# 11里,添加了一个叫原始字符串的东西. 这个东西算是我相当喜欢以及期待的功能. 我们先来看看这玩意咋用. 首先,我们先来看看之前如果我们需要定义一个带引号的字符串我们需要怎么做. var a ...
- 在云原生中监控JVM指标
一般 Java 集成 Prometheus 监控指标有两种方式.一种是依赖中引入,另外一种是通过agent执行. 依赖引入 <!-- The client --> <dependen ...
- frpc穿透报错 日志显示 http: proxy error: no such domain 解决办法
问题出在客户端的设置上,比如你的frps服务器IP为114.114.114.114,设置的vhost_http_port端口为 8080,在客户端设置的是域名fk.abc.com 指向frps所在服务 ...
- 10.使用nexus3配置golang私有仓库
1,前言说明 golang是近来非常火热的语言,但是处理其依赖包一直都是一个让人头疼的问题,尤其是在国内,开发者需要下载一些官方的包的时候,就会非常苦恼.尽管已经有了私服 Athens,公司也已经搭建 ...
- PostgreSQL 删除表格
PostgreSQL 使用 DROP TABLE 语句来删除表格,包含表格数据.规则.触发器等,所以删除表格要慎重,删除后所有信息就消失了. 语法 DROP TABLE 语法格式如下: DROP TA ...
- H5与APP的交互框架(WebViewJavascriptBridge)
基本原理是: 把 OC 的方法注册到桥梁中,让 JS 去调用. 把 JS 的方法注册在桥梁中,让 OC 去调用.(注册自己,调用它人.) WebViewJavaScriptBridge 使用的基本步骤 ...
- 关于成本标签管理-基于-Resource Groups & Tag Editor-统计指定Project-所有资源
背景:因我们所有AWS都是使用Project标签作为成本标签的,今天因一个项目决定彻底退役下线 于是决定要完全清理此项目的所有资源,防止继续产生费用~ 首先想到的去通过Project 在ec2 , s ...
- Filter 筛选器(二)之 ExceptionFilter
public class MyExceptionFilter : IAsyncExceptionFilter { private readonly ILogger<MyExceptionFilt ...
- IDEA插件MyBatisCodeHelper-Pro的破解与使用
0.前言 本文中的IDEA版本是2020.3,使用的插件版本是MyBatisCodeHelper-Pro 2.8.9,3.0+版本目前没找到激活的方式 和本文插件类似的还有mybatisX,但我不喜欢 ...