- 推荐序一
- 推荐序二
- 推荐序三
- 推荐语
- 前言
- 第1章 基础知识
- 第2章 微服务构建:Spring Boot
- 第3章 服务治理:Spring Cloud Eureka
- 第4章 客户端负载均衡:Spring Cloud Ribbon
- 第5章 服务容错保护:Spring Cloud Hystrix
- 第6章 声明式服务调用:Spring Cloud Feign
- 第7章 API网关服务:Spring Cloud Zuul
- 第8章 分布式配置中心:Spring Cloud Config
- 第9章 消息总线:Spring Cloud Bus
- 第10章 消息驱动的微服务:Spring Cloud Stream
- 附录 A Starter POMs
- 后记
为什么选择 Spring Cloud
近几年很多人对于微服务架构的热情非常高,但是回头看“微服务”被提及也有很多年了。无数的架构师和开发者在实际项目中实践该设计理念并为此付出了诸多努力,同时也分享了他们在微服务架构中针对不同应用场景出现的各种问题的各种解决方案和开源框架,其中也不乏国内互联网企业的杰出贡献。
- 服务治理: 阿里巴巴开源的Dubbo和当当网在其基础上扩展的DubboX、Netflix的Eureka、Apache的Consul等。
- 分布式配置管理: 百度的Disconf、Netflix的Archaius、360的QConf、Spring Cloud的Config、淘宝的Diamond等。
- 批量任务: 当当网的Elastic-Job、LinkedIn的Azkaban、Spring Cloud的Task等。
- 服务跟踪: 京东的Hydra、Spring Cloud的Sleuth、Twitter的Zipkin等。
- ……
上面列举了一些在实施微服务架构初期,就需要被我们考虑进去的问题,以及针对这些问题的开源解决方案。可以看到国内、国外的技术公司都在贡献着他们的智慧。我们搜索微服务架构的实施方案时会发现,几乎大部分的分享主要以理论或是一个粗轮廓框架为主,整合了来自不同公司或组织的诸多开源框架,并加入针对自身业务的一些优化,所以找不到一个完全相同的架构方案。
前面我们介绍了一些关于微服务的理念以及特性,分析了实施微服务的优点和缺点,而这些缺点通常就是这些框架出现的源头,大家都是为了解决或弥补业务拆分后所引出的诸多问题来设计出这些解决方案。而当我们作为一个新手,准备实施微服务架构时,为了避免踩前辈们踩过的坑,我们不得不在这些核心问题上做出选择,而选择又是如此之多,这必然会导致在做技术选型的初期,需要花费巨大的调研、分析与实验精力。
Spring Cloud的出现,可以说是对微服务架构的巨大支持和强有力的技术后盾。它不像我们之前所列举的框架那样,只是解决微服务中的某一个问题,而是一个解决微服务架构实施的综合性解决框架,它整合了诸多被广泛实践和证明过的框架作为实施的基础部件,又在该体系基础上创建了一些非常优秀的边缘组件。
打个不太恰当的比喻:我们自己对各个问题选择框架来实施微服务架构就像在DIY电脑一样,我们对各环节的选择自由度很高,但是最终结果很有可能因为一条内存质量不行就点不亮了,总是让人不怎么放心。当然,如果你是一名高手,这些自然都不是问题,然而千军易得、良将难求。而使用Spring Cloud来实施就像直接购买品牌机一样,在Spring社区的整合之下,做了大量的兼容性测试,保证了其拥有更好的稳定性,如果要在 Spring Cloud架构下使用非原装组件时,就需要对其基础有足够的了解。
Spring Cloud也许对很多已经实施微服务并自成体系的团队不具备足够的吸引力,但是对于还未实施微服务或是未成体系的团队,这必将是一个非常有吸引力的框架选择。不论其项目的发展目标,还是Spring的强大背景,亦或其极高的社区活跃度,都是未来企业架构师必须了解和接触的重要框架,有一天成为微服务架构的标准解决方案也并非不可能。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论