初识 Spring Cloud
#0. 微服务
微服务架构通常会与单体架构(Monolithic Style)进行比较。Web 应用程序发展的早期,大部分 Web 工程是将所有的功能模块打包到一起部署和运行,例如 Java 应用程序打包为一个 war 包。在单体应用中,所有这些模块都被集成在一起,这样运行的系统就叫做单体应用。
单体应用的优点是开发简单直接,集中式管理基本不会重复开发;功能都在本地,没有分布式的管理开销和调用开销。缺点也很明显,如开发效率低、代码维护难,稳定性和扩展性都存在不足。
微服务最早是由 Martin Fowler 与 James Lewis 于 2014 年共同提出。
微服务架构,是一种软件架构方式。微服务的主要特点体现在组件化、松耦合、自治和去中心化等方面。它将应用构建成一系列按业务领域划分模块的、小的自治服务,通过分解巨大单体式应用为多个服务方法解决了复杂性问题。每个服务还提供了一个严格的模块边界,甚至允许用不同的编程语言编写不同的服务。不过,微服务应用是分布式系统,由此会带来分布式系统固有的复杂性,包括测试、运维的复杂度。
#1. 什么是 Spring Cloud
Spring Cloud 是微服务架构思想的一个具体实现,它为开发人员提供了快速构建分布式系统中一些常见模式的工具(如,配置管理、服务发、断路器、智能路由、微代理、控制总线等)。
Spring Cloud 基于 Spring Boot 框架,它不重复造轮子,而是将第三方实现的微服务应用的一些模块集成进去。准确的说,Spring Cloud 是一个概念上容器,它包含了一整套组件。
最简单的 Spring Cloud 微服务架构包括『服务发现』和『服务提供者』(即,一个大型系统拆分出来的子模块),最极端的微服务可以做到一个方法就是一个服务,一个方法就是一个项目,当然,真拆成这样那就十分过分了。
说明
在一个系统中,服务怎么拆分,要具体问题具体分析,取决于业务。
早期的 Spring Cloud 五大组件包括:Eureka、Ribbon、Hystrix、Zuul、Config 。
早期的 Spring Cloud 的发展基本上就是 Netflix 一家公司全力推动,上述 5 大组件中前 4 个都是由 Netflix 公司开源、捐赠出来的。
后来随着 Spring Cloud 的社区的发展,特别是 Alibaba 在 Spring Cloud 社区中的扮演越来越重要的作用和推力,Spring Cloud 社区中出现了更多、更好、根据特色的组件以供大家选择。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。