Spring Cloud 渐进式学习教程(一):微服务和spring cloud介绍

一,微服务架构

1, 什么是微服务?

微服务的概念源于2014年3月Martin Fowler所写的一篇文章“Microservices”。

微服务架构是一种架构模式,它提倡将单一应用程序划分成一组小的服务,服务之间互相协调、互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。

微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

2,架构特点:

3,微服务vs传统开发

使用微服务有一段时间了,这种开发模式和传统的开发模式对比,有很大的不同。

  • 分工不同,以前我们可能是一个一个模块,现在可能是一人一个系统。
  • 架构不同,服务的拆分是一个技术含量很高的问题,拆分是否合理对以后发展影响巨大。
  • 部署方式不同,如果还像以前一样部署估计累死了,自动化运维不可不上。
  • 容灾不同,好的微服务可以隔离故障避免服务整体down掉,坏的微服务设计仍然可以因为一个子服务出现问题导致连锁反应。

 

二,Spring Cloud简介

1. 简介

Spring Cloud项目的官方网址:http://projects.spring.io/spring-cloud/

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。

2,Spring Cloud体系介绍

名称简介
spring-cloud-aws用于简化整合Amazon Web Service的组件
spring-cloud-bus事件、消息总线,用于传播集群中的状态变化或事件。
spring-cloud-cli用于在Groovy平台创建Spring Cloud应用。
spring-cloud-commons服务发现、负载均衡、熔断机制这种模式为Spring Cloud客户端提供了一个通用的抽象层。
spring-cloud-contract契约测试。
spring-cloud-config配置管理工具,支持使用git、svn等存储配置文件。并在支持客户端配置信息的刷新,加密解密配置内容等。
spring-cloud-netflix核心组件,对多个Netflix OSS开源套件进行整合。
spring-cloud-security安全工具包。
spring-cloud-cloud foundry整合Pivotal Cloudfoundry(Vmware推出的业界第一个开源PaaS云平台)支持。
spring-cloud-consul服务发现与配置管理工具
spring-cloud-sleuthSpring Cloud应用的分布式跟踪实现。
spring-cloud-stream通过Redis、RabbitMQ、Kafka实现的消息微服务。
spring-cloud-zookeeper基于ZooKeeper的服务发现与配置管理组件。
spring-boot简化Spring应用的初始搭建以及开发过程,springCloud开发的基础
spring-cloud-task用于快速构建数据处理的应用。
spring-cloud-vaultSpring Cloud Vault Config为分布式系统中的外部化配置提供客户端支持。
spring-cloud-gatewaySpring Cloud网关相关的整合实现。
Spring Cloud Data Flow一个云本地程序和操作模型,组成数据微服务在一个结构化的平台上。
Spring Cloud Connectors便于PaaS应用在各种平台上连接到后端像数据库和消息经纪服务。
Spring Cloud …数量还在一直增加…

3,Spring Cloud 核心功能:

  • 分布式/版本化配置
  • 服务注册和发现
  • 路由
  • 服务和服务之间的调用
  • 负载均衡
  • 断路器
  • 分布式消息传递

4,Spring Cloud 架构图:

通过上两张图,我们来了解一下各组件配置使用运行流程:

  • 1、请求统一通过API网关(Zuul)来访问内部服务.
  • 2、网关接收到请求后,从注册中心(Eureka)获取可用服务
  • 3、由Ribbon进行均衡负载后,分发到后端具体实例
  • 4、微服务之间通过Feign进行通信处理业务
  • 5、Hystrix负责处理服务超时熔断
  • 6、Turbine监控服务间的调用和熔断相关指标
  • 7、Sleuth进行请求的链路跟踪监控
三,总结

微服务是一种架构的理念,提出了微服务的设计原则,从理论为具体的技术落地提供了指导思想。Spring Boot是一套快速配置脚手架,可以基于Spring Boot快速开发单个微服务;Spring Cloud是一个基于Spring Boot实现的服务治理工具包;Spring Boot专注于快速、方便集成的单个微服务个体,Spring Cloud关注全局的服务治理框架。

参考:

转载请注明出处。欢迎加入技术讨论Q群:854150511

 

转载于:https://my.oschina.net/u/3831696/blog/3077939

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 Spring Boot 简介 讲解Spring Boot的项目背景,已经与其他技术框架(比如,SpringSpringMVC、SpringCloud等)的关系。 简单介绍Spring Boot 整个生态系统 第2章 开启 Spring Boot 的第一个 Web 项目 通过 Spring Initializr 来快速初始化一个 Spring Boot 原型,方便学员来极速体验Spring Boot。 本课程也将会采用Gradle作为项目管理工具,让学员掌握最前瞻的构建工具。通过探索项目让学员了解项目的结构,已经相关的配置原理。 第3章 一个Hello World项目 本章是正式开始动手敲代码了。依照惯例,会先编写一个最简单的Hello World程序。从项目配置,应用的编写, 再到测试用例,最后运行项目。方面学员了解整个编码的流程。 第4章 开发环境的搭建 为了让实战过程更顺利,避免不要的问题,这里会先将课程所要求的环境进行一个讲解,并要求学员最好跟随课程的环境配置。 本节也会讲解如何将项目导入IDE 来运行。 第5章 集成Thymeleaf模版引擎 Thymeleaf 方面的内容,知识点会讲解的相对全面点。Thymeleaf作为界面的模版引擎,对于界面的布局和实现起着非常关键的作用。 本章节也会讲解Thymeleaf 如何与 Spring Boot 来进行集成。最后通过一个实战,来让学员更加深刻的理解Thymeleaf。... 第6章 数据持久化Spring Data JPA 本章节涉及数据的持久化。从JPA规范讲起,到Spring对于JPA的用法以及与Hibernate集成实现。本课程的数据库采用MySQL, 但也可以方便切换到其他数据库。最后通过一个实战内容,来帮助学员理解掌握。 第7章 全文搜索ElasticSearch 企业级应用中,难免会涉及到全文搜素。对于Java应用来说,ElasticSearch在全文搜索方面是一把“利器”。 本章节会将带领学员了解全文搜索的概念,并熟悉如何用ElasticSearch来实现全文搜索。 第8章 架构设计与分层 本章节讲解了系统的整体架构设计思路,包括如何来组织项目结构。让学员理解系统的数据流程。 第9章 集成 Bootstrap Bootsrap最大的好处是,可以让整个系统界面实现响应式布局。本节先从Bootstrap 的基本原理讲起, 并将常用的前端框架比如 JQuery等进行集成。最后通过一个实战内容,来帮助学员理解掌握。 第10章 博客系统的需求分析与原型设计 本章节是对博客系统的需求分析与设计。对于企业级应用的完整流程来说,需求的分析与设计是必不可少的环节。 本章节设计部分包含了原型设计、数据库设计及接口设计。 第11章 权限管理Spring Security Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架, 在企业级应用中被广泛使用。本章节不会对该框架做深入探讨,仅从基于角色的权限管理角度,来实现对系统的权限管理。 第12章 博客系统的整体框架实现 先对系统的整个界面、结构、布局、API进行实现,这样方便每个模块进行划分及实现。 第13章 博客系统的用户管理实现 对用户管理模块进行前后台的实现。 第14章 博客系统的角色管理实现 对用户角色理模块进行前后台的实现。 第15章 博客系统的权限管理实现 对用权限理模块进行前后台的实现。 第16章 博客系统的博客管理实现 对博客管理模块进行前后台的实现。 第17章 博客系统的评论管理实现 对评论管理模块进行前后台的实现。 第18章 博客系统的点赞管理实现 对用户点赞理模块进行前后台的实现。 第19章 博客系统的分类管理实现 对分类管理模块进行前后台的实现。 第20章 博客系统的标签管理实现 对标签管理模块进行前后台的实现。 第21章 博客系统的搜索实现 对搜索模块进行前后台的实现。 第22章 博客系统总结 对所有模块进行集成,并进行集成测试。对整个系统进行总结及展望。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值