SpringCloud微服务架构体系

SpringCloud微服务架构体系转自 https dalin blog csdn net article details 什么是微服务 1 1 架构演进架构的发展历程是从单体式架构 到分布式架构 到 SOA 架构 再到微服务架构 图 1 架构演进 单体架构 未做任何拆分的 JavaWeb 程序 图 2 单体架构示意图 分布式架构 按照业务垂直划分 每个业务都是单体架构 通过 API 互相调用 图 3 分布式架构示意图 SOA 架构 SOA 是一种面向服务的架构 其应用程序的不同组件通

目录

1、什么是微服务

1.1、架构演进

1.2、微服务架构

1.3、微服务解决方案

2、SpringCloud概览

2.1、什么是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

3、总结


 转自:https://dalin.blog.csdn.net/article/details/

1、什么是微服务

1.1、架构演进

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

SpringCloud微服务架构体系 图1:架构演进

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

SpringCloud微服务架构体系 图2:单体架构示意图

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

SpringCloud微服务架构体系 图3:分布式架构示意图

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

SpringCloud微服务架构体系 图4:SOA架构示意图

1.2、微服务架构

微服务架构在某种程度上是SOA架构的进一步的发展。汇总:200期Java面试题阶段汇总

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

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

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

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

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

SpringCloud微服务架构体系 图5:微服务定义思维导图 SpringCloud微服务架构体系 图6:微服务架构示意图

1.3、微服务解决方案

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

2、SpringCloud概览

2.1、什么是SpringCloud

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

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

SpringCloud微服务架构体系 图7:SpringCloud技术体系 SpringCloud微服务架构体系 图8:SpringCloud技术体系思维导图

2.1、SpringCloud主要组件

2.1.1、Eureka

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

SpringCloud微服务架构体系

2.1.2、Ribbon

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

SpringCloud微服务架构体系

2.1.3、Feign

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

SpringCloud微服务架构体系

2.1.4、Hystrix

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

SpringCloud微服务架构体系

2.1.5、Zuul

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

SpringCloud微服务架构体系

2.1.6、Gateway

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

SpringCloud微服务架构体系

2.1.7、Config

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

SpringCloud微服务架构体系

2.1.8、 Bus

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

SpringCloud微服务架构体系

2.1.9、OAuth2

Sprin Cloud 构建的微服务系统中可以使用 Spring Cloud OAuth2 来保护微服务系统。汇总:200期Java面试题阶段汇总

SpringCloud微服务架构体系

2.1.10、Sleuth

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

SpringCloud微服务架构体系

3、总结

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

SpringCloud微服务架构体系


参考:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214491.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午4:08
下一篇 2026年3月18日 下午4:08


相关推荐

  • appium使用教程python_Appium使用教程

    appium使用教程python_Appium使用教程一 Appium 介绍 Appium 是一个开源的自动化测试工具 其支持 iOS 和安卓平台上的原生的 基于移动浏览器的 混合的应用 1 Appium 理念 Appium 是基于以下的四个理念设计来满足移动平台测试自动化的要求的 1 您不应该因为需要自动化测试您的应用而不得不以任何形式去重新编译或者修改你的 app2 您不应该把自己固定在一门特定的语言和一个特定的框架上去实现和运行你的测试 3 当说到测试自动化 AP

    2026年3月17日
    2
  • 如何写《软件需求规格说明书》

    如何写《软件需求规格说明书》转载自 https www jianshu com p f9bcf52f4321 一 任务突然从天而降自己维护一个终端一年多 今天主管突然要求补写一下 软件需求规格说明书 有些傻眼 自已可是一个转行来的非正规军程序员 根本没有经验写过这个 没办法 从网上下载一个模板吧 必须标准些 没商量 下载模板后一看 有些傻眼 模板目录如下 nbsp 二 首先要理解需求看了目录 有些傻眼 不

    2026年3月16日
    3
  • printf的题目

    以前学习于渊老师的《自己动手写操作系统》一书的时候,也自己实现过printf,不过那是比较简单的版本。最近看《程序员面试宝典》,做到这么一道题目:#include<stdio.h>int

    2021年12月25日
    44
  • Java的常用开发工具

    Java的常用开发工具Java开发人员的常用工具java常用的开发工具。都说工欲善其事必先利其器,要想学好java这门语言,选择一款好用顺手的开发工具是必不可少的。另外面试java工作时开发工具的使用也是一个重要的考核点。要想全面了解java开发工具,我们首先需要先了解一下java程序的开发过程,通过这个过程我们能够了解到java开发都需要用到那些工具。首先我们先了解完整项目开发过程,如图所示:

    2022年5月11日
    47
  • ftp服务器软件 性能对比,常用ftp服务器软件介绍[通俗易懂]

    ftp服务器软件 性能对比,常用ftp服务器软件介绍[通俗易懂]导读:对于服务器远程文件的管理,最常见的就是使用ftp服务器软件进行管理,上传下载文件等操作,可以轻松实现本地上传文件到服务器,以及从服务器下载文件到本地,快捷方便简单,接下来我们重点介绍几款比较好用的ftp服务器软件,供大家参考,下面介绍的是在win系……对于服务器远程文件的管理,最常见的就是使用ftp服务器软件进行管理,上传下载文件等操作,可以轻松实现本地上传文件到服务器,以及从服务器下载文件…

    2025年10月27日
    7
  • 对象转map(object转map)

    对象转map(object转map)importjava.lang.reflect.Field;importjava.util.LinkedHashMap;importjava.util.Map;publicclassObjectToMap{//对象转MappublicstaticMap<String,Object>getObjectToMap(Objectobj)t…

    2022年5月16日
    57

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号