zoukankan      html  css  js  c++  java
  • 关于SpringCloud微服务架构概念的一点理解

    目前微服务是非常火的架构或者说概念,也是在构建大型互联网项目时采用的架构方式。

    1.单体架构
    单体架构,是指将开发好的项目打成war包,然后发布到tomcat等容器中的应用。

    假设你正准备开发一款与Uber和Hailo竞争的出租车调度软件,经过初步会议和需求分析,你可能会手动或者使用基于Spring Boot、Play或者Maven的生成器开始这个新项目,它的六边形架构是模块化的,架构图如下:

     应用核心是业务逻辑,由定义服务、域对象和事件的模块完成。围绕着核心的是与外界打交道的适配器。适配器包括数据库访问组件、生产和处理消息的消息组件,以及提供API或者UI访问支持的web模块等。

     尽管也是模块化逻辑,但是最终它还是会打包并部署为单体式应用。具体的格式依赖于应用语言和框架。例如,许多Java应用会被打包为WAR格式,部署在Tomcat或者Jetty上,而另外一些Java应用会被打包成自包含的JAR格式,同样,Rails和Node.js会被打包成层级目录。

     这种应用开发风格很常见,因为IDE和其它工具都擅长开发一个简单应用,这类应用也很易于调试,只需要简单运行此应用,用Selenium链接UI就可以完成端到端测试。单体式应用也易于部署,只需要把打包应用拷贝到服务器端,通过在负载均衡器后端运行多个拷贝就可以轻松实现应用扩展。在早期这类应用运行的很好。

    2. 单体架构存在的问题

    3. 什么是微服务?


    4. 微服务架构的特征



    5. 微服务架构示例

    6. SpringCloud简介
    1.SpringCloud子项目

    Component

    Camden.SR7

    Dalston.SR3

    Edgware.M1

    Finchley.M2

    Finchley.BUILD-SNAPSHOT

    备注

    spring-cloud-aws

    1.1.4.RELEASE

    1.2.1.RELEASE

    1.2.1.RELEASE

    2.0.0.M1

    2.0.0.BUILD-SNAPSHOT

    用于简化整合AmazonWebService的组件

    spring-cloud-bus

    1.2.2.RELEASE

    1.3.1.RELEASE

    1.3.1.RELEASE

    2.0.0.M1

    2.0.0.BUILD-SNAPSHOT

    事件、消息总线,用于传播集群中的状态变化或事件。

    spring-cloud-cli

    1.2.4.RELEASE

    1.3.4.RELEASE

    1.4.0.M1

    2.0.0.M1

    2.0.0.BUILD-SNAPSHOT

    用于在Groovy平台创建SpringCloud应用。

    spring-cloud-commons

    1.1.9.RELEASE

    1.2.3.RELEASE

    1.3.0.M1

    2.0.0.M2

    2.0.0.BUILD-SNAPSHOT

    服务发现、负载均衡、熔断机制这种模式为Spring Cloud客户端提供了一个通用的抽象层。

    spring-cloud-contract

    1.0.5.RELEASE

    1.1.3.RELEASE

    1.2.0.M1

    2.0.0.M2

    2.0.0.BUILD-SNAPSHOT

     

    spring-cloud-config

    1.2.3.RELEASE

    1.3.2.RELEASE

    1.4.0.M1

    2.0.0.M2

    2.0.0.BUILD-SNAPSHOT

    配置管理工具,支持使用git、svn等存储配置文件。并在支持客户端配置信息的刷新,加密解密配置内容等。

    spring-cloud-netflix

    1.2.7.RELEASE

    1.3.4.RELEASE

    1.4.0.M1

    2.0.0.M2

    2.0.0.BUILD-SNAPSHOT

    核心组件,对多个NetflixOSS开源套件进行整合。

    spring-cloud-security

    1.1.4.RELEASE

    1.2.1.RELEASE

    1.2.1.RELEASE

    2.0.0.M1

    2.0.0.BUILD-SNAPSHOT

    安全工具包。

    spring-cloud-cloudfoundry

    1.0.1.RELEASE

    1.1.0.RELEASE

    1.1.0.RELEASE

    2.0.0.M1

    2.0.0.BUILD-SNAPSHOT

    整合Pivotal Cloudfoundry(Vmware推出的业界第一个开源PaaS云平台)支持。

    spring-cloud-consul

    1.1.4.RELEASE

    1.2.1.RELEASE

    1.2.1.RELEASE

    2.0.0.M1

    2.0.0.BUILD-SNAPSHOT

    服务发现与配置管理工具

    spring-cloud-sleuth

    1.1.3.RELEASE

    1.2.4.RELEASE

    1.3.0.M1

    2.0.0.M2

    2.0.0.BUILD-SNAPSHOT

    Spring Cloud应用的分布式跟踪实现。

    spring-cloud-stream

    Brooklyn.SR3

    Chelsea.SR2

    Ditmars.M2

    Elmhurst.M1

    Elmhurst.BUILD-SNAPSHOT

    通过Redis、RabbitMQ、Kafka实现的消息微服务。

    spring-cloud-zookeeper

    1.0.4.RELEASE

    1.1.2.RELEASE

    1.2.0.M1

    2.0.0.M1

    2.0.0.BUILD-SNAPSHOT

    基于ZooKeeper的服务发现与配置管理组件。

    spring-boot

    1.4.5.RELEASE

    1.5.4.RELEASE

    1.5.6.RELEASE

    2.0.0.M3

    2.0.0.M3

     

    spring-cloud-task

    1.0.3.RELEASE

    1.1.2.RELEASE

    1.2.0.RELEASE

    2.0.0.M1

    2.0.0.RELEASE

    用于快速构建数据处理的应用。

    spring-cloud-vault

     

    1.0.2.RELEASE

    1.1.0.M1

    2.0.0.M2

    2.0.0.BUILD-SNAPSHOT

     

    spring-cloud-gateway

     

     

    1.0.0.M1

    2.0.0.M2

    2.0.0.BUILD-SNAPSHOT

    SpringCloud网关相关的整合实现。


    2. 版本说明

    3. SpringCloud框架特点

     

    7.和springboot的关系

    Spring boot 是 Spring 的一套快速配置脚手架,可以基于spring boot 快速开发单个微服务,Spring Cloud是一个基于Spring Boot实现的云应用开发工具;

    Spring boot专注于快速、方便集成的单个个体,Spring Cloud是关注全局的服务治理框架;

    spring boot使用了默认大于配置的理念,很多集成方案已经帮你选择好了,能不配置就不配置,Spring Cloud很大的一部分是基于Spring boot来实现,可以不基于Spring boot吗?不可以。

    Spring boot可以离开Spring Cloud独立使用开发项目,但是Spring Cloud离不开Spring boot,属于依赖的关系。

    spring -> spring booot > spring cloud 这样的关系。

    8.springCloud的优势

    微服务的框架那么多比如:dubbo,为什么就要使用Spring Cloud的呢?

    • 产出于spring大家族,spring在企业级开发框架中无人能敌,来头很大,可以保证后续的更新、完善。比如dubbo现在就差不多死了
    • 有spring Boot 这个独立干将可以省很多事,大大小小的活spring boot都搞的挺不错。
    • 作为一个微服务治理的大家伙,考虑的很全面,几乎服务治理的方方面面都考虑到了,方便开发开箱即用。
    • Spring Cloud 活跃度很高,教程很丰富,遇到问题很容易找到解决方案
    • 轻轻松松几行代码就完成了熔断、均衡负责、服务中心的各种平台功能
  • 相关阅读:
    win7下jdk安装环境变量配置
    !function($){}(window.jQuery)
    转载几篇
    YeeLink
    坑爹JDK8,可怜的XP
    一致性Hash
    CSS
    仿函数
    launch4j
    GOAL!!!!!!!!!!!!!
  • 原文地址:https://www.cnblogs.com/mr-wuxiansheng/p/7749502.html
Copyright © 2011-2022 走看看