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

文章目录

  • 什么是微服务
    • 架构演进
    • 微服务架构
    • 微服务解决方案
  • SpringCloud概览
    • 什么是SpringCloud
    • SpringCloud主要组件
      • Eureka
      • Ribbon
      • Feign
      • Hystrix
      • Zuul
      • Gateway
      • Config
      • Bus
      • OAuth2
      • Sleuth
  • 本文小结

什么是微服务

架构演进

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

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

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

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


微服务架构

微服务架构在某种程度上是SOA架构的进一步的发展。微服务目前并没有比较官方的定义。微服务 Microservices 之父,马丁.福勒,对微服务大概的概述如下

就目前而言,对于微服务业界并没有一个统一的、标准的定义(While there is no precise definition of this architectural style ) 。
 
但通常对其而言,微服务架构是一种架构模式或者说是一种架构风格,它提倡将单一应用程序划分成一组小的服务,每个服务运行在独立的进程中,服务之间互相协调、互相配合,为用户提供最终价值。
 
服务之间采用轻量级的通信机制互相沟通(通常是基于 HTTP 的 RESTful API ) 。每个服务都围绕着具体业务进行构建,并且能够被独立地部署到生产环境、类生产环境等。
 
另外,应尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建,可以有一个非常轻量级的集中式管理来协调这些服务。可以使用不同的语言来编写服务,也可以使用不同的数据存储。



微服务解决方案

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


SpringCloud概览

什么是SpringCloud

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

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



SpringCloud主要组件

Eureka

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


Ribbon

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


Feign

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


Hystrix

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


Zuul

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


Gateway

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


Config

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


Bus

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


OAuth2

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


Sleuth

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

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


本文小结

本文从宏观上介绍了spring cloud相关的知识与内容,后面会对各个知识点进行详细而系统的介绍与学习。

关于spring cloud的几个问题相关推荐

  1. Spring cloud 微服务docker容器化最佳实践

    Spring cloud 是当下最炙手可热的微服务套件,我们将介绍如何整合Docker容器达到高效快捷的构建发布 采用了dockerfile-maven-plugin插件发布镜像到远程docker主机 ...

  2. Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

    自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注.虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭 ...

  3. Spring Cloud下微服务权限方案

    背景 从传统的单体应用转型Spring Cloud的朋友都在问我,Spring Cloud下的微服务权限怎么管?怎么设计比较合理?从大层面讲叫服务权限,往小处拆分,分别为三块:用户认证.用户权限.服务 ...

  4. 玩转Spring Cloud之配置中心(config server config client)

    玩转Spring Cloud之配置中心(config server &config client)  本文内容导航: 一.搭建配置服务中心(config server) 1.1.git方式 1 ...

  5. spring cloud微服务治理eureka、hystrix、zuul代码例子

    spring cloud微服务中台服务代码例子,包括eureka.hystrix.zuul https://github.com/birdstudiocn/spring-cloud-sample/tr ...

  6. 原 史上最简单的SpringCloud教程 | 第八篇: 消息总线(Spring Cloud Bus)(Finchley版本)

    转载请标明出处: 原文首发于:https://www.fangzhipeng.com/springcloud/2018/08/30/sc-f8-bus/ 本文出自方志朋的博客 转载请标明出处: Spr ...

  7. 快速构建Spring Cloud工程

    spring cloud简介 spring cloud为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环境 ...

  8. spring cloud微服务分布式云架构--hystrix的使用

    hystrix主要作用在服务消费者,进行应用的保护,当请求的服务请求超时时,做出相应的处理,避免客户端一直进行请求等待,避免在高并发的情况出现服务器死机(请求过多,内存不足) 接下来的通过一个案例对h ...

  9. Spring Cloud构建分布式电子商务平台:服务消费(基础)

    使用LoadBalancerClient 在Spring Cloud Commons中提供了大量的与服务治理相关的抽象接口,包括DiscoveryClient.这里我们即将介绍的LoadBalance ...

  10. (二)spring cloud微服务分布式云架构 - 整合企业架构的技术点

    spring cloud本身提供的组件就很多,但我们需要按照企业的业务模式来定制企业所需要的通用架构,那我们现在需要考虑使用哪些技术呢? 下面我针对于spring cloud微服务分布式云架构做了以下 ...

最新文章

  1. 十大排序算法 导图总结
  2. ZStack源码剖析之核心库鉴赏——FlowChain
  3. C#开发Unity游戏教程循环遍历做出判断及Unity游戏示例
  4. 【VS2005】error LNK2001: unresolved external symbol _main 正确解决办法
  5. 产品策划系列:洞察需求(四)
  6. map传参上下文赋值的问题
  7. 【转载】我为啥不想用Python
  8. linux启动服务需要ubb文件吗,如何开启tuxedo的snmp监控
  9. Tcl8.6原生支持oop了
  10. 一分钟在云端快速创建MySQL数据库实例
  11. /etc/mtab is not writable
  12. vba 定义数组_excel自定义排序的三种方法
  13. 拓端tecdat|R语言实现LDA主题模型分析网购数据
  14. html5与access连接数据库操作,access是一个什么数据库?
  15. 客户体验的时代(2001.12)
  16. 【nodejs】数据统计平台碰到的坑
  17. 计算机上面的按键作用,电脑键盘上各种键的作用是什么 电脑键盘上每个键的作用说明【图文】...
  18. 电磁场知识回顾——重要方程,定理
  19. 去哪儿网支付系统架构演进(上)
  20. Java---正则表达式

热门文章

  1. MySQL常用函数系列之九:日期和时间函数 函数(4)
  2. spring异常处理-HandlerExceptionResolver
  3. SICP:Building Abstractions with Data
  4. 通過腳本實現zabbix的安裝
  5. 习题1083字符转换
  6. 程序员,其实你可以做的更好
  7. JACK——BOM Exercise2
  8. php中钩子(hook)的应用示例demo
  9. Windows系统下,使用Emacs+Putty操作远程机器
  10. “Redirect to SMB”漏洞影响所有版本的Windows