初识SpringCloud

初识SpringCloud

Spring Cloud 是 Spring 为微服务架构思想做的一个一站式实现,可以简单的理解为微服务是一个概念、一个项目开发的架构思想,Spring Cloud 是微服务架构的一种 Java 实现。

微服务是什么?

微服务是一个概念、项目开发的架构思想,引用一段话:微服务架构风格是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行,并与轻量级机制(通常是HTTP资源API)进行通信。 这些服务是围绕业务功能构建的,可以通过全自动部署机制独立部署。 这些服务的集中管理最少,可以用不同的编程语言编写,并使用不同的数据存储技术。
为什么需要微服务?
由于单体架构有以下三种缺点所以就需要微服务来对项目进行拆分

  • 项目过于臃肿
    当大大小小的功能模块都集中在同一项目的时候,整个项目必然会变得臃肿,让开发者难以维护。
  • 资源无法隔离
    整个单体系统的各个功能模块都依赖于同样的数据库、内存等资源,一旦某个功能模块对资源使用不当,整个系统都会被拖垮。
  • 无法灵活扩展
    当系统的访问量越来越大的时候,单体系统固然可以进行水平扩展,部署在多台机器上组成集群:但是这种扩展并非灵活的扩展。比如我们现在的性能瓶颈只是其中某一个模块,希望只针对该模块做水平扩展,这一点在单体系统是做不到的。

为什么微服务架构需要SpringCloud

微服务的问题:


  • 服务端有很多,客户端应该怎么访问?
    当使用微服务将项目模块化以后,每个模块就是一个服务,而我们正常客户端访问可不会去分别访问那个模块,比如淘宝可能有下订单、物流、支付等模块,我们访问的时候只是访问淘宝,那么客户端是如何访问某个模块的?

  • 这么多服务,他们如何进行通信?
    还是拿下订单举例:
    我们买东西的流程是下订单 -> 支付 -> 物流,他们是通过什么来进行通信的,能让一个流程正常的运转下去

  • 这么多的服务,如何治理?
    服务越来越多,多就意味这复杂难以管理

  • 其中的服务挂了怎么处理?
    当下订单的服务挂了,那么支付和物流都无法执行。

下面来看,这些问题是如何解决的

解决问题

1、基于Dubbo实现的微服务

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。所以它通过RPC通讯方式解决第二个通信问题、注册和发现解决第三个管理问题。但是他没有解决第一个和第四个问题
Dubbo基本概念:

在这里插入图片描述

(Provider):暴露服务的服务提供方,服务提供者在启动时,向注册中心注册自己提供的服务。
(Consumer):调用远程服务的服务消费方,服务消费者在启动时,向注册中心订阅自己所需的服务,服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
(Registry):注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
(Monitor):服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心
另外Dubbo中的注册和发现是依赖于第三方的,在Dubbo官方文档中描述可以使用
在这里插入图片描述

这几种注册中心,其中Zookeeper是被推荐使用的。

2、通过SpringCloud来实现微服务

SpringCloud下有20多个项目来实现微服务的方方面面,它是一个生态,一个实现微服务的生态
SpringCloud技术总览:
在这里插入图片描述


zuul api网关来解决访问服务端的问题
FeginClient- Rest风格 - Http的通信方式来解决通信问题
Eureka实现注册发现
Netfix熔断机制来处理服务出错

Dubbo中的功能只是SpringCloud中的一部分,Dubbo只是实现了服务的治理以及服务间的通讯,而SpringCloud功能更加强大,并且他还能和Spring的其他项目完美的融合。
但是不是说Dubbo就不如SpringCloud而是Dubbo更加专注实现某个功能

3、Spring Cloud Alibaba(扩展)

Spring Cloud Alibaba 是阿里巴巴提供的微服务开发一站式解决方案,是阿里巴巴开源中间件与 Spring Cloud 体系的融合。作为 Spring Cloud 体系下的新实现,Spring Cloud Alibaba 跟官方的组件或其它的第三方实现如 Netflix, Consul,Zookeeper 等对比,具备了更多的功能:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值