第一章节我们主要是介绍微服务 springCloud的架构和分布式的区别

但是后面会主要介绍netflix公司与Alibaba公司的两套架构

系统架构

   **概述**
随着互联网的发展,网站应用的规模不断扩大。需求的激增,带来的是技术上的压力。
系统架构也因此也不断的演进、升级、迭代。
从单一应用,到垂直拆分,到分布式服务,到SOA,以及现在火热的微服务架构
集中式架构
概述
当网站流量很小时,只需一个应用
将所有功能都部署在一起,以减少部署节点和成本
从头到尾就一个工程,部署的时候 , 只需要打成一个war包
特点
代码耦合,开发维护困难
无法针对不同模块进行针对性优化
无法水平扩展
单点容错率低,并发能力差
垂直拆分
概述
当访问量逐渐增大,单一应用无法满足需求,此时为了应对更高的并发和业务需求,我们根据业务功能对系统进行拆分
特点
系统拆分实现了流量分担,解决了并发问题
可以针对不同模块进行优化
方便水平扩展,负载均衡,容错率提高
系统间相互独立,会有很多重复开发工作,影响开发效率

系统架构分类

微服务
概述
微服务就是把原本臃肿的一个项目的所有模块拆分开来并做到互相没有关联,甚至可以不使用同一个数据库
微服务的特点
单一职责
微服务中每一个服务都对应唯一的业务能力,做到单一职责
服务拆分粒度很小
例如一个用户管理就可以作为一个服务
面向服务
面向服务是说每个服务都要对外暴露服务接口API
并不关心服务的技术实现
做到与平台和语言无关
不限定用什么技术实现,只要提供Rest的接口即可
自治
自治是说服务间互相独立,互不干扰
分布式服务
概述
当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务
分布式,就是将偌大的系统划分为多个模块(这一点和微服务很像)部署到不同机器上
因为一台机器可能承受不了这么大的压力
各个模块通过接口进行数据交互,其实 分布式也是一种微服务。
特点
将基础服务进行了抽取,系统间相互调用,提高了代码复用和开发效率
系统间耦合度变高,调用关系错综复杂,难以维护
微服务和分布式的区别
微服务与分布式都是把模块拆分开来变为独立的单元,提供接口来调用
他们本质的区别在于目标的不同,
分布式的目标是
一台机器承受不了的,或者是成本问题 , 不得不使用多台机器来完成服务的部署
微服务的目标
只是让各个模块拆分开来,不会被互相影响,比如模块的升级亦或是出现BUG等等...
微服务要面临的问题
服务治理(SOA)
概述
当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,
此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。
(SOA)用于提高机器利用率的资源调度和治理中心
问题
服务越来越多,需要管理每个服务的地址
调用关系错综复杂,难以理清依赖关系
服务过多,服务状态难以管理,无法根据服务情况动态管理
服务治理要做什么
服务注册中心,实现服务自动注册和发现,无需人为记录服务地址
服务自动订阅,服务列表自动推送,服务调用透明化,无需关心依赖关系
动态监控服务状态监控报告,人为控制服务状态
1.监听服务有没有宕机
部署很多服务后 ,如果监听到服务有没有宕机
2.负载均衡,
一个服务吃不消,要部署多个服务,部署的多个服务均衡调用
3.熔断
服务出现了问题,不能让程序卡在那里
4.限流
限流就是针对超过预期的流量,通过预先设定的限流规则选择性的对某些请求进行限流“熔断”
5.降级
当服务器压力剧增的情况下,根据实际业务情况及流量,对一些服务和页面有策略的不处理或换种简单的方式处理,
从而释放服务器资源以保证核心交易正常运作或高效运作
6.网关
统一管理API的一个网络关口、通道,是整个微服务平台所有请求的唯一入口

未完。。。

【笔记】01 -- Spring-Cloud介绍的更多相关文章

  1. 黑马_13 Spring Boot:01.spring boot 介绍&&02.spring boot 入门

    13 Spring Boot: 01.spring boot 介绍&&02.spring boot 入门 04.spring boot 配置文件 SpringBoot基础 1.1 原有 ...

  2. [转帖]微服务框架Spring Cloud介绍 Part1: 使用事件和消息队列实现分布式事务

    微服务框架Spring Cloud介绍 Part1: 使用事件和消息队列实现分布式事务 http://skaka.me/blog/2016/04/21/springcloud1/ APR 21ST,  ...

  3. Spring Cloud介绍 Spring Cloud与Dubbo对比

    spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状 ...

  4. 一、Spring Cloud介绍

    springcloud 介绍 研究了一段时间spring boot了准备向spirng cloud进发,公司架构和项目也全面拥抱了Spring Cloud.在使用了一段时间后发现Spring Clou ...

  5. 微服务架构之spring cloud 介绍

    在当前的软件开发行业中,尤其是互联网,微服务是非常炽热的一个词语,市面上已经有一些成型的微服务框架来帮助开发者简化开发工作量,但spring cloud 绝对占有一席之地,不管你是否为java开发,大 ...

  6. Spring Cloud介绍

    Spring Cloud中国社区博客 Spring Cloud发展到2016年,国内关注的人越来越多,但是相应学习交流的平台和材料比较分散,不利于学习交流,因此Spring Cloud中国社区应运而生 ...

  7. Spring Cloud认知学习(一):Spring Cloud介绍与Eureka使用

    目录 Spring Cloud的介绍 微服务的介绍 Spring Cloud出现的原因: 常见场景: 微服务的优劣势: Spring Cloud版本问题 版本介绍 与Spring Boot版本对应关系 ...

  8. 笔记:Spring Cloud Zuul 快速入门

    Spring Cloud Zuul 实现了路由规则与实例的维护问题,通过 Spring Cloud Eureka 进行整合,将自身注册为 Eureka 服务治理下的应用,同时从 Eureka 中获取了 ...

  9. 笔记:Spring Cloud Feign Ribbon 配置

    由于 Spring Cloud Feign 的客户端负载均衡是通过 Spring Cloud Ribbon 实现的,所以我们可以直接通过配置 Ribbon 的客户端的方式来自定义各个服务客户端调用的参 ...

  10. 笔记:Spring Cloud Feign Hystrix 配置

    在 Spring Cloud Feign 中,除了引入了用户客户端负载均衡的 Spring Cloud Ribbon 之外,还引入了服务保护与容错的工具 Hystrix,默认情况下,Spring Cl ...

随机推荐

  1. 千呼万唤始出来 JDK 21 LTS, 久等了

    平地起惊雷!!! 目录 英雄的迟暮 大人时代变了 JDK 21 LTS 前 JAVA并发编程模型 JDK 21 LTS 中的 JAVA 并发编程模型 虚拟线程 VS 线程池 The Last 你可以称 ...

  2. 其它——Siege压力测试工具使用

    文章目录 Siege压力测试工具使用 一 Siege介绍 二 windows 下使用 三 mac和linux使用 四 使用 五 参数详解 六 结果详解 七 修改系统的文件描述符限制 Siege压力测试 ...

  3. Markdown · Typora | 基本画图技巧

    如果想画一些简单的状态图,可以使用 typora 自带的 mermaid 工具. (mermaid 不止能画简单的状态图,还能画流程图等,详见参考资料) 定义节点 可以定义不同形状的节点,并为节点添加 ...

  4. [SUCTF 2019]CheckIn 1

    看到字符upload 就想到了文件上传漏洞 就先上传一个一句话木马试试 似乎直接上传不成功,可能是有什么过滤 再上传一个包含一句话木马的图片试试 发现提示不能是图片,这时候就不会了,在网上找了一下wp ...

  5. 自学一周python做的一个小游戏《大球吃小球》

    需求 1,显示一个窗口. 2,我们要做到的功能有鼠标点击屏幕生成小球. 3,生成的小球大小随机,颜色随机,向随机方向移动,速度也随机. 4,大的球碰到小球时可以吃掉小球,吃掉后会变大. 5,球碰到边界 ...

  6. SQL Server事务及隔离级别

    事务的并发操作可能出现的问题 中文 英文 描述 脏读 Dirty Reads 事务2读到了事务1未提交的事务,事务1随后回滚,但事务2读到了事务1的"中间数据". 在Read Un ...

  7. ansible 命令行模

    ansible 命令行模 ansible命令格式 命令格式:ansible <组名> -m <模块> -a <参数列表> 查看已安装的模块 ansible-doc ...

  8. Python 批量合并图片到word文档

    这段代码是一个用Python编写的功能,它将指定文件夹中的所有图片插入到Word文档中并保存.以下是代码的主要步骤和功能: 导入必要的库 Python中的docx库用于操作Word文档,glob库用于 ...

  9. 知识图谱与大模型相结合的3种方法,1+1>2

    本文分享自华为云社区<知识图谱与大模型结合方法概述>,作者: DevAI . <Unifying Large Language Models and Knowledge Graphs ...

  10. 微服务系列-使用WebFlux的WebClient进行Spring Boot 微服务通信示例

    公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享. 概述 在之前的教程中,我们看到了使用 RestTemplate 的 Spring Boot 微服务通信示例. 从 5.0 ...