前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Spring Cloud 入门教程:聊聊Spring Cloud

Spring Cloud 入门教程:聊聊Spring Cloud

作者头像
KenTalk
发布2018-09-11 11:36:09
6410
发布2018-09-11 11:36:09
举报
文章被收录于专栏:Ken的杂谈Ken的杂谈

一、 Spring Cloud 是什么?

Spring Cloud 是将分布式系统中一系列基础框架/工具进行整合的框架。其中包含:服务注册与发现、服务网关、熔断器、配置中心、消息中心、服务链路追踪等等。

Spring Cloud 并没有重复造轮子,Spring Cloud只是依赖于Spring Boot屏蔽掉了各个框架复杂的配置。所有的组件就相当于Spring Cloud的插件,开发人员可以根据自己的需要自由结合使用。

有Spring Boot这个利器在,所有组件都可以轻松引入、便捷开发。也一定程度上降低了各组件的学习成本、调试成本、让开发人员可以轻松上手。

如果需要从0开始进行服务化体系构建,Spring Cloud一定是最低成本的选择。

至少 ken.io 这么觉得。:-)

二、 Spring Cloud 整合/集成了那些组件?

Spring Cloud Netflix

Netflix基本上可以说是公认的微服务架构建设的标杆,之所以Netflix能获得这样的称号,这个离不开Netflix已经开源这些优秀的组件( https://netflix.github.io/ ),这些组件也可以说是Spring Cloud的核心。

  • Netflix Eureka

服务注册中心,支持基于HTTP的服务,支持自动服务的自动注册与发现、负载均衡、故障转移等。

  • Netflix Hystrix

熔断器,为访问远程服务、系统提供了熔断机制,一旦外部服务超时或者发生故障,将会进行熔断,以防单个或者少数服务发生故障时引起连锁反应,导致所有服务上游或者相关服务被拖慢、甚至被拖垮。提高系统面对延迟和故障的容错能力。

  • Netflix Zuul

服务网关,支持动态路由、监控等,通过zuul可以实现鉴权等功能,也可以结合Hystrix做一些基础的熔断支持。

Spring Cloud Config

分布式配置中心。通过Spring Cloud Config,开发人员可以将原先放在application.yml中的配置,存储在远程服务器(Git、SVN等)集中管理,降低应用配置的维护成本。

Spring Cloud Bus

事件中心,用于将服务和服务实例与分布式消息一起连接,通常用于集群间、甚至跨集群的事件传播(例如:配置变更)。所以Spring Cloud Bus通常会和Spring Cloud Config结合使用,方便应用自动获取到配置变更的动作并完成配置的更新。

Spring Cloud Consul

服务注册中心,同样提供了服务的注册与发现等功能。

Consul与Eureka二选一即可

Spring Cloud Security

基于Spring Security为Spring Cloud集成的组件提供安全性相关的功能,尤其是Zuul,通常是结合Zuul提供OAuth 2.0的校验功能

Spring Cloud Sleuth

分布式服务链路追踪客户端工具,通常是结合Zipkin、HTrace等提供分布式服务链路追踪的功能。

Spring Cloud OpenFeign

Feign是一个Java实现的HTTP Client。可以非常方便的通过HTTP协议请求外部资源。使用Feign访问注册到Eureka的服务,非常方便。

Spring Cloud Starters

基于Spring Boot的各组件的Starter,简化Spring Cloud各组件的依赖管理。

Spring Cloud 还有以下成员:

Spring Cloud for Cloud Foundry, Spring Cloud Open Service Broker, Spring Cloud Cluster, Spring Cloud Data Flow, Spring Cloud Stream, Spring Cloud Stream App Starters, Spring Cloud Task, Spring Cloud Task App Starters, Spring Cloud Zookeeper, Spring Cloud for Amazon Web Services, Spring Cloud Connectors, Spring Cloud CLI, Spring Cloud Contract, Spring Cloud Gateway, Spring Cloud OpenFeign,

这里 ken.io 就不一一介绍了,

三、 Spring Cloud 是否值得选择?

对于中小型公司来说,自研完成微服务体系建设成本太高,通常来说是要采用开源的方案。

目前已经开源的微服务框架,有一定的群众基础的也只有Dubbo了。Dubbo也在2018年2月进入了Apache孵化器。Dubbo的服务注册是依赖于Zookeeper,Dubbo框架本身更多的关注点是在RPC这块。而Spring Cloud意图就很明显了,重在整合,依赖于Spring Boot,将各个框架的复杂度或者是框架之前结合的复杂度很大程度上进行了削减。

总结来说,Spring Cloud的思路就是,已经有的我拿来用,实在没有的我再补充。

Spring Cloud相对于Dubbo来说,是整合了整套解决方案的框架,而Dubbo只是其中的一个点。

Dubbo相对于Spring Cloud更轻,不过选择Dubbo就可能意味着跟其他组件的整合就需要付出更多一点的成本。对于ken这样一个比较懒的人,推荐使用更全面的Spring Cloud。

四、备注

本文参考

前置知识

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-03-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、 Spring Cloud 是什么?
  • 二、 Spring Cloud 整合/集成了那些组件?
    • Spring Cloud Netflix
      • Spring Cloud Config
        • Spring Cloud Bus
          • Spring Cloud Consul
            • Spring Cloud Security
              • Spring Cloud Sleuth
                • Spring Cloud OpenFeign
                  • Spring Cloud Starters
                  • 三、 Spring Cloud 是否值得选择?
                  • 四、备注
                    • 本文参考
                      • 前置知识
                      相关产品与服务
                      微服务引擎 TSE
                      微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档