springcloud官方文档翻译网站:https://springcloud.cc/

一、网站架构的演变过程。(这些架构描述的不是很到位,之后需要从新学习)

  传统架构  —>   分布式架构   —>   SOA架构   —>   微服务架构

  架构博客:https://www.cnblogs.com/Survivalist/p/8012266.html

  1、传统架构

  传统架构其实就是SSH或SSM,属于单点应用,把整个业务模块都会在一个项目进行开发,分为MVC架构,会拆分成控制层、业务逻辑层、数据库访问层(持久层)。

  传统架构一般适合于一个人或者小型团队开发。

  缺点:耦合度太高,一旦某个模块导致服务不可用,可能会影响到其他模块。

  2、分布式架构

  分布式架构是基于传统架构演变过来的,将传统的项目以项目模块拆分成多个子项目,比如:

拆分会员项目、订单项目、支付项目、优惠券项目等,每个项目都有自己的独立数据库,独立redis等。

  优点:
  1、把模块拆分,使用接口通信,降低模块之间的耦合度。
  2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
  3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
  4、可以灵活的进行分布式部署。
  (并发量太大的话就要使用缓存(memcached、radis等))
  缺点:
  系统之间交互需要使用远程通信,接口开发增加工作量。

  3、SOA架构

  SOA架构代表面向服务架构,俗称服务化。通俗的理解为面向于业务逻辑层开发,将共同的业务逻辑抽取出来形成的一个服务。提供给其他服务接口进行调用,服务于服务之间调用使用rpc远程技术。

  SOA架构的缺点:

  (1)、依赖于中心化服务发现机制。

  (2)、SOA架构采用的是SOAP协议(Http+xml),因为xml传输协议比较占用宽带,整个xml报文中有非常大的冗余数据,所有在微服务架构中以轻量级的json方式代替了xml报文传输。

  4、微服务

  微服务架构是从SOA架构中演变过来的,比SOA架构上的粒度更加精细。让专业的人做专业的事情,目的就是为了提高效率。每个服务之间互相不受影响,每个服务必须独立部署(独立数据库、独立Redis等),微服务架构更加提醒轻量级,采用restful风格提供的API,也就是使用HTTP协议+json格式进行传输,更加轻巧,更加适用于互联网公司敏捷开发、快速迭代产品。

  微服务架构如何拆分:

  1、微服务把每一个职责,单一功能存放在独立服务器中。

  2、每个服务运行在单独进程中,能够单独启动或销毁。

  3、每个服务有自己独立的数据库存储,实际上有自己独立的缓存、数据库、消息队列等资源。

  5、微服务架构与SOA架构的区别

  (1)、微服务架构基于SOA架构演变过来,继承SOA架构的优点,在微服务架构中去除SOA架构中的ESB消息总线,采用http+json(restful)进行传输。

  (2)、微服务架构对比SOA架构粒度会更加精细,让专业的人干专业的事情,目的是为了提高效率,每个服务于服务之间互不影响。在微服务架构中,每个服务必须独立部署,微服务架构更加轻巧、轻量。

  (3)、SOA架构中可能数据库存储会发生共享,微服务强调每个服务都有独立数据库,保证每个服务于服务之间互不影响。

  (4)、项目体现特征,微服务架构比SOA架构更加适合于互联网公司的敏捷开发、快速迭代版本。

二、springcloud简介

  1、springcloud是基于springboot基础之上开发的微服务框架,springcloud是一套目前比较完整的微服务解决方案框架,其内容包含服务治理、注册中心、配置管理、断路器、智能路由、微代理、控制总线、全局锁、分布式会话等。

  springcloud包含众多的子项目:

    springcloud config :分布式配置中心

    springcloud netfix :核心组件

      Eureka :服务治理 注册中心

      Hystrix :服务保护框架(断路器)

      Ribbon : 客户端负载均衡器

      Feign : 基于Ribbon和Hystrix的声明式服务调用组件

      Zuul : 网关组件,提供智能路由、访问过滤等功能

  

  2、为什么要选中springcloud

  因为springcloud的出现,对微服务技术提供了非常大的帮助,springcloud提供了一套比较完整的服务解决方案,不想其他框架只是解决了微服务中的某个问题。

  例如:

  服务治理:阿里巴巴开源的Dubbo和当当网在其基础上扩展的Dubbox、Eureka、Apache的Consul等。

  分布式配置中心:百度的disconf、Netfix的Archaius、360的QConf、springcloud、携程的阿波罗等。

  分布式任务:xxl-job、elastic-job、springcloud的task等

  服务跟踪:京东的Hyra、springcloud的sleuth。

springcloud之简介的更多相关文章

  1. SpringCloud Alibaba 简介

    SpringCloud Aliababa简介 SpringCloud Alibaba是阿里巴巴集团开源的一套微服务架构解决方案. 微服务架构是为了更好的分布式系统开发,将一个应用拆分成多个子应用,每一 ...

  2. SpringCloud系列一:SpringCloud的简介和架构

    一.SpringCloud简介 SpringCloud就是一套分布式服务治理的框架,既然它是一套服务治理的框架,那么它本身不会提供具体功能性的操作,更专注于服务之间的通讯.熔断.监控等.因此就需要很多 ...

  3. Netflix OSS 和 SpringCloud Netflix简介

    Netflix OSS Netflix是一家互联网流媒体播放商,是美国视频巨头,随着Netflix转型为一家云计算公司,它也开始积极参与开源项目. Netflix OSS(Open Source)就是 ...

  4. 11.8 Springcloud项目简介

    各位领导好,我从毕业后做了两年Java开发工程师,刚开始都是一些SSM框架的项目,但是由于技术不断更新,微服项目成为必然的趋势,大约在做了1年的SSM框架,之后开始接触微服项目,前后经理过Dubbo和 ...

  5. 【微框架】之一:从零开始,轻松搞定SpringCloud微框架系列--开山篇(spring boot 小demo)

    Spring顶级框架有众多,那么接下的篇幅,我将重点讲解SpringCloud微框架的实现 Spring 顶级项目,包含众多,我们重点学习一下,SpringCloud项目以及SpringBoot项目 ...

  6. SpringCloud微框架系列整体模块梳理

    以下为Spring Cloud的核心功能: 分布式/版本化配置服务注册和发现路由服务和服务之间的调用负载均衡断路器分布式消息传递 通过这张图,我们来了解一下各组件配置使用运行流程: 1.请求统一通过A ...

  7. SpringCloud Gateway入门

    本文是介绍一下SpringCloud Gateway简单路由转发使用. SpringCloud Gateway简介 SpringCloud是基于Spring Framework 5,Project R ...

  8. springcloud-知识点总结(三):Hystrix & Dashboard & turbine & Zuul & SpringCloud Config

    1.Hystrix断路器简介 Hystrix断路器简介 hystrix对应的中文名字是“豪猪”,豪猪周身长满了刺,能保护自己不受天敌的伤害,代表了一种防御机制,这与hystrix本身的功能不谋而合,因 ...

  9. SpringCloud组件和概念介绍1

    一:什么是微服务(Microservice) 微服务英文名称Microservice,Microservice架构模式就是将整个Web应用组织为一系列小的Web服务.这些小的Web服务可以独立地编译及 ...

随机推荐

  1. Spring Redis开启事务支持错误用法导致服务不可用

      1.事故背景 在APP访问服务器接口时需要从redis中获取token进行校验,服务器上线后发现一开始可以正常访问,但只要短时间内请求量增长服务则无法响应 2.排查流程 (1)使用top指令查看C ...

  2. 日期类&&包装类&&System类&&Math类&&Arrays数组类&&大数据类

    day 07 日期类 Date 构造函数 Date():返还当前日期. Date(long date):返还指定日期 date:时间戳--->距离1970年1月1日 零时的毫秒数 常用方法 日期 ...

  3. 洛谷 P1314 【聪明的质监员】

    二分 思路: 这道题思路还是蛮好想的,一开始想的是暴力枚举w,然后再仔细一看,w增长时,y肯定减小,那么思路出来了: 二分 但是在时二分时,分得是左右端点lr,做错了 求出w的上下界,然后二分 只二分 ...

  4. docker 运行镜像

    docker run -e "环境变量=值“ --nam 别名 -v /etc/localtime:/etc/localtime:ro [时区保持跟宿主机器一致]-d -p 21021:80 ...

  5. css如何将图片横向平铺?

    在CSS中,可以使用background(背景)属性来添加图片,默认图片是向x轴和y轴重复.那么css如何将图片横向平铺?下面本篇文章就来给大家介绍一下使用CSS将图片横向平铺的方法,希望对大家有所帮 ...

  6. 状压DP之中国象棋

    题目 传送们 这次小可可想解决的难题和中国象棋有关,在一个N行M列的棋盘上,让你放若干个炮(可以是0个),使得没有一个炮可以攻击到另一个炮,请问有多少种放置方法.大家肯定很清楚,在中国象棋中炮的行走方 ...

  7. DNS域名解析服务的介绍

    1.1什么是域名? 域名(英语:Domain Name),简称域名.网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理 ...

  8. Github和Azure DevOps的代码同步

    [前言]Github和Azure DevOps都提供了Git代码库功能,那么有没有办法将两边的代码库进行同步呢,答案是肯定的.这里的操作我都是用Azure DevOps的Pipelines功能来完成的 ...

  9. Java实现上传文件到指定服务器指定目录(ChannelSftp实现文件上传下载)

    package com.tianyang.task.utils; import java.io.File;import java.io.FileInputStream;import java.io.I ...

  10. Serverless介绍篇(一)云开发在Serverless方面取得了怎样的新成果?

    过去几年间,Serverless 发展迅猛,与其相伴的还有从小程序.移动端等到前后端一体化的演进与实践,也正因如此,从云计算到前端,众多开发者都极为关注.本文介绍了腾讯云CloudBase 的 Ser ...