微服务之Spring Cloud 解决方案

当前Spring Cloud几乎成了微服务的代名词,只要一提到Spring Cloud,必定会想到微服务,而一旦提到微服务必定会提到Spring Cloud,那么Spring Cloud的定位到底是什么呢。官方是这样定义Spring Cloud的:Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理、服务发现、熔断机制、智能路由、微代理、控制总线、一次性令牌、全局锁、leadership 选举、分布式sessions、群集状态)。开发人员使用Spring Cloud可以快速地实现支持这些模式的服务和应用程序。

可能看到上面的概念比较抽象,很难想到Spring Cloud能做什么,我们又是怎么使用Spring Cloud开发微服务的,比较简单的来讲,Spring Cloud是为了我们能够快速解决第三部分中所提到的问题。它大多数情况下并没有开发新的组件,而是将现有的微服务的组件通过Spring Boot进行整合,而能够使我们快速的构建出一套微服务的方案。

很多人都会说Spring Cloud是一个框架,但我以为说它是一个生态圈或者一种规范更为合适,这个生态圈为我们提供各种组件以简化我们的微服务开发,规范则是可以使用该套规范集成其他的组件。目前生态中比较常用的则是Spring Cloud Netflix和Spring Cloud Alibaba,当然也有一些Spring Cloud自己的组件,比如Spring Cloud Config,Spring Cloud Stream等组件。下面我们简单的介绍Spring Cloud中常用的组件。

Spring Cloud Netflix

在讲述Netflix之前,我们先介绍下Netflix OSS,Netflix是一家互联网流媒体播放商,是美国视频巨头,之后Netflix转型为一家云计算公司, Netflix OSS(Open Source)就是由Netflix公司是为了解决上了规模之后的分布式系统可能出现的一些问题主持开发的一套代码框架和库,Spring Cloud Netflix是基于spring boot在netflix oss基础之上进行封装产生的一整套实现微服务的框架。这里也能看出Spring Cloud只是对现有微服务框架进行整合。针对微服务出现的一些问题,Spring Cloud Netflix提供了一下几种方案:

服务治理:Spring Cloud Netflix提供了Eureka组件作为服务注册和发现中心,Eureka提供了Eureka Server和Eureka Client用于服务注册和服务发现。

断路器:Spring Cloud Netflix提供了组件Hystrix作为断路器。它的功能是,当对某个服务的调用在一定的时间内,有超过一定次数并且失败率超过一定值,该服务的断路器会打开。Spring Cloud还提供了基于注解和内嵌网页面板的使用。

通讯协议:Spring Cloud Netflix 提供了Feign组件作为服务之间的通讯,Feign使用了JAX-RS或spring mvc注解装饰的接口的动态实现。

负载均衡:Spring Cloud Netflix 使用Ribbon组件作为负载均衡组件。

路由和过滤:Spring Cloud Netflix 使用Zuul组件作为路由和过滤组件。

Spring Cloud Alibaba

阿里为分布式应用开发提供了一站式解决方案。它包含了开发分布式应用程序所需的所有组件,使您可以轻松地使用spring cloud开发应用程序。它的其中的一个Dubbo组件很多人都是用过,在此基础上,Spring AliBaba提供了更完善的分布式解决方案。在Spring Cloud Alibaba中,Dubbo为我们提供了负载均衡,容错,通讯等组件。除此之外,还提供了一些其他的分布式组件:

分布式事务:Spring Cloud AliBaba提供的Seata组件支持分布式事务的解决方案。

分布式消息通讯:毫无疑问消息通讯肯定使用的是alibaba提供的RocketMQ组件。

服务注册和发现:除了zooKeeper等,Spring Cloud Alibaba还为我们提供了Naco作为配置服务和服务注册和发现中心组件。

流量控制和服务降级:Alibaba的Sentinel组件提供了的流量控制、断路和系统自适应保护等功能。

其他常用组件

Spring Cloud 除了集成其他分布式框架之外,还开发了一些自己的组件:比如Spring Cloud Config作为配置中心,Spring Cloud Gateway作为统一网关,Spring Cloud Stream用于简化消息组件(比如:rabbitmq,kafka,RocketMQ等)的开发等,更多组件可以参考Spring官方网站。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值