Spring framework架构的项目就像上海中心这样的高楼大厦,一栋大厦里租用者各色各样的公司和企业为用户提供各种各样的服务。

大厦里的每间办公室都是一个容器,对应着一个docker容器,空办公室对于用户来说是没有任何意义的,只有里面入住了企业(Spring boot),跑了各种程序,才叫一个微服务结点。

房间号可以理解成容器的ip和端口,企业名理解成微服务的服务名,如果一家企业规模较大,需要租多间办公室才可以,那就是多个容器共同组成一个高可用性的微服务组群。

大厦有一本企业列表,有哪些企业提供哪些服务,对应的房间号是什么,这本列表就是Spring Cloud Eureka。

大厦的大门是所有企业的对外的gateway,用户只能通过大门进去然后进行安检后保安会帮你指路告诉你要找的企业在哪里,这里的大门和门卫就是Spring Cloud Zuul。

也不是所有的房间都是给企业准备的,也有弱点室、茶水间等为所有企业准备的公共设施,这就是Spring Cloud Hystrix的Dashboard、redis、MQ等这些独立的辅助服务。

如果要访问大厦里的某一个企业你只知道企业名,你是不知道具体在哪一楼层哪一房间的,需要去看楼层的导航图或者电梯附近的企业列表(Eureka),如果一个企业有多个房间,客户自己决定进哪一个房间去获取服务,这就是Spring Cloud Ribbon。如果你今天一连几次都没有在某一个企业获得自己想要的服务,你会过段日子再来试试运气(熔断了),或者约几个人一起来拜访(请求聚合和拆解),这就是Spring Cloud Hystrix。如果你是有头有脸的重要人物,以上访问一个企业的流程不够上档次,大厦会安排专门的礼仪小姐在电梯口迎接,提高客户满意度,这就是Spring Cloud Feign。

如果你一次性进入这个大厦是要拜访不止一个企业,什么时候进入哪个房间什么时候出来,什么时候又进入了其他的房间这些通过摄像头都有记录,而且都给你拍照留念,这个机制就是Spring Cloud Sleuth。

这座大厦的物业公司叫GitHub,所有企业的保洁阿姨等都是Git上给分配的,每个企业每天换什么样的地毯、卫生程度如何都是保洁阿姨决定的,他们是独立于所有企业但是又影响到所有企业的一个组织,这货就叫Spring Cloud Config。当然如果物业公司福利足够好,保洁阿姨住集体公寓,每天上下班都有巴士接送,那就成了Spring Cloud Bus。

恰巧房间号701是生产皮革的企业,而房间703是生产LV包包的企业,俩家签订协议后一开始701的人搞到材料就给703送去,结果总是因为703手上活还没干完而且没多余的空间存放又让701给抱回去,于是两家商量好租下了702这个房间,皮革生产上把生产好的皮革直接送到702房里去,LV企业一旦加工完手上的这批包包就去702房里取新的材料来处理,这里702房就相当于一个Kafka或者RabbitMQ,而701和703之间与702之间的集成就是Spring Cloud Stream。

形象化理解 SpringBoot + SpringCloud相关推荐

  1. clickhouse原理解析与开发实战 pdf_Spring全家桶集合:SpringBoot+SpringCloud实战,Spring源码原理...

    一.Spring技术内幕(电子书籍赠送) 深入解析Spring架构与设计原理 本书探讨了Spring框架的设计原理.架构和运行机制.作为在Java领域最为成功的开源软件之一,Spring在Java E ...

  2. 2021/04/25 SpringBoot + SpringCloud微服务项⽬交付案例

    第1章 SpringBoot + SpringCloud微服务项⽬交付案例 1.1 微服务概念 传统的是用户通过终端链接到应用里 现在服务往越来越小的方向做,把每个服务做成一个独立的功能,每个服务完成 ...

  3. 深入理解 SpringBoot 原理

    官网:Spring Boot 文章目录 1.SpringBoot简介 回顾Spring Spring简化Java开发 什么是SpringBoot SpringBoot的大时代背景 2.HelloWor ...

  4. 熔断降级与限流在开源SpringBoot/SpringCloud微服务框架的最佳实践

    目录导读 熔断降级与限流在开源SpringBoot/SpringCloud微服务框架的最佳实践 1. 开源代码整体架构设计 2. 微服务逻辑架构设计 3. 微服务熔断降级与限流规划 3.1 微服务熔断 ...

  5. 35款优秀的 SpringBoot/SpringCloud 开源项目,开发脚手架,总有一款适合你...

    简介 SpringBoot 是一个非常流行的 Java 框架,它可以帮助开发者快速构建应用程序.他不仅继承了 Spring 框架原有的优秀特性,而且还通过简化配置来进一步简化了 Spring 应用的整 ...

  6. 深入理解SpringBoot(1)

    之前学习过springboot,但是由于很长一段时间没有用到springboot,想重新学习一遍,决定用一段时间来写一系列深入学习springboot的博客,将会从一些注解,官方文档等多个方面来深入理 ...

  7. SpringBoot+SpringCloud —— 使用Feign消费服务

    转自:https://www.cnblogs.com/yimixiong/p/7927991.html 转:SpringBoot+SpringCloud -- 使用Feign消费服务 Feign简介 ...

  8. Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品排序,Thymeleaf快速入门,商品详情页的展示)

    Java网络商城项目 SpringBoot+SpringCloud+Vue 网络商城(SSM前后端分离项目)十六(商品详情页的展示) 一.商品排序 1.完善页面信息 这是用来做排序的,默认按照综合排序 ...

  9. 【理解springboot自动装配原理】

    理解springboot自动装配原理: 最近读了小马哥(mercyblitz)Springboot编程思想(核心篇),有了一些心得和感悟,分享给大家: 1. 官网介绍了激活自动装配的方法: * 文档提 ...

最新文章

  1. 2018-1-20:左移和右移运算以及和(无符号右移)的区别以及位运算的小题目...
  2. 一个具有20位地址和32位字长的存储器_存储器层次结构(三):高速缓存
  3. 【Win32汇编】测试Irvine32库
  4. 做人工智能必看的 45 篇论文,附下载地址 | 文末有彩蛋
  5. 实现pv uv统计_聊聊前端监控(二)--行为监控的技术实现
  6. 《Reids 设计与实现》第十七章 发布与订阅
  7. Linux --忘记root密码/su: Authentication failure
  8. mysql8.0 安装_MySQL8.0安装步骤
  9. EVCache缓存在 Spring Boot中的实战
  10. 【Java】游戏小程序-超级玛丽(代码渗入)
  11. [pion]测试你的TURN服务器
  12. c语言开发入门教程,C语言开发入门教程
  13. jpa 动态查询条件 数组_JPA使用Specification构建动态查询
  14. Weinre《调试使用》
  15. 智能优化算法:CEC23组常用测试函数公式介绍
  16. Python之基本数据类型
  17. 手机端宝贝描述中每张图片的宽要在480到1500之间,最大高度为2500, 以下图片不满足
  18. WordPress登录注册系统的优化
  19. 亿赛通的加密软件对加密图纸文件外发效果如何?
  20. ros借助讯飞sdk实现问答机器人解决讯飞语音sdk11212erro

热门文章

  1. Python编码规范和Python风格规范
  2. 如何使用alt键+数字键盘上的数字键打出特殊符号
  3. Python 16th Day
  4. android的listview+BaseAdapter的例子
  5. 最简单的flex bison例子
  6. 一个简单HTML标签marquee实现动态滚动条
  7. 彻底明白ip地址,区分localhost、127.0.0.1和0.0.0.0
  8. 日本台式计算机配置,电脑配置
  9. 整理了4个B端产品调研网站,不花一分钱获得最全面的产品体验
  10. 移动端切图内容包括什么_ios移动端切图及前端规范