微服务

什么是微服务

在介绍Spring Cloud之前,读者有必要了解一下什么是微服务。而要了解什么是微服务又要了解什么时候SOA。关于什么是SOA可以看笔者的这篇文章:https://blog.csdn.net/qq32933432/article/details/87195037

简单来说什么是微服务:微服务是一种架构模式,叫微服务架构更合理,就是把一个系统中的各个功能点都拆开为一个个的小应用然后单独部署,同时因为这些小应用多,所以需要一些办法来管理这些小应用。

SpringCloud是什么

简单来说,Spring Cloud是一个微服务框架的规范,注意,只是规范,他不是任何具体的框架。我们知道java大佬最喜欢的做法就是自己制定规范,然后别人基于我这个规范来做实现。那么这个规范里面有什么呢,它规定大概要有以下几种功能。

  1. 服务的注册与发现
  2. 负载均衡
  3. 服务熔断和限流
  4. 智能路由
  5. 控制总线
  6. 链路监控

刚好,这个时候有一个框架集合几乎能满足上面所有的需求,他就是Spring Cloud Netflix。当然,Spring Cloud的实现产品不止这一个,还有最近由阿里新起的Spring Cloud Alibaba等。目前国内主流的是Spring Cloud Netflix。也是本文介绍的主角。

什么是Spring Cloud Netflix

在介绍Spring Cloud Netflix之前,可以先了解下Netfix公司。因为Spring Cloud Netflix即是这家公司用的一个框架,把它开源出来了而已

Netflix是什么,与Spring Cloud有什么关系

1、首先,Netflix是一家做视频的网站,可以这么说该网站上的美剧应该是最火的。
2、Netflix是一家没有CTO的公司,正是这样的组织架构能使产品与技术无缝的沟通,从而能快速迭代出更优秀的产品。在当时软件敏捷开发中,Netflix的更新速度不亚于当年的微信后台变更,虽然微信比Netflix迟发展,但是当年微信的灰度发布和敏捷开发应该算是业界最猛的。
3、Netflix由于做视频的原因,访问量非常的大,从而促使其技术快速的发展在背后支撑着,也正是如此,Netflix开始把整体的系统往微服务上迁移。
4、Netflix的微服务做的不是最早的,但是确是最大规模的在生产级别微服务的尝试。也正是这种大规模的生产级别尝试,在服务器运维上依托AWS云。当然AWS云同样受益于Netflix的大规模业务不断的壮大。
5、Netflix的微服务大规模的应用,在技术上毫无保留的把一整套微服务架构核心技术栈开源了出来,叫做Netflix OSS,也正是如此,在技术上依靠开源社区的力量不断的壮大。
6、Spring Cloud是构建微服务的核心,而Spring Cloud是基于Spring Boot来开发的。
7、Pivotal在Netflix开源的一整套核心技术产品线的同时,做了一系列的封装,就变成了Spring Cloud;虽然Spring Cloud到现在为止不只有Netflix提供的方案可以集成,还有很多方案,但Netflix是最成熟的。

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

那么Spring Cloud Netflix有哪些组件呢?

  1. eureka (提供服务注册与发现功能)
  2. ribbon(提供负载均衡功能)
  3. Feign(整合了ribbon和Hystrix,具有负载均衡和熔断限流等功能)
  4. Hystrix (提供了熔断限流,合并请求等功能)
  5. Zuul (提供了智能路由的功能)
  6. Hystrix Dashboard (提供了服务监控的功能,提供了数据监控和友好的图形化界面)
  7. Hystrix Turbine (Hystrix Turbine将每个服务Hystrix Dashboard数据进行了整合。也是监控系统的功能)
  8. spring cloud config (提供了统一配置的功能)
  9. Spring Cloud Bus (提供了配置实时更新的功能)

需要注意的是这些组件并不是一体化的,比如你完全可以用携程的Apollo来替换spring cloud config。也可以用NCOS或者Zookeeper来替换eureka.

Spring Cloud和Spring boot的关系

与其说他们有什么关系,不如说他们就没有什么关系。只是现在微服务当道,而实现一个服务最快的办法就是用spring boot。不然你还要自己搭项目自己找jar包自己搞配置,还有兼容性等情况。那你的服务化进程注定是缓慢的。所以他们之间是没有关系的,只是因为微服务所需要的小应用很多,而spring boot恰恰又是实现小应用最快的方式。

Spring Cloud和dubbo的关系

dubbo是阿里搞得一套框架,是基于RPC调用的,而Spring Cloud Netflix是基于HTTP的,所以效率上应该dubbo更快(如果你不能理解什么是RPC,当我没说,反正dubbo更快就是了)。但是dubbo的组件不是很齐全,他的很多功能比如服务注册与发现你需要借助于类似zookeeper等组件才能实现,而Spring Cloud Netflix则是提供了一站式解决方案。从使用广度来说,在国内几年前dubbo的使用人数远多于Spring Cloud的,但是近来Spring Cloud慢慢的有了后来居上的趋势。

如何学习Spring Cloud

在此贴出一位大牛的Spring Cloud入门,真的是通俗易懂
https://www.fangzhipeng.com/spring-cloud.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值