写给新手的Spring Cloud的微服务入门教程

1. 微服务简介

1.1 什么是微服务架构

  • 微服务架构是系统架构上的一种设计风格
  • 将大系统拆分成N个小型服务
  • 这些小型服务都在各自的线程中运行
  • 小服务间通过HTTP协议进行通信
  • 有自己的数据存储、业务开发、自动化测试和独立部署机制
  • 可以由不同语言编写

小结:微服务架构的思想,不只是停留在开发阶段,它贯穿了设计,研发,测试,发布,运维等各个软件生命周期。

2. 架构体系


架构样例:

2.1 微服务发布--持续集成

3. 微服务架构九大特性

  1. 服务组件化
    -- 组件是可独立更换、升级的单元。就像PC中的内存,CPU一样。
  2. 按业务组织团队
    -- 要求人员全栈技能
  3. 做“产品”的态度
    -- 对整个产品生命周期负责,而不是做“项目”交付态度
  4. 智能端点与哑管道
    -- 微服务间的通讯方式:
    --- HTTP的RESTful API
    --- MessageMQ消息队列
    1. 去中心化治理
      --不是每一个问题都是钉子,不是每一个解决方案都是锤子。
    2. 去中心化数据管理
      --独立维护各服务数据存储,尽量使服务间“无事物”调用,通过补偿机制维护数据一致性问题
    3. 基础设施自动化
      -- 自动化测试
      -- 自动化部署
    4. 容错设计
      -- 每个服务实现监控和日志组件,比如服务状态,断路器状态,吞吐量,网络数据等关键数据仪表盘
    5. 演进式设计
      --初期单体,逐步拆分,抽取公共组件

4. 微服务选型

  • Dubbo 是阿里多年构建生产级分布式微服务的技术结晶,服务治理能力非常丰富,在国内技术社区具有很大影响力,目前 github 上有超过 16k 星。Dubbo 本质上是一套基于 Java 的 RPC 框架,当当 Dubbox 扩展了 Dubbo 支持 RESTful 接口暴露能力。
  • Dubbo 主要面向 Java 技术栈,跨语言支持不足是它的一个弱项,另外因为治理能力太丰富,以至于这个框架比较重,完全用好这个框架的门槛比较高,但是如果你的企业基本上投资在 Java 技术栈上,选 Dubbo 可以让你在服务框架一块站在较高的起点上,不管是性能还是企业级的服务治理能力,Dubbo 都做的很出色。
  • 新浪微博开源的 Motan(GitHub 4k stars)也不错,功能和 Dubbo 类似,可以认为是一个轻量裁剪版的 Dubbo。

    5. Spring Cloud 介绍

  • Spring Cloud技术栈提供了分布式系统和微服务中所需要的约大多数公共模块和功能
  • Spring Cloud的出现,可以说是对微服务架构巨大的支持和强有力的后盾
  • 使用Spring Cloud就像直接购买品牌机一样,在Spring 社区的整合下,做了大量的兼容性测试,拥有更好的稳定性。

6. Spring Cloud 版本管理

http://projects.spring.io/spring-cloud/

7. Spring Cloud 组件

  • 微服务基础
  • 微服务构建 Spring Boot
  • 服务治理 Spring Cloud Eureka
  • 客户端负载均衡 Spring Cloud Ribbon
  • 服务容错保护 Spring Cloud Hystrix
  • 声明式服务调用 Spring Cloud Feign
  • Api网关服务 Spring Cloud Zuul
  • 分布式配置中心 Spring Cloud Config
  • 消息总线 Spring Cloud Bus
  • 消息驱动的微服务 Spring Cloud Stream
  • 分布式服务跟踪 Spring Cloud Sleuth

原文地址:https://blog.51cto.com/5425055/2471118

时间: 2024-11-07 08:18:32

写给新手的Spring Cloud的微服务入门教程的相关文章

Spring Cloud实战微服务入门

1.spring cloud是什么? 是一个快速构建分布式系统的工具集,构建于Spring Boot之上 2.spring cloud 的特点 约定优于配置 开箱即用.快速启动 适用于各种环境 轻量级的组件:Eureka 组件的支持很丰富:配置中心.注册中心.智能路由... 选型中立 功能齐全 3.关于Spring Cloud的版本 4.需要的技术储备 java.maven.Spring Boot 5.使用的软件版本 Maven 3.3.9 STS 3.7.2(类似于eclipse) Sprin

基于Spring Cloud的微服务落地

请点击此处输入图片描述 微服务架构模式的核心在于如何识别服务的边界,设计出合理的微服务.但如果要将微服务架构运用到生产项目上,并且能够发挥该架构模式的重要作用,则需要微服务框架的支持. 在Java生态圈,目前使用较多的微服务框架就是集成了包括Netfilix OSS以及Spring的Spring Cloud.它包括: Spring Cloud Config:配置管理工具,支持使用Git存储配置内容,可以实现应用配置的外部化存储,支持客户端配置信息刷新.加密/解密配置内容等. Spring Clo

Spring Cloud Alibaba | 微服务分布式事务之Seata

Spring Cloud Alibaba | 微服务分布式事务之Seata 本篇实战所使用Spring有关版本: SpringBoot:2.1.7.RELEASE Spring Cloud:Greenwich.SR2 Spring CLoud Alibaba:2.1.0.RELEASE 1. 概述 在构建微服务的过程中,不管是使用什么框架.组件来构建,都绕不开一个问题,跨服务的业务操作如何保持数据一致性. 2. 什么是分布式事务? 首先,设想一个传统的单体应用,无论多少内部调用,最后终归是在同一

Spring Cloud构建微服务架构(一)——服务注册与发现

Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等操作提供了一种简单的开发方式. Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config.Spring Cloud Netflix.Spring Cloud CloudFoundry.Spr

基于Spring Cloud的微服务构建学习-3 服务治理:Spring Cloud Eureka

基于Spring Cloud的微服务构建学习-3 服务治理:Spring Cloud Eureka 什么是服务治理 服务治理可以说是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册与发现. 为什么需要服务治理模块 在最初构建微服务系统的时候可能服务并不多,我们可以通过做一些静态配置来完成服务调用 此时看着一切都还正常. 随着项目逐渐接近尾声,维护人员需要维护的服务越来越多,越来越复杂,最终形成大量的配置文件,维护将会变得越来越困难.此时,微服务应用实例自动化管理框架变得

Spring Cloud构建微服务架构(一)服务注册与发现

原文来源:http://blog.didispace.com/springcloud1/ Spring Cloud简介 Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等操作提供了一种简单的开发方式. Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config.Sprin

基于Spring Cloud的微服务构建学习-2 Spring Boot

基于Spring Cloud的微服务构建学习-2 Spring Boot 为什么使用Spring Boot而不是Spring Spring Boot具有自动化配置,快速开发,轻松部署优点,非常适合用作微服务架构中各项具体微服务的开发框架.它不仅可以帮助我们快速的构建微服务,还可以轻松简单的整合Spring Cloud实现系统服务化,而如果使用了传统的Spring构建方式的话,在整合过程中我们还需要做更多的依赖管理工作才能让它们完好的运行起来. Spring Boot的宗旨并非是重写Spring或

利用Spring Cloud实现微服务- 熔断机制

1. 熔断机制介绍 在介绍熔断机制之前,我们需要了解微服务的雪崩效应.在微服务架构中,微服务是完成一个单一的业务功能,这样做的好处是可以做到解耦,每个微服务可以独立演进.但是,一个应用可能会有多个微服务组成,微服务之间的数据交互通过远程过程调用完成.这就带来一个问题,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的"扇出".如果扇出的链路上某个微服务的调用响应时间过长或者不可用,对微服务A的调用就会占用越来越多的系统资源,进而引起系统崩溃,所谓的&

Spring Cloud构建微服务架构服务注册与发现

Spring Cloud简介Spring Cloud是一个基于Spring Boot实现的云应用开发工具,它为基于JVM的云应用开发中涉及的配置管理.服务发现.断路器.智能路由.微代理.控制总线.全局锁.决策竞选.分布式会话和集群状态管理等操作提供了一种简单的开发方式. Spring Cloud包含了多个子项目(针对分布式系统中涉及的多个不同开源产品),比如:Spring Cloud Config.Spring Cloud Netflix.Spring Cloud0 CloudFoundry.S