第一章节我们主要是介绍微服务 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. 2017-A

    2017-A 题目描述: 输入一个字符串,要求输出能把所有的小写字符放前面,大写字符放中间,数字放后面,并且中间用空格隔开,如果同种类字符间有不同种类的字符,输出后也要用字符隔开. 例: 输入 12a ...

  2. 使用js开发一个快速打开前端项目的alfred插件

    使用js开发一个快速打开前端项目的插件 目录 前言 使用的技术栈 步骤 问题发现 待优化 前言 一直以来开发都是先打开vscode,然后选择项目,在项目多的情况下会觉得挺繁琐:如果同时打开了许多vsc ...

  3. Java 中for循环和foreach循环哪个更快?

    摘要:本文由葡萄城技术团队于博客园发布.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 在Java编程中,循环结构是程序员常用的控制流程,而for循环 ...

  4. 查看docker容器使用的cpu和内存

    转载请注明出处: 使用docker ps命令列出正在运行的Docker容器,并获取目标容器的ID或名称. 使用docker stats <容器ID或名称>命令来实时监测指定容器的资源使用情 ...

  5. 9.2 运用API实现线程同步

    Windows 线程同步是指多个线程一同访问共享资源时,为了避免资源的并发访问导致数据的不一致或程序崩溃等问题,需要对线程的访问进行协同和控制,以保证程序的正确性和稳定性.Windows提供了多种线程 ...

  6. 前端框架——Vue3

    文章目录 Vue3快速上手 1.Vue3简介 2.Vue3带来了什么 1.性能的提升 2.源码的升级 3.拥抱TypeScript 4.新的特性 一.创建Vue3.0工程 1.使用 vue-cli 创 ...

  7. 基于Spring事件驱动模式实现业务解耦

    事件驱动模式 举个例子 大部分软件或者APP都有会有会员系统,当我们注册为会员时,商家一般会把我们拉入会员群.给我们发优惠券.推送欢迎语什么的. 值得注意的是: 注册成功后才会产生后面的这些动作: 注 ...

  8. 【翻译】listener.ora

    今天仔细过一遍oracle的监听配置文件描述. cat $ORACLE_HOME/network/admin/samples/listener.ora # copyright (c) 1997 by ...

  9. 如何打开关闭Edge鼠标手势

    概述 今天突然发现edge有了一个鼠标手势,用起来不是很适应,所以决定将其关掉. 操作步骤 点击edge右上角的三个点 在下拉菜单中选择设置 点开设置之后出现如图所示的界面,然后选择外观 往下面拉页面 ...

  10. ELK日志企业案例:(5.3版本)

    1.shell三剑客同居.分析nginx日志: 1)在企业生产环境中,日志内容主要用来做什么? 日志内容主要用于运维人员.开发人员.DBA排错软件服务故障的,因为通过日志内容能够第一时间找到软件服务的 ...