目录

1、什么是微服务

1.2、微服务架构

1.3、微服务解决方案

2、SpringCloud概览

2.0、什么是SpringCloud

2.1、SpringCloud主要组件

2.1.1、Eureka

2.1.2、Ribbon

2.1.3、Feign

2.1.4、Hystrix

2.1.5、Zuul

2.1.6、Gateway

2.1.7、Config

2.1.8、 Bus

2.1.9、OAuth2

2.1.10、Sleuth


本文用 19 张思维导图描述微服务相关的概念和架构,建议收藏。包括什么是微服务、架构演进、微服务架构、微服务解决方案、SpringCloud概览、Eureka、Ribbon、Feign、Hystrix、Zuul、Gateway、Config、Bus、OAuth2、Sleuth、什么是SpringCloud、SpringCloud主要组件。

1、什么是微服务

1.1、架构演进

架构的发展历程是从单体式架构,到分布式架构,到SOA架构,再到微服务架构。

图1:架构演进

  • 单体架构:未做任何拆分的Java Web程序

图2:单体架构示意图

  • 分布式架构:按照业务垂直划分,每个业务都是单体架构,通过API互相调用。

图3:分布式架构示意图

  • SOA架构:SOA是一种面向服务的架构。其应用程序的不同组件通过网络上的通信协议向其它组件提供服务或消费服务,所以也是分布式架构的一种。

图4:SOA架构示意图

1.2、微服务架构

微服务架构在某种程度上是SOA架构的进一步的发展。

微服务目前并没有比较官方的定义。微服务 Microservices 之父,马丁.福勒,对微服务大概的概述如下:

就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style ) 。

但通常在其而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行独立的自己的进程中,服务之间互相协调、互相配合,为用户提供最终价值。

服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API ) 。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。

另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务。可以使用不同的语言来编写服务,也可以使用不同的数据存储。

图5:微服务定义思维导图

图6:微服务架构示意图

1.3、微服务解决方案

目前最流行的两种微服务解决方案是Spring Cloud和Dubbo。

2、SpringCloud概览

2.0、什么是SpringCloud

Spring Cloud 作为 Java 言的微服务框架,它依赖于 Spring Boot ,有快速开发、持续交付和容易部署等特点。Spring Cloud 的组件非常多,涉及微服务的方方面面,井在开源社区 Spring、Netflix Pivotal 两大公司的推动下越来越完善。

Spring Cloud是一系列组件的有机集合。

图7:SpringCloud技术体系

图8:SpringCloud技术体系思维导图

2.1、SpringCloud主要组件

2.1.1、Eureka

Netflix Eureka 是由 Netflix 开源的一款基于 REST 的服务发现组件,包括 Eureka Server 及 Eureka Client。

2.1.2、Ribbon

Ribbon Netflix 公司开源的一个负载均衡的组件。

2.1.3、Feign

Feign是是一个声明式的Web Service客户端。

2.1.4、Hystrix

Hystrix是Netstflix 公司开源的一个项目,它提供了熔断器功能,能够阻止分布式系统中出现联动故障。

2.1.5、Zuul

Zuul 是由 Netflix 孵化的一个致力于“网关 “解决方案的开源组件。

2.1.6、Gateway

Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0、 Spring Boot 2.0 和 Project Reactor 等技术开发的网关, Spring Cloud Gateway 旨在为微服务架构提供简单、 有效且统一的 API 路由管理方式。

2.1.7、Config

Spring Cloud 中提供了分布式配置中 Spring Cloud Config ,为外部配置提供了客户端和服务器端的支持。

2.1.8、 Bus

使用 Spring Cloud Bus, 可以非常容易地搭建起消息总线。

2.1.9、OAuth2

Sprin Cloud 构建的微服务系统中可以使用 Spring Cloud OAuth2 来保护微服务系统。

2.1.10、Sleuth

Spring Cloud Sleuth是Spring Cloud 个组件,它的主要功能是在分布式系统中提供服务链路追踪的解决方案。

本文中对架构的演进及Spring Cloud 构建微服务的基本组件进行了概览。

Spring Cloud 全家桶简介相关推荐

  1. Spring Cloud全家桶主要组件及简要介绍

    <h2><a id="_0"></a>一.微服务简介</h2> 微服务是最近的一两年的时间里是很火的一个概念.感觉不学习一下都快跟不 ...

  2. Spring Cloud 全家桶 入门介绍

    Spring Cloud 全家桶 入门介绍 Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的一些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌 ...

  3. routing zuul_金三银四跳槽季快到了:送上Spring cloud全家桶系列之Zuul

    一.前言 金三银四跳槽季快到了:送上Spring cloud全家桶系列之Eureka 金三银四跳槽季快到了:送上Spring cloud全家桶系列之Feign 金三银四跳槽季快到了:送上Spring ...

  4. spring cloud全家桶_阿里架构师玩转spring全家桶(实战篇),附赠3本spring电子书...

    Spring框架自诞生以来一直备受开发者青睐,今天在这里分享的是Spring全家桶实战篇电子书籍.书籍内容中包括了Spring.SpringBoot.SpringCloud.SpringMVC四个实战 ...

  5. spring cloud全家桶_吃透这份Github点赞120k的Spring全家桶笔记Offer拿到手软

    Spring框架自诞生以来一直备受开发者青睐,有人亲切的称之为:Spring 全家桶.它包SpringMVC.SpringBoot.Spring Cloud.Spring Data等解决方案. 很多研 ...

  6. 一个简单的微服务项目带你上手spring cloud 全家桶

    最近一个月,断断续续学习了spring cloud的主流微服务模块,然后实践了一个比较容易上手的微服务项目,现在做一个总结. 这个项目是在github上的一个比较经典的spring cloud易上手的 ...

  7. react classname多个_React全家桶简介

    当前前端开发已经进入以vue.react.webpack为代表的编程2.0时代.在1.0时代,代码是写给机器的:在2.0时代,代码是写给工具的,然后由工具处理后再转给机器. 一.React全家桶简介 ...

  8. spring cloud zuul 原理简介和使用

    一 spring cloud zuul 简介 Spring Cloud Zuul 是 Spring Cloud Netflix 子项目的核心组件之一,可以作为微服务架构中的 API 网关使用,支持动态 ...

  9. Spring Cloud Config - RSA简介以及使用RSA加密配置文件

    简介 RSA非对称加密有着非常强大的安全性,HTTPS的SSL加密就是使用这种方法进行HTTPS请求加密传输的.因为RSA算法会涉及Private Key和Public Key分别用来加密和解密,所以 ...

  10. Spring Cloud微服务简介

    1. 基础知识1 什么是微服务架构? 与单体系统的区别 如何实施微服务? 微服务优缺点 为什么选择Spring Cloud? 微服务技术选型 为什么选择Spring Cloud? Spring Clo ...

最新文章

  1. Tensor VS NumPy
  2. [Silverlight入门系列]实现局部元素全屏(Element部分全屏)
  3. linux 中 timeval结构体
  4. 适配iOS10以及Xcode8
  5. [图形学]OpenGL实现斯坦福兔子(Stanford Bunny)实验代码
  6. 将网站上的web字体base,woff2转换成.ttf系统字体
  7. 直通串口线与交叉串口线的区分
  8. 游戏数据库 TcaplusDB
  9. 修复 Key is stored in legacy trusted.gpg keyring
  10. 计算机专业算理算工,计算机在高考时是算文还是算理啊
  11. mysql 修改数据库字段update_SQL语句update修改数据库字段
  12. 案例分析 | 茶饮如何积累3500万私域流量实现弯道超车?
  13. Java详细讲解OOP面向对象
  14. 添加了validaterequest=false 为什么还是报错
  15. oracle收集统计信息之analyze
  16. 【谈谈知识点】AC自动机
  17. 公司年会上进版小品——谁杀死了周日
  18. 我们如何建立Schrödinger的div? 与Vue!
  19. 【跨境电商】5个免费极简主义WordPress主题(二)
  20. layui弹出层之layer.open弹出iframe窗口·

热门文章

  1. 我心中最敬业的天王 刘德华|分析天王近700多首歌曲
  2. Python之RFM建模分析
  3. 将一个对象转换成数组
  4. python进行批量图片文字识别
  5. 一文读懂 ChIPseq
  6. 25G/100G-PON演进与趋势分析
  7. PyCon 2011 - Hidden Treasures of the Python Standard Library - 获得夏时令标识符
  8. 紫川,网络小说的登峰造极之作
  9. 2019秋季PAT甲级题解
  10. 什么是全球位置编号(GLN)?