Spring Cloud简介
一.本文介绍
Web应用由最早的单体应用发展成为集群式的部署,再到现在的分布式系统。尤其是这两年分布式相关的技术发展的很快,一方面是以Dubbo为代表的,另一方面则是以Spring Cloud系列为代表的。这两种技术栈各自有自己的特点,拿Dubbo来说基本上都是以zookeeper作为服务注册发现组件,基于RPC进行数据交换,虽然这样的传输效率较高但同样的却有跨平台跨语言的问题。而Spring Cloud一般以Eureka作为服务注册发现组件,基于Http进行数据交换虽然牺牲了一定的效率却实现了跨平台的效果。本文主要介绍Spring Cloud的相关知识。
二.Spring Cloud的特点及介绍
尽管Spring Cloud带有“Cloud”的字样,但它并不是云计算解决方案,而是在Spring Boot基础上构建的,用于快速构建分布式系统的通用模式的工具集。它的核心功能如下:
- Distributed/versioned configuration 分布式/版本化的配置管理
- Service registration and discovery 服务注册与服务发现
- Routing 路由
- Service-to-service calls 端到端的调用
- Load balancing 负载均衡
- Circuit Breakers 断路器
- Global locks 全局锁
- Leadership election and cluster state 选举与集群状态管理
- Distributed messaging 分布式消息
对应的它的主要相关组件有:
- Eureka 去中心化的服务注册发现组件,一个基于 REST 的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移
- Ribbon 客户端的负载均衡组件
- Feign 基于Http请求的服务调用组件,功能类似于HttpClient
- Hystrix 服务容错组件,旨在通过控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力
- Zuul 服务网关组件,是提供动态路由,监控,弹性,安全等的边缘服务
- Config 分布式配置组件,可以让你把配置放到远程服务器,目前支持本地存储、Git以及Subversion
Spring Cloud的版本号并不像我们常见的版本格式,我们知道,大多数Spring项目都是以“主版本号.次版本号.增量版本号.里程碑版本号”的形式命名版本号的,例如Spring Framework稳定版本4.3.5.RELEASE、里程碑版本5.0.0.M4等。其中,主版本号表示项目的重大重构;次版本号表示新特性的添加和变化;增量版本号一般表示bug修复;里程碑版本号表示某版本号的里程碑。然而,Spring Cloud并未使用这种方式管理版本。下面我们来详细探讨一下Spring Cloud的版本。我们来看一下Spring Cloud的版本,如下图所示:
由图可知,Spring Cloud是以英文单词 SRX 的形式命名版本号的,Spring Cloud是一个综合项目,它包含很多的子项目。由于子项目也维护着自己的版本号,Spring Cloud采用了这种版本命名方式,从而避免与子项目的版本混淆。其中,英文单词叫做“release train”,Angel、Brixton、Camden等都是伦敦地铁站的名称,它们按照字母顺序发行,我们可将其理解为主版本的演进。SR表示“Service Release”,一般表示Bug修复;在SR版本发布之前,会先发布一个Release版本,例如Camden RELEASE。还有非常重要的一点是Spring Cloud是以Spring Boot为基础的,所以Spring Cloud和Spring Boot的版本对应关系也是非常重要的,具体对应关系如下:
最后附上Spring Cloud的中文文档 https://springcloud.cc/
最新文章
- 微信公众号开发(一)--验证服务器地址的Java实现
- IO口
- Python:print显示颜色
- [CareerCup] 13.8 Smart Pointer 智能指针
- NSDictionary 、 NSMutableDictionary
- ASP.NET 设计模式中依赖倒置原则
- oracle 空置排在最后显示
- Webdriver的设计模式:Page Object(页面模型)
- JavaScript学习总结(十七)——Javascript原型链的原理
- C++的精髓——虚函数
- ACL权限控制列表
- 转: 【Java并发编程】之十四:图文讲述同步的另一个重要功能:内存可见性
- Python 3.6.4 / win10 使用pip安装keras时遇到依赖的PyYAML安装出错
- 【详细】总结JavaWeb开发中SSH框架开发问题(用心总结,不容错过)
- webpack4.27.1中遇到的错误
- java集合详解(附栈,队列)
- SSH整合jar包分享及登陆实例详解
- apache2.4 文件浏览服务器页面配置
- ubantu下git的连接和使用
- 7种html5css3网页图片展示特效代码