zoukankan      html  css  js  c++  java
  • springcloud之简介

     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。

  • 相关阅读:
    Java中String与byte[]的转换
    移动端界面设计之尺寸篇(更新)
    移动端开发必晓
    sublime 之 vitage/emmet
    Sublime Text3工具的安装、破解、VIM功能vintage插件教程
    Sublime Text 3 快捷键总结
    iPhone Safari下iframe不显示滚动条无法滚动的解决方法
    名片设计尺寸及名片设计的注意事项
    转:『引』最全前端资源汇集
    (转)详解css3弹性盒模型(Flexbox)
  • 原文地址:https://www.cnblogs.com/soft2018/p/10323553.html
Copyright © 2011-2022 走看看