1.6 Spring Cloud的优势
谈到微服务的设计和开发,大家可能会想到Netflix OSS、Spring Cloud、Service Comb和Service Mesh等技术。
Netflix OSS可以说是最早使用微服务架构的一个开源技术,它的注册中心(Eureka)、负载均衡(Ribbon),以及智能路由(Zuul)等组件至今仍是Spring Cloud框架中的一些重要组成部分。
Spring Cloud是开发人员比较熟悉的一个微服务开发框架,Spring Cloud社区也是一个粉丝众多,并且至今仍然非常活跃的微服务社区。
Service Comb是华为开发的一个可以支持多语言的开发框架,目前可以支持Go和Java等开发语言。
Service Mesh是一种基于基础设施层、实现服务之间快速通信的新的微服务开发技术。
Spring Cloud是在应用层实现微服务,其功能齐全的工具组件为进行微服务设计和开发提供了非常便利的条件,所以绝大多数开发人员都选择使用Spring Cloud实施微服务架构设计。正因为如此,Spring Cloud的生态体系非常庞大,各种大大小小的社区都非常活跃。
Spring Cloud是由Pivotal团队提供的一个用来开发微服务的开源工具集。在使用这一工具集开发微服务时,我们可以非常方便地处理诸如服务注册与治理、服务间通信与集群管理、高可用和横向扩展等问题。
从Spring Cloud官网中可以看到下面这段描述,它概括地介绍了这一工具集所包含的一些组件和功能。
“Spring Cloud为开发人员提供了快速构建分布式系统时的一些常见模式的工具(如配置管理、服务发现、断路器、智能路由、微代理、控制总线、一次性令牌、全局锁、(集群)领导选举、分布式会话、群集状态等)。分布式系统的协调产生了样板式的模式,使用Spring Cloud的开发人员可以方便地使用这些模式的服务和应用程序,它们将在任何分布式环境中都能很好地工作,包括开发人员自己的笔记本电脑、裸机数据中心和Cloud Foundry等托管平台。”
实际上,在使用Spring Cloud这套工具集开发一个特定的微服务应用时,我们并不需要特别关注所有这些组件的工作方式和原理,只需专注于某一项特定功能的开发就可以了。