1
Spring Boot
SpringBoot 是由 Pivotal 团队在2013年开始研发、2014年4月发布第一个版本的全新开源的轻量级框架。
目的是解决企业项目一站式部署,通过内嵌 Servlet 容器(如Tomcat)创建可执行的jar,用简单的 java -jar 方式就能实现 Java 项目快速部署,省去了 Tomcat 等 Servlet 容器部署环节。
通过注解方式,弱化了xml的作用, 自动装配,开箱即用,几乎实现代码零配置。
底层基于Spring4.0设计,不仅继承了Spring框架优秀特性,而且通过注解方式简化配置,进一步简化了Spring应用的整个搭建和开发过程。
2
Spring Cloud
SpringCloud底层集成了 netflix 开源微服务框架,依托于大名鼎鼎的 Servlet 容器框架:SpringBoot
核心模块包括:服务注册发现、断路器和监控、服务网关与反向代理机制、客户端负载均衡、配置中心等。
目的是解决大规模服务分布式架构下,提供服务集中监控及治理能力。
架构图
核心组件及主要功能大致如下:
1、服务注册和发现:eureka
它提供了微服务架构中很核心的组件:服务注册中心。基于服务端与客户端模式实现服务注册与发现。
另外还提供可视化的微服务监控页面,能够很直观的查看正在运行的微服务实例列表。
2、服务网关:zuul
所有对外暴露接口请求通过网关服务转向后台服务,防止后台服务具体地址被泄露,其机制是一套路由规则配置来判断某个请求url由哪个服务来响应,配合eureka获取已注册的微服务来转发真实的请求。
3、配置中心:config server
微服务配置文件统一管理,主要包括连接数据库连接参数、业务参数、redis连接参数、kafka连接参数等。
4、客户端负载均衡:ribbon
zuul网关将一个请求发送给某一个服务的应用的时候,如果一个服务启动了多个实例,就会通过ribbon负载均衡机制来决定由其中某个服务实例处理请求。
5、服务间接口调用(类似于rpc):feign
如果服务(进程)之间需要相互调用,需要用到feign,类似于以前的httpclient 请求,它默认会使用 ribbon 来实现微服务多实例客户端负载均衡。
6、监控和断路器:hystrix
提供接口级的监控和断路器功能。
7、监控面板:hystrix dashboard
提供可视化界面,监控微服务的调用所消耗的时间等。
8、监控聚合:turbine
使用hystrix监控,我们需要打开每一个服务实例的监控信息来查看。而turbine可以帮助我们把所有的服务实例的监控信息聚合到一个地方统一查>看。这样就不需要挨个打开一个个的页面一个个查看。
版本匹配
spring cloud版本 Greenwich spring boot版本 2.1.x
spring cloud版本 Finchley spring boot版本 2.0.x
spring cloud版本 Edgware spring boot版本 1.5.x
spring cloud版本 Dalston spring boot版本 1.5.x
3
**Spring Cloud Alibaba
**
哪有什么一夜成名,其实都是百炼成钢。
Spring Cloud Alibaba 是阿里巴巴贡献给 SpringCloud 一个子项目,致力于提供微服务开发的一站式解决方案,包含微服务开发的必备组件,基于SpringCloud,符合SpringCloud标准,阿里的微服务解决方案。
注意 Spring Cloud Alibaba 微服务框架不是为了替代 SpringCloud,而是一种继承和发展,提供一个微服务框架选择,丰富了 SpringCloud 生态。
主要特性
服务限流降级:默认支持 WebServlet、WebFlux, OpenFeign、RestTemplate、Spring Cloud Gateway, Zuul, Dubbo 和 RocketMQ 限流降级功能的接入,可以在运行时通过控制台实时修改限流降级规则,还支持查看限流降级 Metrics 监控。
服务注册与发现:适配 Spring Cloud 服务注册与发现标准,默认集成了 Ribbon 的支持。
分布式配置管理:支持分布式系统中的外部化配置,配置更改时自动刷新。
消息驱动能力:基于 Spring Cloud Stream 为微服务应用构建消息驱动能力。
分布式事务:使用 @GlobalTransactional 注解, 高效并且对业务零侵入地解决分布式事务问题。。
阿里云对象存储:阿里云提供的海量、安全、低成本、高可靠的云存储服务。支持在任何应用、任何时间、任何地点存储和访问任意类型的数据。
分布式任务调度:提供秒级、精准、高可靠、高可用的定时(基于 Cron 表达式)任务调度服务。同时提供分布式的任务执行模型,如网格任务。网格任务支持海量子任务均匀分配到所有 Worker(schedulerx-client)上执行。
阿里云短信服务:覆盖全球的短信服务,友好、高效、智能的互联化通讯能力,帮助企业迅速搭建客户触达通道。
4
**Nacos
**
官方介绍
Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
Nacos作为注册中心
Nacos对标Spring Cloud 的eureka
Nacos作为配置中心
Nacos 对标 Spring Cloud 的 Configserver
Nacos是注册中心和配置中心结合体,致力于提供一站式云原生、微服务的服务治理平台,看似有一统注册中心和配置中心趋势。
_如果您觉得本文对你有帮助,欢迎老铁们帮忙:点赞、在看、留言、分享,你们的支持是我原创最大的动力_。
往期精选
利用 Sharding-JDBC 解决数据库读写分离后,数据查询延时问题
基于分布式文件系统 FastDFS,利用 Zuul 网关实现滑块验证登录
福利彩蛋
最近整理一份很全的Java学习资料,感兴趣的老铁可以在微信搜索【 架构荟萃】,后台回复以下关键字,即可免费获取。
回复“ sb”,免费获取 SpringBoot 全套视频教程。
回复“ sc”,免费 获取 SpringCloud 全套视频教程。
回复“面试”,免费获取 Java 面试全套题集。
回复“小程序”, 免费 获取微信小程序开发 全套视频教程。
扫描上图二维码关注我,加v:WooolaDunzung 进微信粉丝群。
本文分享自微信公众号 - 架构荟萃(dwooola)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。