【微服务架构设计实施】第一部分:架构篇-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 年初一直到现在,我们在这条路上已经 ...
随机推荐
- Activiti 7 源码学习
1. 启动分析 源码是 7.1.0.M6 首先从 ProcessEngineAutoConfiguration 开始 ProcessEngineAutoConfiguration 是activiti ...
- 第六章:Django 综合篇 - 16:Authentication
Django自带一个用户认证系统,用于处理用户账户.群组.许可和基于cookie的用户会话. Django的认证系统包含了身份验证和权限管理两部分.简单地说,身份验证用于核实某个用户是否合法,权限管理 ...
- 在 CentOS 8 上使用 FirewallD 设置防火墙
简介 一个 Linux 防火墙可用于保护您的工作站或服务器免受不需要的流量干扰.您可以设置规则来阻止或允许流量通过.CentOS 8 带有一个动态的.可定制的基于主机的防火墙和一个 D-Bus 接口. ...
- Kibana: 运用Data Visualizer来分析CSV数据
- 《HelloGitHub》第 78 期
兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣.入门级的开源项目. https://github.com/521xueweiha ...
- # 如何在Windows下运行Linux程序
如何在Windows下运行Linux程序 一.搭建 Linux 环境 1.1 安装 VMware Workstation https://www.aliyundrive.com/s/TvuMyFdTs ...
- OnionArch - 采用DDD+CQRS+.Net 7.0实现的洋葱架构
博主最近失业在家,找工作之余,看了一些关于洋葱(整洁)架构的资料和项目,有感而发,自己动手写了个洋葱架构解决方案,起名叫OnionArch.基于最新的.Net 7.0 RC1, 数据库采用Postgr ...
- 驱动开发:内核枚举PspCidTable句柄表
在上一篇文章<驱动开发:内核枚举DpcTimer定时器>中我们通过枚举特征码的方式找到了DPC定时器基址并输出了内核中存在的定时器列表,本章将学习如何通过特征码定位的方式寻找Windows ...
- 【算法】Tarjan
参考资料: 图论相关概念 - OI WIKI | 强连通分量 - OI WIKI 初探tarjan算法 | Tarjan,你真的了解吗 一.概念 • 子图: 对一张图 \(G=(V,E)\),若存在另 ...
- Windows活动目录_票据——敬请期待!
票据:域控&域机子之间的信任密钥 [缺省40天更换一次] 域用户登录过程 域用户的账户密码(用信任密钥加密的)传递至域控: 域控验证账户密码成功后,构造域用户SID和组SID(用信任密钥加密的 ...